コード例 #1
0
            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);
            }
コード例 #2
0
            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 });
            }