Пример #1
0
 public void TestCoalesce()
 {
     var e1 = new FirableEvent<int>();
     var e2 = new FirableEvent<int>();
     var o = new List<int>();
     var evt2 = e1.Map(x => x * 100);
     var evt = evt2 | e2;
     var l = e1.Merge(evt)
               .Coalesce((a, b) => a + b)
               .Subscribe(o.Add);
     e1.Fire(2);
     e1.Fire(8);
     e2.Fire(40);
     l.Dispose();
     AssertArraysEqual(Arrays<int>.AsList(202, 808, 40), o);
 }
Пример #2
0
 public void TestMergeSimultaneous()
 {
     var e = new FirableEvent<int>();
     var o = new List<int>();
     var l = e.Merge(e).Subscribe(o.Add);
     e.Fire(7);
     e.Fire(9);
     l.Dispose();
     AssertArraysEqual(Arrays<int>.AsList(7, 7, 9, 9), o);
 }
Пример #3
0
 public void TestMergeNonSimultaneous()
 {
     var e1 = new FirableEvent<int>();
     var e2 = new FirableEvent<int>();
     var o = new List<int>();
     var l = e1.Merge(e2).Subscribe(o.Add);
     e1.Fire(7);
     e2.Fire(9);
     e1.Fire(8);
     l.Dispose();
     AssertArraysEqual(Arrays<int>.AsList(7, 9, 8), o);
 }