public void TransferToBiggerArray_copies_contents_of_original_to_new_array() { int[] original = new int[] { 1, 2, 3 }; int[] expanded = DotNetHeapUtils.TransferToBiggerArray(original); Assert.Equal(1, expanded[0]); Assert.Equal(2, expanded[1]); Assert.Equal(3, expanded[2]); }
public void TransferToBiggerArray_allows_custom_expansion_size() { int[] original = new int[] { 1, 2, 3 }; int additionalSize = 1; int[] expanded = DotNetHeapUtils.TransferToBiggerArray(original, additionalSize); Assert.Equal(expanded.Length, original.Length + additionalSize); }
public void TransferToBiggerArray_null_or_empty_original_returns_default_size_array() { int[] original = null; int[] list = DotNetHeapUtils.TransferToBiggerArray(original); Assert.NotNull(list); Assert.Equal(DotNetHeapUtils.HEAP_DEFAULT_SIZE, list.Length); original = new int[0]; list = DotNetHeapUtils.TransferToBiggerArray(original); Assert.NotNull(list); Assert.Equal(DotNetHeapUtils.HEAP_DEFAULT_SIZE, list.Length); }
public DotNetHeap <T> Enqueue(T thing) { if (_numElements + 1 == _queue.Length) { _queue = DotNetHeapUtils.TransferToBiggerArray(_queue); } _queue[++_numElements] = thing; int i = _numElements; while (i > 1 && i / 2 >= 1) // && ) { if ((_heapType == HEAP_TYPE.MAX && _queue[i].CompareTo(_queue[i / 2]) > 0) || (_heapType == HEAP_TYPE.MIN && _queue[i].CompareTo(_queue[i / 2]) < 0)) { _queue.Swap(i, i / 2); } i /= 2; } return(this); }