Пример #1
0
        public void Append()
        {
            XorLinkedList list = new XorLinkedList(new MonitoredUnmanagedMemory());

            list.Append(1);
            list.Append(2);
            list.Append(3);
            Assert.Null(list.GetAt(-1));
            Assert.Equal(1, list.GetAt(0));
            Assert.Equal(2, list.GetAt(1));
            Assert.Equal(3, list.GetAt(2));
            Assert.Null(list.GetAt(3));
        }
Пример #2
0
        public void DeleteAll()
        {
            MonitoredUnmanagedMemory mem = new MonitoredUnmanagedMemory();

            XorLinkedList list = new XorLinkedList(mem);

            list.Append(1);
            list.Append(2);
            list.Append(3);

            list.DeleteAll();

            Assert.Empty(mem.currentAllocations);
        }
Пример #3
0
        public void AllocationFreeing()
        {
            MonitoredUnmanagedMemory mem  = new MonitoredUnmanagedMemory();
            XorLinkedList            list = new XorLinkedList(mem);

            list.Append(1);
            list.Append(2);
            list.Append(3);
            list.RemoveAt(0);
            Assert.Equal(2, mem.currentAllocations.Count);
            list.RemoveAt(0);
            Assert.Single(mem.currentAllocations);
            list.RemoveAt(0);
            Assert.Empty(mem.currentAllocations);
        }
Пример #4
0
 public void GlobalSetup()
 {
     for (int index = 0; index < getAtDepth + 1; index++)
     {
         list.Append(index);
     }
 }
Пример #5
0
        public void ResponsiveToGarbageCollection()
        {
            MonitoredUnmanagedMemory mem = new MonitoredUnmanagedMemory();

            void innerScope()
            {
                XorLinkedList list = new XorLinkedList(mem);

                list.Append(1);
                list.Append(2);
                list.Append(3);
                Assert.Equal(3, mem.currentAllocations.Count);
            }

            innerScope();

            GC.Collect();
            GC.WaitForPendingFinalizers();
            Assert.Empty(mem.currentAllocations);
        }