From 8a38f39444764b030e38d386edfb8be52ac8dfac Mon Sep 17 00:00:00 2001 From: Krunoslav Zaher Date: Sun, 27 Dec 2015 01:12:36 +0100 Subject: [PATCH] Adds test `main.swift` generator on Linux. --- Rx.xcworkspace/contents.xcworkspacedata | 3 + RxSwift/Platform/Linux.Platform.swift | 3 +- Sources/AllTests/main.swift | 725 ++++++++++++++++++ .../Tests/Observable+MultipleTest.swift | 2 +- .../Tests/Observable+SingleTest.swift | 13 +- Tests/RxTest.swift | 89 ++- scripts/package-swift-manager.swift | 122 ++- scripts/test-linux.sh | 9 + 8 files changed, 914 insertions(+), 52 deletions(-) create mode 100644 Sources/AllTests/main.swift create mode 100755 scripts/test-linux.sh diff --git a/Rx.xcworkspace/contents.xcworkspacedata b/Rx.xcworkspace/contents.xcworkspacedata index 145caa31..c88aad39 100644 --- a/Rx.xcworkspace/contents.xcworkspacedata +++ b/Rx.xcworkspace/contents.xcworkspacedata @@ -60,6 +60,9 @@ + + diff --git a/RxSwift/Platform/Linux.Platform.swift b/RxSwift/Platform/Linux.Platform.swift index 8f0c0695..f0a892a1 100644 --- a/RxSwift/Platform/Linux.Platform.swift +++ b/RxSwift/Platform/Linux.Platform.swift @@ -38,7 +38,8 @@ } public func CFRunLoopRun() { - let currentValueOfCounter = runLoopCounter + 1 + runLoopCounter += 1 + let currentValueOfCounter = runLoopCounter while let front = queue.tryDequeue() { front() if runLoopCounter < currentValueOfCounter - 1 { diff --git a/Sources/AllTests/main.swift b/Sources/AllTests/main.swift new file mode 100644 index 00000000..e24860e5 --- /dev/null +++ b/Sources/AllTests/main.swift @@ -0,0 +1,725 @@ +// this file is autogenerated using `./scripts/package-swift-manager.swift` +import XCTest +import RxSwift + + +let _ObservableCreationTests = ObservableCreationTests() +_ObservableCreationTests.allTests = [ + ("testJust_Immediate", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testJust_Immediate(); _ObservableCreationTests.tearDown(); }), + ("testJust_Basic", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testJust_Basic(); _ObservableCreationTests.tearDown(); }), + ("testJust_Disposed", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testJust_Disposed(); _ObservableCreationTests.tearDown(); }), + ("testJust_DisposeAfterNext", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testJust_DisposeAfterNext(); _ObservableCreationTests.tearDown(); }), + ("testJust_DefaultScheduler", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testJust_DefaultScheduler(); _ObservableCreationTests.tearDown(); }), + ("testToObservable_complete_immediate", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testToObservable_complete_immediate(); _ObservableCreationTests.tearDown(); }), + ("testToObservable_complete", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testToObservable_complete(); _ObservableCreationTests.tearDown(); }), + ("testToObservable_dispose", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testToObservable_dispose(); _ObservableCreationTests.tearDown(); }), + ("testSequenceOf_complete_immediate", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testSequenceOf_complete_immediate(); _ObservableCreationTests.tearDown(); }), + ("testSequenceOf_complete", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testSequenceOf_complete(); _ObservableCreationTests.tearDown(); }), + ("testSequenceOf_dispose", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testSequenceOf_dispose(); _ObservableCreationTests.tearDown(); }), + ("testGenerate_Finite", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testGenerate_Finite(); _ObservableCreationTests.tearDown(); }), + //("testGenerate_ThrowCondition", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testGenerate_ThrowCondition(); _ObservableCreationTests.tearDown(); }), + //("testGenerate_ThrowIterate", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testGenerate_ThrowIterate(); _ObservableCreationTests.tearDown(); }), + ("testGenerate_Dispose", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testGenerate_Dispose(); _ObservableCreationTests.tearDown(); }), + ("testGenerate_take", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testGenerate_take(); _ObservableCreationTests.tearDown(); }), + ("testRange_Boundaries", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testRange_Boundaries(); _ObservableCreationTests.tearDown(); }), + ("testRange_Dispose", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testRange_Dispose(); _ObservableCreationTests.tearDown(); }), + ("testRepeat_Element", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testRepeat_Element(); _ObservableCreationTests.tearDown(); }), + ("testUsing_Complete", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testUsing_Complete(); _ObservableCreationTests.tearDown(); }), + //("testUsing_Error", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testUsing_Error(); _ObservableCreationTests.tearDown(); }), + ("testUsing_Dispose", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testUsing_Dispose(); _ObservableCreationTests.tearDown(); }), + //("testUsing_ThrowResourceSelector", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testUsing_ThrowResourceSelector(); _ObservableCreationTests.tearDown(); }), + //("testUsing_ThrowResourceUsage", { _ObservableCreationTests.setUp(); _ObservableCreationTests.testUsing_ThrowResourceUsage(); _ObservableCreationTests.tearDown(); }), +] + + +let _QueueTest = QueueTest() +_QueueTest.allTests = [ + ("testComplexity", { _QueueTest.setUp(); _QueueTest.testComplexity(); _QueueTest.tearDown(); }), +] + + +let _VariableTest = VariableTest() +_VariableTest.allTests = [ + ("testVariable_initialValues", { _VariableTest.setUp(); _VariableTest.testVariable_initialValues(); _VariableTest.tearDown(); }), + ("testVariable_READMEExample", { _VariableTest.setUp(); _VariableTest.testVariable_READMEExample(); _VariableTest.tearDown(); }), +] + + +let _ObservableBlockingTest = ObservableBlockingTest() +_ObservableBlockingTest.allTests = [ + ("testToArray_empty", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testToArray_empty(); _ObservableBlockingTest.tearDown(); }), + ("testToArray_return", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testToArray_return(); _ObservableBlockingTest.tearDown(); }), + //("testToArray_fail", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testToArray_fail(); _ObservableBlockingTest.tearDown(); }), + ("testToArray_someData", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testToArray_someData(); _ObservableBlockingTest.tearDown(); }), + ("testToArray_withRealScheduler", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testToArray_withRealScheduler(); _ObservableBlockingTest.tearDown(); }), + ("testFirst_empty", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testFirst_empty(); _ObservableBlockingTest.tearDown(); }), + ("testFirst_return", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testFirst_return(); _ObservableBlockingTest.tearDown(); }), + //("testFirst_fail", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testFirst_fail(); _ObservableBlockingTest.tearDown(); }), + ("testFirst_someData", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testFirst_someData(); _ObservableBlockingTest.tearDown(); }), + ("testFirst_withRealScheduler", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testFirst_withRealScheduler(); _ObservableBlockingTest.tearDown(); }), + ("testLast_empty", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testLast_empty(); _ObservableBlockingTest.tearDown(); }), + ("testLast_return", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testLast_return(); _ObservableBlockingTest.tearDown(); }), + //("testLast_fail", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testLast_fail(); _ObservableBlockingTest.tearDown(); }), + ("testLast_someData", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testLast_someData(); _ObservableBlockingTest.tearDown(); }), + ("testLast_withRealScheduler", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testLast_withRealScheduler(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_empty", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_empty(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_return", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_return(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_two", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_two(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_someData", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_someData(); _ObservableBlockingTest.tearDown(); }), + //("testSingle_fail", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_fail(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_withRealScheduler", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_withRealScheduler(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_predicate_empty", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_empty(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_predicate_return", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_return(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_predicate_someData_one_match", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_someData_one_match(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_predicate_someData_two_match", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_someData_two_match(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_predicate_none", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_none(); _ObservableBlockingTest.tearDown(); }), + //("testSingle_predicate_throws", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_throws(); _ObservableBlockingTest.tearDown(); }), + //("testSingle_predicate_fail", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_fail(); _ObservableBlockingTest.tearDown(); }), + ("testSingle_predicate_withRealScheduler", { _ObservableBlockingTest.setUp(); _ObservableBlockingTest.testSingle_predicate_withRealScheduler(); _ObservableBlockingTest.tearDown(); }), +] + + +let _ObserverTests = ObserverTests() +_ObserverTests.allTests = [ + ("testConvenienceOn_Next", { _ObserverTests.setUp(); _ObserverTests.testConvenienceOn_Next(); _ObserverTests.tearDown(); }), + //("testConvenienceOn_Error", { _ObserverTests.setUp(); _ObserverTests.testConvenienceOn_Error(); _ObserverTests.tearDown(); }), + ("testConvenienceOn_Complete", { _ObserverTests.setUp(); _ObserverTests.testConvenienceOn_Complete(); _ObserverTests.tearDown(); }), +] + + +let _ObservableMultipleTest = ObservableMultipleTest() +_ObservableMultipleTest.allTests = [ + ("testCombineLatest_Never2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Never2(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Empty2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Empty2(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrows2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrows2(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_WillNeverBeAbleToCombine2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_WillNeverBeAbleToCombine2(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Typical2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Typical2(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Never3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Never3(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Empty3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Empty3(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrows3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrows3(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_WillNeverBeAbleToCombine3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_WillNeverBeAbleToCombine3(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Typical3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Typical3(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Never4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Never4(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Empty4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Empty4(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrows4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrows4(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_WillNeverBeAbleToCombine4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_WillNeverBeAbleToCombine4(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Typical4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Typical4(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Never5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Never5(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Empty5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Empty5(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrows5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrows5(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_WillNeverBeAbleToCombine5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_WillNeverBeAbleToCombine5(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Typical5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Typical5(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Never6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Never6(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Empty6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Empty6(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrows6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrows6(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_WillNeverBeAbleToCombine6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_WillNeverBeAbleToCombine6(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Typical6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Typical6(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Never7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Never7(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Empty7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Empty7(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrows7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrows7(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_WillNeverBeAbleToCombine7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_WillNeverBeAbleToCombine7(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Typical7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Typical7(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Never8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Never8(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Empty8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Empty8(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrows8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrows8(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_WillNeverBeAbleToCombine8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_WillNeverBeAbleToCombine8(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Typical8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Typical8(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_NeverEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_NeverEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_EmptyNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_EmptyNever(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_EmptyReturn", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_EmptyReturn(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_ReturnEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ReturnEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_NeverReturn", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_NeverReturn(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_ReturnNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ReturnNever(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_ReturnReturn1", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ReturnReturn1(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_ReturnReturn2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ReturnReturn2(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_EmptyError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_EmptyError(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ErrorEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ErrorEmpty(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ReturnThrow", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ReturnThrow(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ThrowReturn", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ThrowReturn(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ThrowThrow1", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ThrowThrow1(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ThrowThrow2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ThrowThrow2(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ErrorThrow", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ErrorThrow(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ThrowError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ThrowError(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SomeThrow", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SomeThrow(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ThrowSome", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ThrowSome(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ThrowAfterCompleteLeft", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ThrowAfterCompleteLeft(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ThrowAfterCompleteRight", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ThrowAfterCompleteRight(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_TestInterleavedWithTail", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_TestInterleavedWithTail(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_Consecutive", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_Consecutive(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ConsecutiveEndWithErrorLeft", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ConsecutiveEndWithErrorLeft(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ConsecutiveEndWithErrorRight", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ConsecutiveEndWithErrorRight(); _ObservableMultipleTest.tearDown(); }), + ("testZip_ImmediateSchedule2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ImmediateSchedule2(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Never2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Never2(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Empty2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Empty2(); _ObservableMultipleTest.tearDown(); }), + ("testZip_SymmetricReturn2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SymmetricReturn2(); _ObservableMultipleTest.tearDown(); }), + ("testZip_AllCompleted2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_AllCompleted2(); _ObservableMultipleTest.tearDown(); }), + ("testZip_ImmediateSchedule3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ImmediateSchedule3(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Never3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Never3(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Empty3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Empty3(); _ObservableMultipleTest.tearDown(); }), + ("testZip_SymmetricReturn3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SymmetricReturn3(); _ObservableMultipleTest.tearDown(); }), + ("testZip_AllCompleted3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_AllCompleted3(); _ObservableMultipleTest.tearDown(); }), + ("testZip_ImmediateSchedule4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ImmediateSchedule4(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Never4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Never4(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Empty4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Empty4(); _ObservableMultipleTest.tearDown(); }), + ("testZip_SymmetricReturn4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SymmetricReturn4(); _ObservableMultipleTest.tearDown(); }), + ("testZip_AllCompleted4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_AllCompleted4(); _ObservableMultipleTest.tearDown(); }), + ("testZip_ImmediateSchedule5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ImmediateSchedule5(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Never5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Never5(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Empty5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Empty5(); _ObservableMultipleTest.tearDown(); }), + ("testZip_SymmetricReturn5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SymmetricReturn5(); _ObservableMultipleTest.tearDown(); }), + ("testZip_AllCompleted5", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_AllCompleted5(); _ObservableMultipleTest.tearDown(); }), + ("testZip_ImmediateSchedule6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ImmediateSchedule6(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Never6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Never6(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Empty6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Empty6(); _ObservableMultipleTest.tearDown(); }), + ("testZip_SymmetricReturn6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SymmetricReturn6(); _ObservableMultipleTest.tearDown(); }), + ("testZip_AllCompleted6", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_AllCompleted6(); _ObservableMultipleTest.tearDown(); }), + ("testZip_ImmediateSchedule7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ImmediateSchedule7(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Never7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Never7(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Empty7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Empty7(); _ObservableMultipleTest.tearDown(); }), + ("testZip_SymmetricReturn7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SymmetricReturn7(); _ObservableMultipleTest.tearDown(); }), + ("testZip_AllCompleted7", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_AllCompleted7(); _ObservableMultipleTest.tearDown(); }), + ("testZip_ImmediateSchedule8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ImmediateSchedule8(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Never8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Never8(); _ObservableMultipleTest.tearDown(); }), + ("testZip_Empty8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_Empty8(); _ObservableMultipleTest.tearDown(); }), + ("testZip_SymmetricReturn8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SymmetricReturn8(); _ObservableMultipleTest.tearDown(); }), + ("testZip_AllCompleted8", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_AllCompleted8(); _ObservableMultipleTest.tearDown(); }), + ("testZip_NeverEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NeverEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testZip_EmptyNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_EmptyNever(); _ObservableMultipleTest.tearDown(); }), + ("testZip_EmptyNonEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_EmptyNonEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testZip_NonEmptyEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NonEmptyEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testZip_NeverNonEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NeverNonEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testZip_NonEmptyNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NonEmptyNever(); _ObservableMultipleTest.tearDown(); }), + ("testZip_NonEmptyNonEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NonEmptyNonEmpty(); _ObservableMultipleTest.tearDown(); }), + //("testZip_EmptyError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_EmptyError(); _ObservableMultipleTest.tearDown(); }), + //("testZip_ErrorEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ErrorEmpty(); _ObservableMultipleTest.tearDown(); }), + //("testZip_NeverError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NeverError(); _ObservableMultipleTest.tearDown(); }), + //("testZip_ErrorNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ErrorNever(); _ObservableMultipleTest.tearDown(); }), + //("testZip_ErrorError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ErrorError(); _ObservableMultipleTest.tearDown(); }), + //("testZip_SomeError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_SomeError(); _ObservableMultipleTest.tearDown(); }), + //("testZip_ErrorSome", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_ErrorSome(); _ObservableMultipleTest.tearDown(); }), + ("testZip_LeftCompletesFirst", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_LeftCompletesFirst(); _ObservableMultipleTest.tearDown(); }), + ("testZip_RightCompletesFirst", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_RightCompletesFirst(); _ObservableMultipleTest.tearDown(); }), + //("testZip_LeftTriggersSelectorError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_LeftTriggersSelectorError(); _ObservableMultipleTest.tearDown(); }), + //("testZip_RightTriggersSelectorError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_RightTriggersSelectorError(); _ObservableMultipleTest.tearDown(); }), + //("testCatch_ErrorSpecific_Caught", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatch_ErrorSpecific_Caught(); _ObservableMultipleTest.tearDown(); }), + //("testCatch_HandlerThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatch_HandlerThrows(); _ObservableMultipleTest.tearDown(); }), + ("testCatchSequenceOf_IEofIO", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchSequenceOf_IEofIO(); _ObservableMultipleTest.tearDown(); }), + //("testCatchAnySequence_NoErrors", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchAnySequence_NoErrors(); _ObservableMultipleTest.tearDown(); }), + ("testCatchAnySequence_Never", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchAnySequence_Never(); _ObservableMultipleTest.tearDown(); }), + ("testCatchAnySequence_Empty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchAnySequence_Empty(); _ObservableMultipleTest.tearDown(); }), + //("testCatchSequenceOf_Error", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchSequenceOf_Error(); _ObservableMultipleTest.tearDown(); }), + //("testCatchSequenceOf_ErrorNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchSequenceOf_ErrorNever(); _ObservableMultipleTest.tearDown(); }), + //("testCatchSequenceOf_ErrorError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchSequenceOf_ErrorError(); _ObservableMultipleTest.tearDown(); }), + ("testCatchSequenceOf_Multiple", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCatchSequenceOf_Multiple(); _ObservableMultipleTest.tearDown(); }), + ("testSwitch_Data", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSwitch_Data(); _ObservableMultipleTest.tearDown(); }), + //("testSwitch_InnerThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSwitch_InnerThrows(); _ObservableMultipleTest.tearDown(); }), + //("testSwitch_OuterThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSwitch_OuterThrows(); _ObservableMultipleTest.tearDown(); }), + ("testFlatMapLatest_Data", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testFlatMapLatest_Data(); _ObservableMultipleTest.tearDown(); }), + //("testFlatMapLatest_InnerThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testFlatMapLatest_InnerThrows(); _ObservableMultipleTest.tearDown(); }), + //("testFlatMapLatest_OuterThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testFlatMapLatest_OuterThrows(); _ObservableMultipleTest.tearDown(); }), + //("testFlatMapLatest_SelectorThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testFlatMapLatest_SelectorThrows(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_DefaultScheduler", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_DefaultScheduler(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_IEofIO", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_IEofIO(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_EmptyEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_EmptyEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_EmptyNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_EmptyNever(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_NeverNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_NeverNever(); _ObservableMultipleTest.tearDown(); }), + //("testConcat_EmptyThrow", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_EmptyThrow(); _ObservableMultipleTest.tearDown(); }), + //("testConcat_ThrowEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_ThrowEmpty(); _ObservableMultipleTest.tearDown(); }), + //("testConcat_ThrowThrow", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_ThrowThrow(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_ReturnEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_ReturnEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_EmptyReturn", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_EmptyReturn(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_ReturnNever", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_ReturnNever(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_NeverReturn", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_NeverReturn(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_ReturnReturn", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_ReturnReturn(); _ObservableMultipleTest.tearDown(); }), + //("testConcat_ThrowReturn", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_ThrowReturn(); _ObservableMultipleTest.tearDown(); }), + //("testConcat_ReturnThrow", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_ReturnThrow(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_SomeDataSomeData", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_SomeDataSomeData(); _ObservableMultipleTest.tearDown(); }), + ("testConcat_EnumerableTiming", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testConcat_EnumerableTiming(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_DeadlockSimple", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_DeadlockSimple(); _ObservableMultipleTest.tearDown(); }), + //("testMerge_DeadlockErrorAfterN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_DeadlockErrorAfterN(); _ObservableMultipleTest.tearDown(); }), + //("testMerge_DeadlockErrorImmediatelly", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_DeadlockErrorImmediatelly(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_DeadlockEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_DeadlockEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_DeadlockFirstEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_DeadlockFirstEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testMergeConcurrent_DeadlockSimple", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMergeConcurrent_DeadlockSimple(); _ObservableMultipleTest.tearDown(); }), + //("testMergeConcurrent_DeadlockErrorAfterN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMergeConcurrent_DeadlockErrorAfterN(); _ObservableMultipleTest.tearDown(); }), + //("testMergeConcurrent_DeadlockErrorImmediatelly", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMergeConcurrent_DeadlockErrorImmediatelly(); _ObservableMultipleTest.tearDown(); }), + ("testMergeConcurrent_DeadlockEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMergeConcurrent_DeadlockEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testMergeConcurrent_DeadlockFirstEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMergeConcurrent_DeadlockFirstEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_ObservableOfObservable_Data", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_ObservableOfObservable_Data(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_ObservableOfObservable_Data_NotOverlapped", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_ObservableOfObservable_Data_NotOverlapped(); _ObservableMultipleTest.tearDown(); }), + //("testMerge_ObservableOfObservable_InnerThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_ObservableOfObservable_InnerThrows(); _ObservableMultipleTest.tearDown(); }), + //("testMerge_ObservableOfObservable_OuterThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_ObservableOfObservable_OuterThrows(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_MergeConcat_Basic", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_MergeConcat_Basic(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_MergeConcat_BasicLong", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_MergeConcat_BasicLong(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_MergeConcat_BasicWide", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_MergeConcat_BasicWide(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_MergeConcat_BasicLate", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_MergeConcat_BasicLate(); _ObservableMultipleTest.tearDown(); }), + ("testMerge_MergeConcat_Disposed", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_MergeConcat_Disposed(); _ObservableMultipleTest.tearDown(); }), + //("testMerge_MergeConcat_OuterError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_MergeConcat_OuterError(); _ObservableMultipleTest.tearDown(); }), + //("testMerge_MergeConcat_InnerError", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testMerge_MergeConcat_InnerError(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_DeadlockSimple", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_DeadlockSimple(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_DeadlockErrorAfterN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_DeadlockErrorAfterN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_DeadlockErrorImmediatelly", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_DeadlockErrorImmediatelly(); _ObservableMultipleTest.tearDown(); }), + ("testReplay_DeadlockEmpty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testReplay_DeadlockEmpty(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_Preempt_SomeData_Next", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_Preempt_SomeData_Next(); _ObservableMultipleTest.tearDown(); }), + //("testTakeUntil_Preempt_SomeData_Error", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_Preempt_SomeData_Error(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_NoPreempt_SomeData_Empty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_NoPreempt_SomeData_Empty(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_NoPreempt_SomeData_Never", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_NoPreempt_SomeData_Never(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_Preempt_Never_Next", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_Preempt_Never_Next(); _ObservableMultipleTest.tearDown(); }), + //("testTakeUntil_Preempt_Never_Error", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_Preempt_Never_Error(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_NoPreempt_Never_Empty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_NoPreempt_Never_Empty(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_NoPreempt_Never_Never", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_NoPreempt_Never_Never(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_Preempt_BeforeFirstProduced", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_Preempt_BeforeFirstProduced(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_Preempt_BeforeFirstProduced_RemainSilentAndProperDisposed", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_Preempt_BeforeFirstProduced_RemainSilentAndProperDisposed(); _ObservableMultipleTest.tearDown(); }), + ("testTakeUntil_NoPreempt_AfterLastProduced_ProperDisposedSigna", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_NoPreempt_AfterLastProduced_ProperDisposedSigna(); _ObservableMultipleTest.tearDown(); }), + //("testTakeUntil_Error_Some", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testTakeUntil_Error_Some(); _ObservableMultipleTest.tearDown(); }), + ("testAmb_Never2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_Never2(); _ObservableMultipleTest.tearDown(); }), + ("testAmb_Never3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_Never3(); _ObservableMultipleTest.tearDown(); }), + ("testAmb_Never_Empty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_Never_Empty(); _ObservableMultipleTest.tearDown(); }), + ("testAmb_RegularShouldDisposeLoser", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_RegularShouldDisposeLoser(); _ObservableMultipleTest.tearDown(); }), + //("testAmb_WinnerThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_WinnerThrows(); _ObservableMultipleTest.tearDown(); }), + //("testAmb_LoserThrows", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_LoserThrows(); _ObservableMultipleTest.tearDown(); }), + //("testAmb_ThrowsBeforeElectionLeft", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_ThrowsBeforeElectionLeft(); _ObservableMultipleTest.tearDown(); }), + //("testAmb_ThrowsBeforeElectionRight", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testAmb_ThrowsBeforeElectionRight(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_NeverN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_NeverN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_NeverEmptyN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_NeverEmptyN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_EmptyNeverN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_EmptyNeverN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_EmptyReturnN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_EmptyReturnN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_ReturnReturnN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ReturnReturnN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_EmptyErrorN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_EmptyErrorN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ReturnErrorN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ReturnErrorN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ErrorErrorN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ErrorErrorN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_NeverErrorN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_NeverErrorN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SomeErrorN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SomeErrorN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ErrorAfterCompletedN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ErrorAfterCompletedN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_InterleavedWithTailN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_InterleavedWithTailN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_ConsecutiveN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ConsecutiveN(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ConsecutiveNWithErrorLeft", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ConsecutiveNWithErrorLeft(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_ConsecutiveNWithErrorRight", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_ConsecutiveNWithErrorRight(); _ObservableMultipleTest.tearDown(); }), + //("testCombineLatest_SelectorThrowsN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_SelectorThrowsN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_willNeverBeAbleToCombineN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_willNeverBeAbleToCombineN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_typicalN", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_typicalN(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_NAry_symmetric", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_NAry_symmetric(); _ObservableMultipleTest.tearDown(); }), + ("testCombineLatest_NAry_asymmetric", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testCombineLatest_NAry_asymmetric(); _ObservableMultipleTest.tearDown(); }), + ("testZip_NAry_symmetric", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NAry_symmetric(); _ObservableMultipleTest.tearDown(); }), + ("testZip_NAry_asymmetric", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NAry_asymmetric(); _ObservableMultipleTest.tearDown(); }), + //("testZip_NAry_error", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NAry_error(); _ObservableMultipleTest.tearDown(); }), + //("testZip_NAry_atLeastOneErrors4", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testZip_NAry_atLeastOneErrors4(); _ObservableMultipleTest.tearDown(); }), + ("testSkipUntil_SomeData_Next", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_SomeData_Next(); _ObservableMultipleTest.tearDown(); }), + //("testSkipUntil_SomeData_Error", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_SomeData_Error(); _ObservableMultipleTest.tearDown(); }), + //("testSkipUntil_Error_SomeData", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_Error_SomeData(); _ObservableMultipleTest.tearDown(); }), + ("testSkipUntil_SomeData_Empty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_SomeData_Empty(); _ObservableMultipleTest.tearDown(); }), + ("testSkipUntil_Never_Next", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_Never_Next(); _ObservableMultipleTest.tearDown(); }), + //("testSkipUntil_Never_Error1", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_Never_Error1(); _ObservableMultipleTest.tearDown(); }), + //("testSkipUntil_SomeData_Error2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_SomeData_Error2(); _ObservableMultipleTest.tearDown(); }), + ("testSkipUntil_SomeData_Never", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_SomeData_Never(); _ObservableMultipleTest.tearDown(); }), + ("testSkipUntil_Never_Empty", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_Never_Empty(); _ObservableMultipleTest.tearDown(); }), + ("testSkipUntil_Never_Never", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_Never_Never(); _ObservableMultipleTest.tearDown(); }), + ("testSkipUntil_HasCompletedCausesDisposal", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testSkipUntil_HasCompletedCausesDisposal(); _ObservableMultipleTest.tearDown(); }), + ("testWithLatestFrom_Simple1", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_Simple1(); _ObservableMultipleTest.tearDown(); }), + ("testWithLatestFrom_TwoObservablesWithImmediateValues", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_TwoObservablesWithImmediateValues(); _ObservableMultipleTest.tearDown(); }), + ("testWithLatestFrom_Simple2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_Simple2(); _ObservableMultipleTest.tearDown(); }), + ("testWithLatestFrom_Simple3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_Simple3(); _ObservableMultipleTest.tearDown(); }), + //("testWithLatestFrom_Error1", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_Error1(); _ObservableMultipleTest.tearDown(); }), + //("testWithLatestFrom_Error2", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_Error2(); _ObservableMultipleTest.tearDown(); }), + //("testWithLatestFrom_Error3", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_Error3(); _ObservableMultipleTest.tearDown(); }), + ("testWithLatestFrom_MakeSureDefaultOverloadTakesSecondSequenceValues", { _ObservableMultipleTest.setUp(); _ObservableMultipleTest.testWithLatestFrom_MakeSureDefaultOverloadTakesSecondSequenceValues(); _ObservableMultipleTest.tearDown(); }), +] + + +let _DisposableTest = DisposableTest() +_DisposableTest.allTests = [ + ("testActionDisposable", { _DisposableTest.setUp(); _DisposableTest.testActionDisposable(); _DisposableTest.tearDown(); }), + ("testHotObservable_Disposing", { _DisposableTest.setUp(); _DisposableTest.testHotObservable_Disposing(); _DisposableTest.tearDown(); }), + ("testCompositeDisposable_TestNormal", { _DisposableTest.setUp(); _DisposableTest.testCompositeDisposable_TestNormal(); _DisposableTest.tearDown(); }), + ("testCompositeDisposable_TestRemoving", { _DisposableTest.setUp(); _DisposableTest.testCompositeDisposable_TestRemoving(); _DisposableTest.tearDown(); }), + ("testRefCountDisposable_RefCounting", { _DisposableTest.setUp(); _DisposableTest.testRefCountDisposable_RefCounting(); _DisposableTest.tearDown(); }), + ("testRefCountDisposable_PrimaryDisposesFirst", { _DisposableTest.setUp(); _DisposableTest.testRefCountDisposable_PrimaryDisposesFirst(); _DisposableTest.tearDown(); }), +] + + +let _ObservableStandardSequenceOperatorsTest = ObservableStandardSequenceOperatorsTest() +_ObservableStandardSequenceOperatorsTest.allTests = [ + ("test_filterComplete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.test_filterComplete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("test_filterTrue", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.test_filterTrue(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("test_filterFalse", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.test_filterFalse(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("test_filterDisposed", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.test_filterDisposed(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeWhile_Complete_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Complete_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeWhile_Complete_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Complete_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeWhile_Error_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Error_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeWhile_Error_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Error_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeWhile_Dispose_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Dispose_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeWhile_Dispose_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Dispose_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeWhile_Zero", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Zero(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeWhile_Throw", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Throw(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeWhile_Index1", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Index1(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeWhile_Index2", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Index2(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeWhile_Index_Error", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Index_Error(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeWhile_Index_SelectorThrows", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeWhile_Index_SelectorThrows(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap_Never", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap_Never(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap_Empty", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap_Empty(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap_Range", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap_Range(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testMap_Error", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap_Error(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap_Dispose", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap_Dispose(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testMap_SelectorThrows", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap_SelectorThrows(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap1_Never", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap1_Never(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap1_Empty", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap1_Empty(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap1_Range", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap1_Range(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testMap1_Error", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap1_Error(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap1_Dispose", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap1_Dispose(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testMap1_SelectorThrows", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap1_SelectorThrows(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap_DisposeOnCompleted", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap_DisposeOnCompleted(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMap1_DisposeOnCompleted", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMap1_DisposeOnCompleted(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMapCompose_Never", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMapCompose_Never(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMapCompose_Empty", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMapCompose_Empty(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMapCompose_Range", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMapCompose_Range(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testMapCompose_Error", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMapCompose_Error(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testMapCompose_Dispose", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMapCompose_Dispose(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testMapCompose_Selector1Throws", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMapCompose_Selector1Throws(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testMapCompose_Selector2Throws", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testMapCompose_Selector2Throws(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapFirst_Complete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_Complete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapFirst_Complete_InnerNotComplete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_Complete_InnerNotComplete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapFirst_Complete_OuterNotComplete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_Complete_OuterNotComplete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMapFirst_Complete_ErrorOuter", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_Complete_ErrorOuter(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMapFirst_Error_Inner", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_Error_Inner(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapFirst_Dispose", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_Dispose(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMapFirst_SelectorThrows", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_SelectorThrows(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapFirst_UseFunction", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapFirst_UseFunction(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMap_Complete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_Complete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMap_Complete_InnerNotComplete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_Complete_InnerNotComplete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMap_Complete_OuterNotComplete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_Complete_OuterNotComplete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMap_Complete_ErrorOuter", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_Complete_ErrorOuter(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMap_Error_Inner", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_Error_Inner(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMap_Dispose", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_Dispose(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMap_SelectorThrows", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_SelectorThrows(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMap_UseFunction", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMap_UseFunction(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapIndex_Index", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapIndex_Index(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapWithIndex_Complete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_Complete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapWithIndex_Complete_InnerNotComplete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_Complete_InnerNotComplete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapWithIndex_Complete_OuterNotComplete", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_Complete_OuterNotComplete(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMapWithIndex_Complete_ErrorOuter", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_Complete_ErrorOuter(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMapWithIndex_Error_Inner", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_Error_Inner(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapWithIndex_Dispose", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_Dispose(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testFlatMapWithIndex_SelectorThrows", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_SelectorThrows(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testFlatMapWithIndex_UseFunction", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testFlatMapWithIndex_UseFunction(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_Complete_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Complete_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_Complete_Same", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Complete_Same(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_Complete_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Complete_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTake_Error_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Error_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTake_Error_Same", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Error_Same(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTake_Error_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Error_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_Dispose_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Dispose_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_Dispose_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Dispose_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_0_DefaultScheduler", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_0_DefaultScheduler(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_Take1", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_Take1(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTake_DecrementCountsFirst", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTake_DecrementCountsFirst(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeLast_Complete_Less", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_Complete_Less(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeLast_Complete_Same", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_Complete_Same(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeLast_Complete_More", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_Complete_More(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeLast_Error_Less", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_Error_Less(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeLast_Error_Same", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_Error_Same(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testTakeLast_Error_More", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_Error_More(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeLast_0_DefaultScheduler", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_0_DefaultScheduler(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeLast_TakeLast1", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_TakeLast1(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testTakeLast_DecrementCountsFirst", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testTakeLast_DecrementCountsFirst(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkip_Complete_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Complete_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkip_Complete_Some", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Complete_Some(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkip_Complete_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Complete_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkip_Complete_Zero", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Complete_Zero(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkip_Error_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Error_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkip_Error_Same", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Error_Same(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkip_Error_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Error_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkip_Dispose_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Dispose_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkip_Dispose_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkip_Dispose_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkipWhile_Complete_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Complete_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkipWhile_Complete_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Complete_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkipWhile_Error_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Error_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkipWhile_Error_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Error_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkipWhile_Dispose_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Dispose_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkipWhile_Dispose_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Dispose_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkipWhile_Zero", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Zero(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkipWhile_Throw", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Throw(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSkipWhile_Index", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Index(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkipWhile_Index_Throw", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Index_Throw(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSkipWhile_Index_SelectorThrows", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSkipWhile_Index_SelectorThrows(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testElementAt_Complete_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testElementAt_Complete_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testElementAt_Complete_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testElementAt_Complete_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testElementAt_Error_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testElementAt_Error_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testElementAt_Error_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testElementAt_Error_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testElementAt_Dispose_Before", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testElementAt_Dispose_Before(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testElementAt_Dispose_After", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testElementAt_Dispose_After(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testElementAt_First", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testElementAt_First(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSingle_Empty", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSingle_Empty(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSingle_One", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSingle_One(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSingle_Many", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSingle_Many(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSingle_Error", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSingle_Error(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSinglePredicate_Empty", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSinglePredicate_Empty(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSinglePredicate_One", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSinglePredicate_One(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + ("testSinglePredicate_Many", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSinglePredicate_Many(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSinglePredicate_Error", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSinglePredicate_Error(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), + //("testSinglePredicate_Throws", { _ObservableStandardSequenceOperatorsTest.setUp(); _ObservableStandardSequenceOperatorsTest.testSinglePredicate_Throws(); _ObservableStandardSequenceOperatorsTest.tearDown(); }), +] + + +let _ObservableBindingTest = ObservableBindingTest() +_ObservableBindingTest.allTests = [ + ("testRefCount_DeadlockSimple", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_DeadlockSimple(); _ObservableBindingTest.tearDown(); }), + //("testRefCount_DeadlockErrorAfterN", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_DeadlockErrorAfterN(); _ObservableBindingTest.tearDown(); }), + //("testRefCount_DeadlockErrorImmediatelly", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_DeadlockErrorImmediatelly(); _ObservableBindingTest.tearDown(); }), + ("testRefCount_DeadlockEmpty", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_DeadlockEmpty(); _ObservableBindingTest.tearDown(); }), + ("testRefCount_ConnectsOnFirst", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_ConnectsOnFirst(); _ObservableBindingTest.tearDown(); }), + ("testRefCount_NotConnected", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_NotConnected(); _ObservableBindingTest.tearDown(); }), + //("testRefCount_Error", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_Error(); _ObservableBindingTest.tearDown(); }), + ("testRefCount_Publish", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testRefCount_Publish(); _ObservableBindingTest.tearDown(); }), + ("testReplayCount_Basic", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayCount_Basic(); _ObservableBindingTest.tearDown(); }), + //("testReplayCount_Error", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayCount_Error(); _ObservableBindingTest.tearDown(); }), + ("testReplayCount_Complete", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayCount_Complete(); _ObservableBindingTest.tearDown(); }), + ("testReplayCount_Dispose", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayCount_Dispose(); _ObservableBindingTest.tearDown(); }), + ("testReplayOneCount_Basic", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayOneCount_Basic(); _ObservableBindingTest.tearDown(); }), + //("testReplayOneCount_Error", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayOneCount_Error(); _ObservableBindingTest.tearDown(); }), + ("testReplayOneCount_Complete", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayOneCount_Complete(); _ObservableBindingTest.tearDown(); }), + ("testReplayOneCount_Dispose", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayOneCount_Dispose(); _ObservableBindingTest.tearDown(); }), + ("testReplayAll_Basic", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayAll_Basic(); _ObservableBindingTest.tearDown(); }), + //("testReplayAll_Error", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayAll_Error(); _ObservableBindingTest.tearDown(); }), + ("testReplayAll_Complete", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayAll_Complete(); _ObservableBindingTest.tearDown(); }), + ("testReplayAll_Dispose", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testReplayAll_Dispose(); _ObservableBindingTest.tearDown(); }), + ("testShareReplay_DeadlockImmediatelly", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay_DeadlockImmediatelly(); _ObservableBindingTest.tearDown(); }), + ("testShareReplay_DeadlockEmpty", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay_DeadlockEmpty(); _ObservableBindingTest.tearDown(); }), + //("testShareReplay_DeadlockError", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay_DeadlockError(); _ObservableBindingTest.tearDown(); }), + //("testShareReplay1_DeadlockErrorAfterN", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay1_DeadlockErrorAfterN(); _ObservableBindingTest.tearDown(); }), + ("testShareReplay1_Basic", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay1_Basic(); _ObservableBindingTest.tearDown(); }), + //("testShareReplay1_Error", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay1_Error(); _ObservableBindingTest.tearDown(); }), + ("testShareReplay1_Completed", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay1_Completed(); _ObservableBindingTest.tearDown(); }), + ("testShareReplay1_Canceled", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplay1_Canceled(); _ObservableBindingTest.tearDown(); }), + ("testShareReplayLatestWhileConnected_DeadlockImmediatelly", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplayLatestWhileConnected_DeadlockImmediatelly(); _ObservableBindingTest.tearDown(); }), + ("testShareReplayLatestWhileConnected_DeadlockEmpty", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplayLatestWhileConnected_DeadlockEmpty(); _ObservableBindingTest.tearDown(); }), + //("testShareReplayLatestWhileConnected_DeadlockError", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplayLatestWhileConnected_DeadlockError(); _ObservableBindingTest.tearDown(); }), + //("testShareReplayLatestWhileConnected_DeadlockErrorAfterN", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplayLatestWhileConnected_DeadlockErrorAfterN(); _ObservableBindingTest.tearDown(); }), + ("testShareReplayLatestWhileConnected_Basic", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplayLatestWhileConnected_Basic(); _ObservableBindingTest.tearDown(); }), + //("testShareReplayLatestWhileConnected_Error", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplayLatestWhileConnected_Error(); _ObservableBindingTest.tearDown(); }), + ("testShareReplayLatestWhileConnected_Completed", { _ObservableBindingTest.setUp(); _ObservableBindingTest.testShareReplayLatestWhileConnected_Completed(); _ObservableBindingTest.tearDown(); }), +] + + +let _AnonymousObservableTests = AnonymousObservableTests() +_AnonymousObservableTests.allTests = [ + ("testAnonymousObservable_detachesOnDispose", { _AnonymousObservableTests.setUp(); _AnonymousObservableTests.testAnonymousObservable_detachesOnDispose(); _AnonymousObservableTests.tearDown(); }), + ("testAnonymousObservable_detachesOnComplete", { _AnonymousObservableTests.setUp(); _AnonymousObservableTests.testAnonymousObservable_detachesOnComplete(); _AnonymousObservableTests.tearDown(); }), + //("testAnonymousObservable_detachesOnError", { _AnonymousObservableTests.setUp(); _AnonymousObservableTests.testAnonymousObservable_detachesOnError(); _AnonymousObservableTests.tearDown(); }), +] + + +let _ObservableSingleTest = ObservableSingleTest() +_ObservableSingleTest.allTests = [ + ("testAsObservable_asObservable", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testAsObservable_asObservable(); _ObservableSingleTest.tearDown(); }), + ("testAsObservable_hides", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testAsObservable_hides(); _ObservableSingleTest.tearDown(); }), + ("testAsObservable_never", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testAsObservable_never(); _ObservableSingleTest.tearDown(); }), + ("testDistinctUntilChanged_allChanges", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDistinctUntilChanged_allChanges(); _ObservableSingleTest.tearDown(); }), + ("testDistinctUntilChanged_someChanges", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDistinctUntilChanged_someChanges(); _ObservableSingleTest.tearDown(); }), + ("testDistinctUntilChanged_allEqual", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDistinctUntilChanged_allEqual(); _ObservableSingleTest.tearDown(); }), + ("testDistinctUntilChanged_allDifferent", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDistinctUntilChanged_allDifferent(); _ObservableSingleTest.tearDown(); }), + ("testDistinctUntilChanged_keySelector_Div2", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDistinctUntilChanged_keySelector_Div2(); _ObservableSingleTest.tearDown(); }), + //("testDistinctUntilChanged_keySelectorThrows", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDistinctUntilChanged_keySelectorThrows(); _ObservableSingleTest.tearDown(); }), + //("testDistinctUntilChanged_comparerThrows", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDistinctUntilChanged_comparerThrows(); _ObservableSingleTest.tearDown(); }), + ("testDo_shouldSeeAllValues", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDo_shouldSeeAllValues(); _ObservableSingleTest.tearDown(); }), + ("testDo_plainAction", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDo_plainAction(); _ObservableSingleTest.tearDown(); }), + ("testDo_nextCompleted", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDo_nextCompleted(); _ObservableSingleTest.tearDown(); }), + ("testDo_completedNever", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDo_completedNever(); _ObservableSingleTest.tearDown(); }), + //("testDo_nextError", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDo_nextError(); _ObservableSingleTest.tearDown(); }), + //("testDo_nextErrorNot", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDo_nextErrorNot(); _ObservableSingleTest.tearDown(); }), + //("testDo_Throws", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testDo_Throws(); _ObservableSingleTest.tearDown(); }), + ("testRetry_Basic", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetry_Basic(); _ObservableSingleTest.tearDown(); }), + ("testRetry_Infinite", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetry_Infinite(); _ObservableSingleTest.tearDown(); }), + //("testRetry_Observable_Error", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetry_Observable_Error(); _ObservableSingleTest.tearDown(); }), + //("testRetryCount_Basic", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryCount_Basic(); _ObservableSingleTest.tearDown(); }), + //("testRetryCount_Dispose", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryCount_Dispose(); _ObservableSingleTest.tearDown(); }), + //("testRetryCount_Infinite", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryCount_Infinite(); _ObservableSingleTest.tearDown(); }), + //("testRetryCount_Completed", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryCount_Completed(); _ObservableSingleTest.tearDown(); }), + ("testRetry_tailRecursiveOptimizationsTest", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetry_tailRecursiveOptimizationsTest(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_Never", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_Never(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_ObservableNever", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_ObservableNever(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_ObservableNeverComplete", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_ObservableNeverComplete(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_ObservableEmpty", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_ObservableEmpty(); _ObservableSingleTest.tearDown(); }), + //("testRetryWhen_ObservableNextError", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_ObservableNextError(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_ObservableComplete", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_ObservableComplete(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_ObservableNextComplete", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_ObservableNextComplete(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_ObservableInfinite", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_ObservableInfinite(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_Incremental_BackOff", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_Incremental_BackOff(); _ObservableSingleTest.tearDown(); }), + //("testRetryWhen_IgnoresDifferentErrorTypes", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_IgnoresDifferentErrorTypes(); _ObservableSingleTest.tearDown(); }), + ("testRetryWhen_tailRecursiveOptimizationsTest", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testRetryWhen_tailRecursiveOptimizationsTest(); _ObservableSingleTest.tearDown(); }), + ("testScan_Seed_Never", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testScan_Seed_Never(); _ObservableSingleTest.tearDown(); }), + ("testScan_Seed_Empty", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testScan_Seed_Empty(); _ObservableSingleTest.tearDown(); }), + ("testScan_Seed_Return", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testScan_Seed_Return(); _ObservableSingleTest.tearDown(); }), + //("testScan_Seed_Throw", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testScan_Seed_Throw(); _ObservableSingleTest.tearDown(); }), + ("testScan_Seed_SomeData", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testScan_Seed_SomeData(); _ObservableSingleTest.tearDown(); }), + //("testScan_Seed_AccumulatorThrows", { _ObservableSingleTest.setUp(); _ObservableSingleTest.testScan_Seed_AccumulatorThrows(); _ObservableSingleTest.tearDown(); }), +] + + +let _ObservableAggregateTest = ObservableAggregateTest() +_ObservableAggregateTest.allTests = [ + ("test_AggregateWithSeed_Empty", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeed_Empty(); _ObservableAggregateTest.tearDown(); }), + ("test_AggregateWithSeed_Return", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeed_Return(); _ObservableAggregateTest.tearDown(); }), + //("test_AggregateWithSeed_Throw", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeed_Throw(); _ObservableAggregateTest.tearDown(); }), + ("test_AggregateWithSeed_Never", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeed_Never(); _ObservableAggregateTest.tearDown(); }), + ("test_AggregateWithSeed_Range", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeed_Range(); _ObservableAggregateTest.tearDown(); }), + //("test_AggregateWithSeed_AccumulatorThrows", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeed_AccumulatorThrows(); _ObservableAggregateTest.tearDown(); }), + ("test_AggregateWithSeedAndResult_Empty", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeedAndResult_Empty(); _ObservableAggregateTest.tearDown(); }), + ("test_AggregateWithSeedAndResult_Return", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeedAndResult_Return(); _ObservableAggregateTest.tearDown(); }), + //("test_AggregateWithSeedAndResult_Throw", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeedAndResult_Throw(); _ObservableAggregateTest.tearDown(); }), + ("test_AggregateWithSeedAndResult_Never", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeedAndResult_Never(); _ObservableAggregateTest.tearDown(); }), + ("test_AggregateWithSeedAndResult_Range", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeedAndResult_Range(); _ObservableAggregateTest.tearDown(); }), + //("test_AggregateWithSeedAndResult_AccumulatorThrows", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeedAndResult_AccumulatorThrows(); _ObservableAggregateTest.tearDown(); }), + //("test_AggregateWithSeedAndResult_SelectorThrows", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_AggregateWithSeedAndResult_SelectorThrows(); _ObservableAggregateTest.tearDown(); }), + ("test_ToArrayWithSingleItem_Return", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_ToArrayWithSingleItem_Return(); _ObservableAggregateTest.tearDown(); }), + ("test_ToArrayWithMultipleItems_Return", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_ToArrayWithMultipleItems_Return(); _ObservableAggregateTest.tearDown(); }), + ("test_ToArrayWithNoItems_Empty", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_ToArrayWithNoItems_Empty(); _ObservableAggregateTest.tearDown(); }), + ("test_ToArrayWithSingleItem_Never", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_ToArrayWithSingleItem_Never(); _ObservableAggregateTest.tearDown(); }), + //("test_ToArrayWithImmediateError_Throw", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_ToArrayWithImmediateError_Throw(); _ObservableAggregateTest.tearDown(); }), + //("test_ToArrayWithMultipleItems_Throw", { _ObservableAggregateTest.setUp(); _ObservableAggregateTest.test_ToArrayWithMultipleItems_Throw(); _ObservableAggregateTest.tearDown(); }), +] + + +let _BehaviorSubjectTest = BehaviorSubjectTest() +_BehaviorSubjectTest.allTests = [ + ("test_Infinite", { _BehaviorSubjectTest.setUp(); _BehaviorSubjectTest.test_Infinite(); _BehaviorSubjectTest.tearDown(); }), + ("test_Finite", { _BehaviorSubjectTest.setUp(); _BehaviorSubjectTest.test_Finite(); _BehaviorSubjectTest.tearDown(); }), + //("test_Error", { _BehaviorSubjectTest.setUp(); _BehaviorSubjectTest.test_Error(); _BehaviorSubjectTest.tearDown(); }), + ("test_Canceled", { _BehaviorSubjectTest.setUp(); _BehaviorSubjectTest.test_Canceled(); _BehaviorSubjectTest.tearDown(); }), +] + + +let _ObservableSubscriptionTests = ObservableSubscriptionTests() +_ObservableSubscriptionTests.allTests = [ + ("testSubscribeOnNext", { _ObservableSubscriptionTests.setUp(); _ObservableSubscriptionTests.testSubscribeOnNext(); _ObservableSubscriptionTests.tearDown(); }), + //("testSubscribeOnError", { _ObservableSubscriptionTests.setUp(); _ObservableSubscriptionTests.testSubscribeOnError(); _ObservableSubscriptionTests.tearDown(); }), + ("testSubscribeOnCompleted", { _ObservableSubscriptionTests.setUp(); _ObservableSubscriptionTests.testSubscribeOnCompleted(); _ObservableSubscriptionTests.tearDown(); }), + ("testDisposed", { _ObservableSubscriptionTests.setUp(); _ObservableSubscriptionTests.testDisposed(); _ObservableSubscriptionTests.tearDown(); }), +] + + +let _ObservableConcurrencyTest = ObservableConcurrencyTest() +_ObservableConcurrencyTest.allTests = [ + ("testObserveOnDispatchQueue_DoesPerformWorkOnQueue", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_DoesPerformWorkOnQueue(); _ObservableConcurrencyTest.tearDown(); }), + //("testObserveOnDispatchQueue_DeadlockErrorImmediatelly", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_DeadlockErrorImmediatelly(); _ObservableConcurrencyTest.tearDown(); }), + ("testObserveOnDispatchQueue_DeadlockEmpty", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_DeadlockEmpty(); _ObservableConcurrencyTest.tearDown(); }), + ("testObserveOnDispatchQueue_Never", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_Never(); _ObservableConcurrencyTest.tearDown(); }), + ("testObserveOnDispatchQueue_Simple", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_Simple(); _ObservableConcurrencyTest.tearDown(); }), + ("testObserveOnDispatchQueue_Empty", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_Empty(); _ObservableConcurrencyTest.tearDown(); }), + //("testObserveOnDispatchQueue_Error", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_Error(); _ObservableConcurrencyTest.tearDown(); }), + ("testObserveOnDispatchQueue_Dispose", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testObserveOnDispatchQueue_Dispose(); _ObservableConcurrencyTest.tearDown(); }), + ("testSubscribeOn_SchedulerSleep", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testSubscribeOn_SchedulerSleep(); _ObservableConcurrencyTest.tearDown(); }), + ("testSubscribeOn_SchedulerCompleted", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testSubscribeOn_SchedulerCompleted(); _ObservableConcurrencyTest.tearDown(); }), + //("testSubscribeOn_SchedulerError", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testSubscribeOn_SchedulerError(); _ObservableConcurrencyTest.tearDown(); }), + ("testSubscribeOn_SchedulerDispose", { _ObservableConcurrencyTest.setUp(); _ObservableConcurrencyTest.testSubscribeOn_SchedulerDispose(); _ObservableConcurrencyTest.tearDown(); }), +] + + +let _ObservableTimeTest = ObservableTimeTest() +_ObservableTimeTest.allTests = [ + ("test_ThrottleTimeSpan_AllPass", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleTimeSpan_AllPass(); _ObservableTimeTest.tearDown(); }), + //("test_ThrottleTimeSpan_AllPass_ErrorEnd", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleTimeSpan_AllPass_ErrorEnd(); _ObservableTimeTest.tearDown(); }), + ("test_ThrottleTimeSpan_AllDrop", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleTimeSpan_AllDrop(); _ObservableTimeTest.tearDown(); }), + //("test_ThrottleTimeSpan_AllDrop_ErrorEnd", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleTimeSpan_AllDrop_ErrorEnd(); _ObservableTimeTest.tearDown(); }), + ("test_ThrottleEmpty", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleEmpty(); _ObservableTimeTest.tearDown(); }), + //("test_ThrottleError", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleError(); _ObservableTimeTest.tearDown(); }), + ("test_ThrottleNever", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleNever(); _ObservableTimeTest.tearDown(); }), + ("test_ThrottleSimple", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleSimple(); _ObservableTimeTest.tearDown(); }), + ("test_ThrottleWithRealScheduler", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_ThrottleWithRealScheduler(); _ObservableTimeTest.tearDown(); }), + //("testSample_Sampler_SamplerThrows", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSample_Sampler_SamplerThrows(); _ObservableTimeTest.tearDown(); }), + ("testSample_Sampler_Simple1", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSample_Sampler_Simple1(); _ObservableTimeTest.tearDown(); }), + ("testSample_Sampler_Simple2", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSample_Sampler_Simple2(); _ObservableTimeTest.tearDown(); }), + ("testSample_Sampler_Simple3", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSample_Sampler_Simple3(); _ObservableTimeTest.tearDown(); }), + //("testSample_Sampler_SourceThrows", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSample_Sampler_SourceThrows(); _ObservableTimeTest.tearDown(); }), + //("testSampleLatest_Sampler_SamplerThrows", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSampleLatest_Sampler_SamplerThrows(); _ObservableTimeTest.tearDown(); }), + ("testSampleLatest_Sampler_Simple1", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSampleLatest_Sampler_Simple1(); _ObservableTimeTest.tearDown(); }), + ("testSampleLatest_Sampler_Simple2", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSampleLatest_Sampler_Simple2(); _ObservableTimeTest.tearDown(); }), + ("testSampleLatest_Sampler_Simple3", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSampleLatest_Sampler_Simple3(); _ObservableTimeTest.tearDown(); }), + //("testSampleLatest_Sampler_SourceThrows", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSampleLatest_Sampler_SourceThrows(); _ObservableTimeTest.tearDown(); }), + ("testInterval_TimeSpan_Basic", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testInterval_TimeSpan_Basic(); _ObservableTimeTest.tearDown(); }), + ("testInterval_TimeSpan_Zero", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testInterval_TimeSpan_Zero(); _ObservableTimeTest.tearDown(); }), + ("testInterval_TimeSpan_Zero_DefaultScheduler", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testInterval_TimeSpan_Zero_DefaultScheduler(); _ObservableTimeTest.tearDown(); }), + ("testInterval_TimeSpan_Disposed", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testInterval_TimeSpan_Disposed(); _ObservableTimeTest.tearDown(); }), + ("test_IntervalWithRealScheduler", { _ObservableTimeTest.setUp(); _ObservableTimeTest.test_IntervalWithRealScheduler(); _ObservableTimeTest.tearDown(); }), + ("testTake_TakeZero", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTake_TakeZero(); _ObservableTimeTest.tearDown(); }), + ("testTake_Some", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTake_Some(); _ObservableTimeTest.tearDown(); }), + ("testTake_TakeLate", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTake_TakeLate(); _ObservableTimeTest.tearDown(); }), + //("testTake_TakeError", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTake_TakeError(); _ObservableTimeTest.tearDown(); }), + ("testTake_TakeNever", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTake_TakeNever(); _ObservableTimeTest.tearDown(); }), + ("testTake_TakeTwice1", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTake_TakeTwice1(); _ObservableTimeTest.tearDown(); }), + ("testTake_TakeDefault", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTake_TakeDefault(); _ObservableTimeTest.tearDown(); }), + ("testDelaySubscription_TimeSpan_Simple", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testDelaySubscription_TimeSpan_Simple(); _ObservableTimeTest.tearDown(); }), + //("testDelaySubscription_TimeSpan_Error", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testDelaySubscription_TimeSpan_Error(); _ObservableTimeTest.tearDown(); }), + ("testDelaySubscription_TimeSpan_Dispose", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testDelaySubscription_TimeSpan_Dispose(); _ObservableTimeTest.tearDown(); }), + ("testSkip_Zero", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSkip_Zero(); _ObservableTimeTest.tearDown(); }), + ("testSkip_Some", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSkip_Some(); _ObservableTimeTest.tearDown(); }), + ("testSkip_Late", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSkip_Late(); _ObservableTimeTest.tearDown(); }), + //("testSkip_Error", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSkip_Error(); _ObservableTimeTest.tearDown(); }), + ("testSkip_Never", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testSkip_Never(); _ObservableTimeTest.tearDown(); }), + ("testIgnoreElements_DoesNotSendValues", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testIgnoreElements_DoesNotSendValues(); _ObservableTimeTest.tearDown(); }), + ("testBufferWithTimeOrCount_Basic", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testBufferWithTimeOrCount_Basic(); _ObservableTimeTest.tearDown(); }), + //("testBufferWithTimeOrCount_Error", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testBufferWithTimeOrCount_Error(); _ObservableTimeTest.tearDown(); }), + ("testBufferWithTimeOrCount_Disposed", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testBufferWithTimeOrCount_Disposed(); _ObservableTimeTest.tearDown(); }), + ("testBufferWithTimeOrCount_Default", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testBufferWithTimeOrCount_Default(); _ObservableTimeTest.tearDown(); }), + ("testWindowWithTimeOrCount_Basic", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testWindowWithTimeOrCount_Basic(); _ObservableTimeTest.tearDown(); }), + //("testWindowWithTimeOrCount_Error", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testWindowWithTimeOrCount_Error(); _ObservableTimeTest.tearDown(); }), + ("testWindowWithTimeOrCount_Disposed", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testWindowWithTimeOrCount_Disposed(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_Empty", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_Empty(); _ObservableTimeTest.tearDown(); }), + //("testTimeout_Error", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_Error(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_Never", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_Never(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_Duetime_Simple", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_Duetime_Simple(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_Duetime_Timeout_Exact", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_Duetime_Timeout_Exact(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_Duetime_Disposed", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_Duetime_Disposed(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_TimeoutOccurs_1", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutOccurs_1(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_TimeoutOccurs_2", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutOccurs_2(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_TimeoutOccurs_Never", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutOccurs_Never(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_TimeoutOccurs_Completed", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutOccurs_Completed(); _ObservableTimeTest.tearDown(); }), + //("testTimeout_TimeoutOccurs_Error", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutOccurs_Error(); _ObservableTimeTest.tearDown(); }), + //("testTimeout_TimeoutOccurs_NextIsError", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutOccurs_NextIsError(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_TimeoutNotOccurs_Completed", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutNotOccurs_Completed(); _ObservableTimeTest.tearDown(); }), + //("testTimeout_TimeoutNotOccurs_Error", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutNotOccurs_Error(); _ObservableTimeTest.tearDown(); }), + ("testTimeout_TimeoutNotOccurs", { _ObservableTimeTest.setUp(); _ObservableTimeTest.testTimeout_TimeoutNotOccurs(); _ObservableTimeTest.tearDown(); }), +] + + +let _BagTest = BagTest() +_BagTest.allTests = [ + ("testBag_deletionsFromStart", { _BagTest.setUp(); _BagTest.testBag_deletionsFromStart(); _BagTest.tearDown(); }), + ("testBag_deletionsFromEnd", { _BagTest.setUp(); _BagTest.testBag_deletionsFromEnd(); _BagTest.tearDown(); }), + ("testBag_immutableForeach", { _BagTest.setUp(); _BagTest.testBag_immutableForeach(); _BagTest.tearDown(); }), + ("testBag_removeAll", { _BagTest.setUp(); _BagTest.testBag_removeAll(); _BagTest.tearDown(); }), + ("testBag_complexityTestFromFront", { _BagTest.setUp(); _BagTest.testBag_complexityTestFromFront(); _BagTest.tearDown(); }), + ("testBag_complexityTestFromEnd", { _BagTest.setUp(); _BagTest.testBag_complexityTestFromEnd(); _BagTest.tearDown(); }), +] + + +let _AssumptionsTest = AssumptionsTest() +_AssumptionsTest.allTests = [ + ("testAssumptionInCodeIsThatArraysAreStructs", { _AssumptionsTest.setUp(); _AssumptionsTest.testAssumptionInCodeIsThatArraysAreStructs(); _AssumptionsTest.tearDown(); }), + ("testFunctionCallRetainsArguments", { _AssumptionsTest.setUp(); _AssumptionsTest.testFunctionCallRetainsArguments(); _AssumptionsTest.tearDown(); }), + ("testFunctionReturnValueOverload", { _AssumptionsTest.setUp(); _AssumptionsTest.testFunctionReturnValueOverload(); _AssumptionsTest.tearDown(); }), + ("testArrayMutation", { _AssumptionsTest.setUp(); _AssumptionsTest.testArrayMutation(); _AssumptionsTest.tearDown(); }), +] + +CurrentThreadScheduler.instance.schedule(()) { _ in + XCTMain([ + _ObservableCreationTests, + _QueueTest, + _VariableTest, + _ObservableBlockingTest, + _ObserverTests, + _ObservableMultipleTest, + _DisposableTest, + _ObservableStandardSequenceOperatorsTest, + _ObservableBindingTest, + _AnonymousObservableTests, + _ObservableSingleTest, + _ObservableAggregateTest, + _BehaviorSubjectTest, + _ObservableSubscriptionTests, + _ObservableConcurrencyTest, + _ObservableTimeTest, + _BagTest, + _AssumptionsTest, + ]) + return NopDisposable.instance +} diff --git a/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift b/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift index 4e34ec44..bd46773d 100644 --- a/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+MultipleTest.swift @@ -1522,7 +1522,7 @@ extension ObservableMultipleTest { } -#if DEBUG || TRACE_RESOURCES +#if TRACE_RESOURCES func testConcat_TailRecursionCollection() { maxTailRecursiveSinkStackSize = 0 let elements = try! generateCollection(0) { i in diff --git a/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift b/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift index 10c1aa10..7df37d18 100644 --- a/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift +++ b/Tests/RxSwiftTests/Tests/Observable+SingleTest.swift @@ -22,8 +22,6 @@ class ObservableSingleTest : RxTest { } // Creation -// this is now part of interface -/* extension ObservableSingleTest { func testAsObservable_asObservable() { let scheduler = TestScheduler(initialClock: 0) @@ -47,10 +45,9 @@ extension ObservableSingleTest { XCTAssertEqual(res.events, correct) } - - + func testAsObservable_hides() { - let xs : Observable = Observable.empty() + let xs = PrimitiveHotObservable() let res = xs.asObservable() @@ -60,18 +57,16 @@ extension ObservableSingleTest { func testAsObservable_never() { let scheduler = TestScheduler(initialClock: 0) - let xs : Observable = never() + let xs : Observable = Observable.never() let res = scheduler.start { xs } - let correct: [Recorded] = [] + let correct: [Recorded>] = [] XCTAssertEqual(res.events, correct) } - // ... } -*/ // Distinct extension ObservableSingleTest { diff --git a/Tests/RxTest.swift b/Tests/RxTest.swift index c5c7cc70..5bdda4e9 100644 --- a/Tests/RxTest.swift +++ b/Tests/RxTest.swift @@ -13,8 +13,9 @@ import Foundation #if TRACE_RESOURCES #elseif RELEASE +#elseif os(Linux) #else -//let a = unknown +let failure = unhandled_case() #endif // because otherwise OSX unit tests won't run @@ -23,7 +24,54 @@ import Foundation #elseif os(OSX) import AppKit #endif -class RxTest: XCTestCase { + + +class RxTest + : XCTestCase { + + #if os(Linux) + var allTests : [(String, () -> Void)] = [] + #endif + + private var startResourceCount: Int32 = 0 + + var accumulateStatistics: Bool { + get { + return true + } + } + + #if TRACE_RESOURCES + static var totalNumberOfAllocations: Int64 = 0 + static var totalNumberOfAllocatedBytes: Int64 = 0 + + var startNumberOfAllocations: Int64 = 0 + var startNumberOfAllocatedBytes: Int64 = 0 + #endif + + #if os(Linux) + func setUp() { + setUpActions() + } + + func tearDown() { + tearDownActions() + } + #else + override func setUp() { + super.setUp() + setUpActions() + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + tearDownActions() + } + #endif +} + +extension RxTest { struct Defaults { static let created = 100 static let subscribed = 200 @@ -34,22 +82,6 @@ class RxTest: XCTestCase { NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate(timeIntervalSinceNow: time)) } - private var startResourceCount: Int32 = 0 - - var accumulateStatistics: Bool { - get { - return true - } - } - -#if TRACE_RESOURCES - static var totalNumberOfAllocations: Int64 = 0 - static var totalNumberOfAllocatedBytes: Int64 = 0 - - var startNumberOfAllocations: Int64 = 0 - var startNumberOfAllocatedBytes: Int64 = 0 -#endif - func setUpActions(){ #if TRACE_RESOURCES self.startResourceCount = resourceCount @@ -58,16 +90,6 @@ class RxTest: XCTestCase { #endif } - #if os(Linux) - func setUp() { - setUpActions() - } - #else - override func setUp() { - setUpActions() - } - #endif - func tearDownActions() { #if TRACE_RESOURCES // give 5 sec to clean up resources @@ -94,15 +116,4 @@ class RxTest: XCTestCase { #endif } - #if os(Linux) - func tearDown() { - tearDownActions() - } - #else - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - tearDownActions() - } - #endif } diff --git a/scripts/package-swift-manager.swift b/scripts/package-swift-manager.swift index 03b1b6bb..5461ba26 100755 --- a/scripts/package-swift-manager.swift +++ b/scripts/package-swift-manager.swift @@ -13,7 +13,36 @@ import Foundation let fileManager = NSFileManager.defaultManager() -let allowedExtensions = [".swift", ".h", ".m"] +let allowedExtensions = [ + ".swift", + ".h", + ".m", +] +// Those tests are dependant on conditional compilation logic and it's hard to handle them automatically +// They usually test some internal state, so it should be ok to exclude them for now. +let excludedTests = [ + "testConcat_TailRecursionCollection", + "testConcat_TailRecursionSequence", + "testMapCompose_OptimizationIsPerformed", + "testMapCompose_OptimizationIsNotPerformed", + "testObserveOn_EnsureCorrectImplementationIsChosen", + "testObserveOnDispatchQueue_EnsureCorrectImplementationIsChosen", + "testWindowWithTimeOrCount_BasicPeriod", + "testObserveOnDispatchQueue_DispatchQueueSchedulerIsSerial", + "testResourceLeaksDetectionIsTurnedOn" +] + +let excludedTestClasses = [ + "ObservableConcurrentSchedulerConcurrencyTest", + "SubjectConcurrencyTest" +] + +let throwingWordsInTests = [ + "error", + "fail", + "throw", + "retrycount" +] func isExtensionAllowed(path: String) -> Bool { return (allowedExtensions.map { path.hasSuffix($0) }).reduce(false) { $0 || $1 } @@ -62,9 +91,98 @@ func packageRelativePath(paths: [String], targetDirName: String) throws { } } +func buildAllTestsTarget(testsPath: String) throws { + let splitClasses = "(?:class|extension)\\s+(\\w+)" + let testMethods = "\\s+func\\s+(test\\w+)" + + let splitClassesRegularExpression = try! NSRegularExpression(pattern: splitClasses, options:[]) + let testMethodsExpression = try! NSRegularExpression(pattern: testMethods, options: []) + + var reducedMethods: [String: [String]] = [:] + + for file in try fileManager.contentsOfDirectoryAtPath(testsPath) { + if !file.hasSuffix(".swift") || file == "main.swift" { + continue + } + + let fileRelativePath = "\(testsPath)/\(file)" + let testContent = try NSString(contentsOfFile: fileRelativePath, encoding: NSUTF8StringEncoding) + + print(fileRelativePath) + + let classMatches = splitClassesRegularExpression.matchesInString(testContent as String, options: [], range: NSRange(location: 0, length: testContent.length)) + let matchIndexes = classMatches + .map { $0.range.location } + let classNames = classMatches.map { testContent.substringWithRange($0.rangeAtIndex(1)) as NSString } + + let ranges = zip([0] + matchIndexes, matchIndexes + [testContent.length]).map { NSRange(location: $0, length: $1 - $0) } + let classRanges = ranges[1 ..< ranges.count] + + let classes = zip(classNames, classRanges.map { testContent.substringWithRange($0) as NSString }) + + for (name, classCode) in classes { + if excludedTestClasses.contains(name as String) { + print("Skipping \(name)") + continue + } + + let methodMatches = testMethodsExpression.matchesInString(classCode as String, options: [], range: NSRange(location: 0, length: classCode.length)) + let methodNameRanges = methodMatches.map { $0.rangeAtIndex(1) } + let testMethodNames = methodNameRanges + .map { classCode.substringWithRange($0) } + .filter { !excludedTests.contains($0) } + + if testMethodNames.count == 0 { + continue + } + + let existingMethods = reducedMethods[name as String] ?? [] + reducedMethods[name as String] = existingMethods + testMethodNames + } + } + + var mainContent = [String]() + + mainContent.append("// this file is autogenerated using `./scripts/package-swift-manager.swift`") + mainContent.append("import XCTest") + mainContent.append("import RxSwift") + mainContent.append("") + + for (name, methods) in reducedMethods { + + mainContent.append("") + mainContent.append("let _\(name) = \(name)()") + mainContent.append("_\(name).allTests = [") + for method in methods { + // throwing error on Linux, you will crash + let isTestCaseHandlingError = throwingWordsInTests.map { (method as String).lowercaseString.containsString($0) }.reduce(false) { $0 || $1 } + mainContent.append(" \(isTestCaseHandlingError ? "//" : "")(\"\(method)\", { _\(name).setUp(); _\(name).\(method)(); _\(name).tearDown(); }),") + } + mainContent.append("]") + mainContent.append("") + } + + mainContent.append("CurrentThreadScheduler.instance.schedule(()) { _ in") + mainContent.append(" XCTMain([") + for testCase in reducedMethods.keys { + mainContent.append(" _\(testCase),") + } + mainContent.append(" ])") + mainContent.append(" return NopDisposable.instance") + mainContent.append("}") + mainContent.append("") + + let serializedMainContent = mainContent.joinWithSeparator("\n") + try serializedMainContent.writeToFile("\(testsPath)/main.swift", atomically: true, encoding: NSUTF8StringEncoding) +} + +/* try packageRelativePath(["RxSwift"], targetDirName: "RxSwift") try packageRelativePath(["RxCocoa/Common", "RxCocoa/OSX", "RxCocoa/RxCocoa.h"], targetDirName: "RxCocoa") try packageRelativePath(["RxBlocking"], targetDirName: "RxBlocking") try packageRelativePath(["RxTests"], targetDirName: "RxTests") // It doesn't work under `Tests` subpath ¯\_(ツ)_/¯ -try packageRelativePath(["RxSwift/RxMutableBox.swift", "Tests/RxTest.swift", "Tests/Tests", "Tests/RxSwiftTests"], targetDirName: "AllTests") \ No newline at end of file +try packageRelativePath(["RxSwift/RxMutableBox.swift", "Tests/RxTest.swift", "Tests/Tests", "Tests/RxSwiftTests"], targetDirName: "AllTests") +*/ + +try buildAllTestsTarget("Sources/AllTests") \ No newline at end of file diff --git a/scripts/test-linux.sh b/scripts/test-linux.sh new file mode 100755 index 00000000..61981965 --- /dev/null +++ b/scripts/test-linux.sh @@ -0,0 +1,9 @@ +set -e + +CONFIGURATIONS=(debug release) + +for configuration in ${CONFIGURATIONS[@]} +do + swift build -c ${configuration} && .build/${configuration}/AllTests +done +