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); }
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); }
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); }