public async Task testThreeSources() { var num = 30; Assert .AreEqual( (num + 1) * (num / 2) * 3, await Task.Factory.StartNew(val => { int count = (int)val; bool continueFlag = false; var testf = new TestFlowable(count); var testg = new TestFlowable(count); var testh = new TestFlowable(count); int sum = 0; var tmp = testf .Merge(testg, testh) .Subscribe( onNext: x => sum += x, onComplete: () => { continueFlag = true; }); while (!continueFlag) { } ; return(sum); }, num)); }
public async Task testSingleSource() { var num = 1_000_000; Assert .AreEqual( (num + 1) * (num / 2), await Task.Factory.StartNew(val => { int count = (int)val; bool continueFlag = false; var testf = new TestFlowable(count); int sum = 0; var tmp = testf .Subscribe( onNext: x => Interlocked.Add(ref sum, x), onComplete: () => { continueFlag = true; }); // this is kind of a hack... while (!continueFlag) { Thread.Sleep(10); } ; return(sum); }, num)); }