public void PopTest() { var arr = UnsafeStack.Allocate <int>(10); for (int i = 1; i <= 10; i++) { UnsafeStack.Push(arr, i); } Assert.AreEqual(10, UnsafeStack.GetCount(arr)); var val = UnsafeStack.Pop <int>(arr); Assert.AreEqual(10, val); Assert.AreEqual(9, UnsafeStack.GetCount(arr)); // Reverse stack-iteration for (int i = 9; i > 0; i--) { var num = UnsafeStack.Pop <int>(arr); Assert.AreEqual(i, num); } Assert.AreEqual(0, UnsafeStack.GetCount(arr)); }
public void InvalidTypeTest() { var arr = UnsafeStack.Allocate <int>(10); Assert.Catch <AssertException>(() => { UnsafeStack.Push <float>(arr, 20); }); UnsafeStack.Free(arr); }
public void ConstructorTest() { var arr = UnsafeStack.Allocate <int>(10); Assert.AreEqual(UnsafeStack.GetCount(arr), 0); UnsafeStack.Free(arr); }
public void ExpandTest() { var arr = UnsafeStack.Allocate <int>(8); for (int i = 0; i < 10; i++) { UnsafeStack.Push(arr, i); } Assert.IsTrue(UnsafeStack.GetCapacity(arr) > 8); UnsafeStack.Free(arr); }
public void ContainsTest() { var arr = UnsafeStack.Allocate <int>(10); for (int i = 1; i <= 10; i++) { UnsafeStack.Push(arr, i); } Assert.IsTrue(UnsafeStack.Contains(arr, 1)); Assert.IsTrue(UnsafeStack.Contains(arr, 10)); Assert.IsFalse(UnsafeStack.Contains(arr, 11)); }
public void MutateTest() { var arr = UnsafeStack.Allocate <int>(10); for (int i = 0; i < 10; i++) { UnsafeStack.Push(arr, i); } for (int i = 9; i >= 0; i--) { Assert.AreEqual(i, UnsafeStack.Pop <int>(arr)); } UnsafeStack.Free(arr); }
public void IteratorTest() { var arr = UnsafeStack.Allocate <int>(10); for (int i = 0; i < 10; i++) { UnsafeStack.Push(arr, i); } Assert.AreEqual(10, UnsafeStack.GetCount(arr)); int num = 9; foreach (int i in UnsafeStack.GetEnumerator <int>(arr)) { Assert.AreEqual(num--, i); } UnsafeStack.Free(arr); }
public void CopyToTest() { var q = UnsafeStack.Allocate <int>(10); for (int i = 0; i < 10; i++) { UnsafeStack.Push(q, i); } var arr = new int[10]; fixed(void *ptr = arr) { UnsafeStack.CopyTo <int>(q, ptr, 0); } int num = 10; for (int i = 0; i < 10; i++) { Assert.AreEqual(--num, arr[i]); } }
public NativeStack(int capacity, bool fixedSize) { m_inner = UnsafeStack.Allocate <T>(capacity, fixedSize); }
public NativeStack(int capacity) { m_inner = UnsafeStack.Allocate <T>(capacity); }