public void EventStream_SpeculatorAfterPreviousSpeculatorReject() { var n = new EventStream(TestUtils.ChronListFromString("a b c d e f")); var res = new List <IChronologicalEvent>(); var speculator = n.CreateSpeculator(); while (speculator.MoveNext()) { res.Add(speculator.Current); } speculator.EndDiscardAll(); speculator = n.CreateSpeculator(); while (speculator.MoveNext()) { res.Add(speculator.Current); } speculator.EndDiscardAll(); var expected = TestUtils.ChronListFromString("a b c d e f").ToList(); expected.AddRange(expected); AssertEventListsAreSame(res, expected); }
public void EventStream_SpeculatorAfterOtherSpeculator() { var n = new EventStream(TestUtils.ChronListFromString("a b c d e f")); var res = new List <IChronologicalEvent>(); n.MoveNext(); res.Add(n.Current); var speculator = n.CreateSpeculator(); speculator.MoveNext(); res.Add(speculator.Current); speculator.EndApplyAll(); n.MoveNext(); res.Add(n.Current); speculator = n.CreateSpeculator(); speculator.MoveNext(); res.Add(speculator.Current); speculator.EndApplyAll(); n.MoveNext(); res.Add(n.Current); n.MoveNext(); res.Add(n.Current); var expected = TestUtils.ChronListFromString("a b c d e f"); AssertEventListsAreSame(res, expected); }
public void EventStream_SubSpeculatorSolidifes() { var n = new EventStream(TestUtils.ChronListFromString("a b c d e f")); var res = new List <IChronologicalEvent>(); n.MoveNext(); res.Add(n.Current); var speculator = n.CreateSpeculator(); speculator.MoveNext(); res.Add(speculator.Current); var subspec = speculator.CreateSpeculator(); subspec.MoveNext(); res.Add(subspec.Current); subspec.EndApplyAll(); speculator.MoveNext(); res.Add(speculator.Current); speculator.EndApplyAll(); while (n.MoveNext()) { res.Add(n.Current); } var expected = TestUtils.ChronListFromString("a b c d e f"); AssertEventListsAreSame(res, expected); }
public void EventStream_SpeculatorRejectsAllMidway() { var n = new EventStream(TestUtils.ChronListFromString("a b c d e f")); var res = new List <IChronologicalEvent>(); n.MoveNext(); res.Add(n.Current); var speculator = n.CreateSpeculator(); speculator.MoveNext(); res.Add(speculator.Current); speculator.EndDiscardAll(); while (n.MoveNext()) { res.Add(n.Current); } var expected = TestUtils.ChronListFromString("a b c d e f").ToList(); expected.Insert(2, expected[1]); AssertEventListsAreSame(res, expected); }
public void EventStream_SpeculatorContinues() { var n = new EventStream(TestUtils.ChronListFromString("a b c d e f")); var res = new List <IChronologicalEvent>(); n.MoveNext(); res.Add(n.Current); var speculator = n.CreateSpeculator(); while (speculator.MoveNext()) { res.Add(speculator.Current); } var expected = TestUtils.ChronListFromString("a b c d e f"); AssertEventListsAreSame(res, expected); }