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 SDSStack.Entry RecomputeGeneration(int generation, bool trim = true) { ctx.SetGeneration(generation); var comp = new SDSComputation(new DateTime(), ExtMessagePack.CompleteBlank, TimeSpan.FromMilliseconds(10), ctx); AssertNoErrors(comp, "Recompute (" + generation + ")"); var sds = comp.Complete(); return(stack.Insert(sds, trim)); }
public static void AssertNoErrors(SDSComputation comp, string task) { var errors = comp.Errors; if (errors == null) { return; } //Exception ex = errors[0]; //while (ex.InnerException != null && !(ex is ExecutionException)) // ex = ex.InnerException; Assert.Fail(task + ": " + errors[0].ToString()); }