Skip to content

Instantly share code, notes, and snippets.

@andersio
Created December 2, 2016 05:36
Show Gist options
  • Select an option

  • Save andersio/8b055cccf26ad9d2c0db58c1bf11c40c to your computer and use it in GitHub Desktop.

Select an option

Save andersio/8b055cccf26ad9d2c0db58c1bf11c40c to your computer and use it in GitHub Desktop.
import XCTest
import Result
import ReactiveSwift
class SyntheticTests: XCTestCase {
func testProducerStart() {
let property = MutableProperty(1).map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }
let token = Lifetime.Token()
let lifetime = Lifetime(token)
var i = 0
let target = BindingTarget(lifetime: lifetime, setter: { i = $0 })
measure {
for i in 0 ..< 10000 {
let d = target <~ property
d?.dispose()
}
}
}
func testSignalSendEventOneObserver() {
let (signal, observer) = Signal<Int, NoError>.pipe()
signal.map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.observe { _ in }
measure {
for i in 0 ..< 10000 {
observer.send(value: i)
}
}
}
func testSignalSendEventEightObservers() {
let (signal, observer) = Signal<Int, NoError>.pipe()
for _ in 0 ..< 8 {
signal.map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.observe { _ in }
}
measure {
for i in 0 ..< 10000 {
observer.send(value: i)
}
}
}
func testProducedSignalSendEventOneObserver() {
let (signal, observer) = Signal<Int, NoError>.pipe()
SignalProducer(signal: signal).map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.start { _ in }
measure {
for i in 0 ..< 10000 {
observer.send(value: i)
}
}
}
func testProducedSignalSendEventEightObservers() {
let (signal, observer) = Signal<Int, NoError>.pipe()
for _ in 0 ..< 8 {
SignalProducer(signal: signal).map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.map { $0 + 1 }.start { _ in }
}
measure {
for i in 0 ..< 10000 {
observer.send(value: i)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment