public void TwoDistributionWithFiveContinuationsAfterTwoSplitsWithRemove() { // Only first path tested, yet. _choiceResolver.PrepareNextState(); _stepGraph.Clear(); _choiceResolver.PrepareNextPath(); _choiceResolver.HandleProbabilisticChoice(3); var choiceToMakeDeterministic = _choiceResolver.LastChoiceIndex; _choiceResolver.HandleChoice(2); // MakeChoiceAtIndexDeterministic of probabilistic split var cidToForwardTo = _choiceResolver.GetContinuationId(); _choiceResolver.ForwardUntakenChoicesAtIndex(choiceToMakeDeterministic); var choiceOfCid0 = _stepGraph.GetChoiceOfCid(0); var choiceOfCid1 = _stepGraph.GetChoiceOfCid(1); var choiceOfCid2 = _stepGraph.GetChoiceOfCid(2); var entries = CountEntries(0); entries.ShouldBe(2); entries = CountEntries(1); entries.ShouldBe(2); entries = CountEntries(4); entries.ShouldBe(0); entries = CountEntries(5); entries.ShouldBe(0); entries = CountEntries(2); entries.ShouldBe(1); cidToForwardTo.ShouldBe(4); choiceOfCid0.ChoiceType.ShouldBe(LtmdpChoiceType.Probabilitstic); choiceOfCid0.From.ShouldBe(1); choiceOfCid0.To.ShouldBe(2); choiceOfCid0.Probability.ShouldBe(1.0); choiceOfCid1.ChoiceType.ShouldBe(LtmdpChoiceType.Nondeterministic); choiceOfCid1.From.ShouldBe(4); choiceOfCid1.To.ShouldBe(5); choiceOfCid1.Probability.ShouldBe(1.0 / 3); choiceOfCid2.ChoiceType.ShouldBe(LtmdpChoiceType.Forward); choiceOfCid2.To.ShouldBe(4); choiceOfCid2.Probability.ShouldBe(1.0 - (1.0 / 3)); }
public void TwoDistributionWithFiveContinuationsAfterTwoSplitsWithRemove() { // Only first path tested, yet. _choiceResolver.PrepareNextState(); _stepGraph.Clear(); _choiceResolver.PrepareNextPath(); _choiceResolver.HandleProbabilisticChoice(3); var choiceToMakeDeterministic = _choiceResolver.LastChoiceIndex; _choiceResolver.HandleChoice(2); // MakeChoiceAtIndexDeterministic of probabilistic split _choiceResolver.ForwardUntakenChoicesAtIndex(choiceToMakeDeterministic); var entries = CountEntries(0); entries.ShouldBe(1); entries = CountEntries(1); entries.ShouldBe(2); entries = CountEntries(4); entries.ShouldBe(0); entries = CountEntries(5); entries.ShouldBe(0); }