public SDSComputation BeginAdvanceTLG(bool intermediateShouldBeConsistent) { int i = tlgGen = stack.NewestRegisteredSDSGeneration; tlgEntry = stack.AllocateGeneration(i + 1); Assert.AreEqual(tlgEntry.Generation, i + 1); Assert.IsNotNull(stack.FindGeneration(i + 1)); ctx.SetGeneration(i + 1); tlgComp = new SDSComputation(new DateTime(), consensus != null ? messages.GetMessages(i) : ExtMessagePack.CompleteBlank, TimeSpan.FromMilliseconds(10), ctx); if (intermediateShouldBeConsistent) { AssertNoErrors(tlgComp, i.ToString()); } if (intermediateShouldBeConsistent) { Assert.AreEqual(tlgComp.Intermediate.ic.OneCount, 0); Assert.IsTrue(tlgComp.Intermediate.inputConsistent); } Assert.AreEqual(tlgComp.Generation, i + 1); if (consensus != null) { consensus[0].TrimOut(stack.NewestConsistentSDSGeneration); } messages.TrimGenerations(stack.NewestConsistentSDSGeneration); return(tlgComp); }
public void FeedEntities(IEnumerable <Entity> entities) { var intermediate = new IntermediateSDS(); intermediate.entities = new EntityPool(entities, ctx); intermediate.ic = InconsistencyCoverage.NewCommon(); intermediate.inputConsistent = true; intermediate.localChangeSet = new EntityChangeSet(); var root = new SDSStack.Entry( new SDS(0, intermediate.entities.ToArray(), intermediate.ic), intermediate ); Assert.IsTrue(root.IsFullyConsistent); stack = Simulation.Stack; stack.ResetToRoot(root); messages = new MessageHistory(0, new MessagePack[] { MessagePack.CompleteBlank }); }