Beispiel #1
0
        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]);
            }
        }
Beispiel #2
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]);
            }
        }
Beispiel #3
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);
            }
        }
Beispiel #4
0
        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&lt;TValue, TContext&gt;.ThreadContext"/> class.
 /// </summary>
 /// <param name="timeEngine">The time engine.</param>
 internal ThreadContext(TimeEngine <TListValue, TContext> timeEngine)
 {
     _timeEngine = timeEngine;
 }
Beispiel #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TimeEngine&lt;TElement, TContext&gt;.Context&lt;TContext&gt;"/> class.
 /// </summary>
 /// <param name="parent">The parent.</param>
 public ContextChange(TimeEngine <TListValue, TContext> parent)
 {
     _parent = parent;
 }
Beispiel #7
0
 public void CreateInstance()
 {
     using (var timeEngine = new TimeEngine()) { };
 }