public void AddValueZero() { var linkItem = new LinkItem(); var listItem = new ListItem(); using (var timeEngine = new TimeEngine()) { timeEngine.AddValue(linkItem.Link, 0); timeEngine.AddValue(listItem, 0); var fractions = timeEngine.Timeslices[0].Fractions; Assert.AreEqual(1, fractions[0].Chain.Count); Assert.AreEqual(1, fractions[0].List.Count); Assert.AreEqual(linkItem.Link, fractions[0].Chain.Head); Assert.AreEqual(listItem, fractions[0].List[0]); } }
public void AddValueWholeTime() { var linkItem = new LinkItem(); var listItem = new ListItem(); ulong time = TimePrecision.TimeScaler; using (var timeEngine = new TimeEngine()) { timeEngine.AddValue(linkItem.Link, time); timeEngine.AddValue(listItem, time); //+ var fractions = timeEngine.Timeslices[1].Fractions; ulong fractionTime = (time & TimePrecision.TimePrecisionMask); Assert.AreEqual(1, fractions[fractionTime].Chain.Count); Assert.AreEqual(1, fractions[fractionTime].List.Count); Assert.AreEqual(linkItem.Link, fractions[fractionTime].Chain.Head); Assert.AreEqual(listItem, fractions[fractionTime].List[0]); } }
public void AddValueHibernateTime() { var linkItem = new LinkItem(); var listItem = new ListItem(); ulong time = (TimeSettings.MaxTimeslices << TimePrecision.TimePrecisionBits); using (var timeEngine = new TimeEngine()) { timeEngine.AddValue(linkItem.Link, time); timeEngine.AddValue(listItem, time); //+ var fractions = timeEngine.Timeslices[0].Fractions; ulong fractionTime = (time & TimePrecision.TimePrecisionMask); Assert.AreEqual(0, fractions.Count); //+ var hibernateSegment = timeEngine.HibernateSegments[0]; Assert.AreEqual(1, hibernateSegment.Chain.Count); Assert.AreEqual(1, hibernateSegment.List.Count); Assert.AreEqual(linkItem.Link, hibernateSegment.Chain.Head); Assert.AreEqual(listItem, hibernateSegment.List.First.Value.Object); } }
public void AddFutureItemTestExecute() { int linkCompleted = 0; var linkItem = new LinkItem(delegate(TimeEngine.ThreadContext threadContext) { linkCompleted++; }); int listCompleted = 0; var listItem = new ListItem(delegate(TimeEngine.ThreadContext threadContext) { listCompleted++; }); using (var timeEngine = new TimeEngine()) { timeEngine.AddValue(linkItem.Link, TimePrecision.ParseTime(1.0M)); timeEngine.AddValue(listItem, TimePrecision.ParseTime(1.0M)); timeEngine.EvaluateFrame(100); } Assert.AreEqual(1, linkCompleted); Assert.AreEqual(1, listCompleted); }
/// <summary> /// Initializes a new instance of the <see cref="TimeEngine<TValue, TContext>.ThreadContext"/> class. /// </summary> /// <param name="timeEngine">The time engine.</param> internal ThreadContext(TimeEngine <TListValue, TContext> timeEngine) { _timeEngine = timeEngine; }
/// <summary> /// Initializes a new instance of the <see cref="TimeEngine<TElement, TContext>.Context<TContext>"/> class. /// </summary> /// <param name="parent">The parent.</param> public ContextChange(TimeEngine <TListValue, TContext> parent) { _parent = parent; }
public void CreateInstance() { using (var timeEngine = new TimeEngine()) { }; }