Esempio n. 1
0
        private static void AssertDecayPointer <TElement>(DecayPointer <TElement> ptr, IList <TElement> arr)
        {
            Assert.That(ptr.Count, Is.EqualTo(arr.Count));
            Assert.That(ptr.IsDecayed, Is.EqualTo(true));
            Assert.That(ptr.IsNull, Is.EqualTo(false));

            TestingAssertion.AssertElements(ptr, arr);
            ptr.MoveToStart();


            for (int i = 0; i < arr.Count; i++)
            {
                Debug.Assert(ptr[i].Equals(arr[i]));
            }

            for (int i = 0; i < arr.Count; i++)
            {
                Debug.Assert(ptr[0].Equals(arr[i]));
                Debug.Assert(ptr.Value.Equals(arr[i]));
                ptr++;
            }



            for (int i = arr.Count - 1; i >= 0; i--)
            {
                Assert.That(ptr.Value, Is.EqualTo(arr[i]));
                ptr--;
            }

            Assert.That(ptr.Value, Is.EqualTo(arr[0]));
            Assert.That(ptr[0], Is.EqualTo(arr[0]));

            //Debug.Assert(ptr.ToArray().SequenceEqual(arr));
            TestingAssertion.AssertElements(ptr, arr);
        }