public void CouldCompleteObserverBenchmark() { var count = 10000000; var map = new SortedMap <int, int>(count); var subscriber = new SumValuesObserver(true); map.Subscribe(subscriber); var expectedSum = 0; var sw = new Stopwatch(); sw.Start(); for (int i = 0; i < count; i++) { map.Add(i, i); expectedSum += i; } Assert.IsFalse(subscriber.IsCompleted); map.Complete(); Assert.IsTrue(subscriber.Completed.Result); sw.Stop(); Console.WriteLine($"Elapsed: {sw.ElapsedMilliseconds}"); Console.WriteLine($"MOps: {(count * 0.001) / sw.ElapsedMilliseconds}"); Assert.AreEqual(expectedSum, subscriber.Sum); Assert.IsTrue(subscriber.IsCompleted); }
public void CouldCompleteObserver(IMutableSeries <int, int> map) { var subscriber = new SumValuesObserver(); var series = map as Series <int, int>; var cursor = (series + series).GetCursor(); cursor.Source.Subscribe(subscriber); var expectedSum = 0; for (int i = 0; i < 10; i++) { map.Add(i, i); expectedSum += i; } Assert.IsFalse(subscriber.IsCompleted); map.Complete(); Thread.Sleep(100); Assert.IsTrue(subscriber.IsCompleted); Thread.Sleep(1000); Assert.AreEqual(expectedSum * 2, subscriber.Sum); }