public void AddRange_adds_all_items() { int[] expectedValues = Enumerable.Range(0, 10).ToArray(); int expectedItem0 = s_fixture.Create <int>(); int expectedItem1 = s_fixture.Create <int>(); int expectedItem2 = s_fixture.Create <int>(); int expectedItemAtTheEnd = s_fixture.Create <int>(); int expectedCount = expectedValues.Length + 4; using var sut = new ValueListPool <int>(20); sut.Add(expectedItem0); sut.Add(expectedItem1); sut.Add(expectedItem2); sut.AddRange(expectedValues); sut.Add(expectedItemAtTheEnd); Assert.Equal(expectedCount, sut.Count); Assert.Equal(expectedItem0, sut[0]); Assert.Equal(expectedItem1, sut[1]); Assert.Equal(expectedItem2, sut[2]); foreach (int expectedValue in expectedValues) { Assert.True(sut.Contains(expectedValue)); } Assert.Equal(expectedItemAtTheEnd, sut[13]); }
public override void Count_property_is_for_items_Added_count_not_capacity_of_buffer() { const int listCapacity = 10; const int expectedItemsCount = 3; using var sut = new ValueListPool <int>(listCapacity); sut.Add(1); sut.Add(2); sut.Add(3); Assert.Equal(expectedItemsCount, sut.Count); }
public override void Insert_at_the_end_add_new_item() { int expectedAt3 = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(4); sut.Add(s_fixture.Create <int>()); sut.Add(s_fixture.Create <int>()); sut.Add(s_fixture.Create <int>()); sut.Insert(3, expectedAt3); Assert.Equal(4, sut.Count); Assert.Equal(expectedAt3, sut[3]); }
public int ValueListPool() { int count = 0; using ValueListPool <int> list = N <= 1024 ? new ValueListPool <int>(stackalloc int[N], ValueListPool <int> .SourceType.UseAsInitialBuffer) : new ValueListPool <int>(N); for (int i = 0; i < N; i += 8) { list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); } foreach (int item in list) { count += item; } return(count); }
public int ValueListPool() { int count = 0; using ValueListPool <int> list = new ValueListPool <int>(0); for (int i = 0; i < N; i += 8) { list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); list.Add(i); } foreach (int item in list) { count += item; } return(count); }
public override void IndexOf_returns_index_of_item() { int expectedAt0 = s_fixture.Create <int>(); int expectedAt1 = s_fixture.Create <int>(); int expectedAt2 = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(3); sut.Add(expectedAt0); sut.Add(expectedAt1); sut.Add(expectedAt2); Assert.Equal(0, sut.IndexOf(expectedAt0)); Assert.Equal(1, sut.IndexOf(expectedAt1)); Assert.Equal(2, sut.IndexOf(expectedAt2)); }
public override void Set_at_existing_index_update_item() { const int expectedItemsCount = 3; int expectedItem = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(3); sut.Add(s_fixture.Create <int>()); sut.Add(s_fixture.Create <int>()); sut.Add(s_fixture.Create <int>()); sut[2] = expectedItem; Assert.Equal(expectedItemsCount, sut.Count); Assert.Equal(expectedItem, sut[2]); }
public override void Create_list_and_add_values() { int expectedAt0 = s_fixture.Create <int>(); int expectedAt1 = s_fixture.Create <int>(); int expectedAt2 = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(3); sut.Add(expectedAt0); sut.Add(expectedAt1); sut.Add(expectedAt2); Assert.Equal(expectedAt0, sut[0]); Assert.Equal(expectedAt1, sut[1]); Assert.Equal(expectedAt2, sut[2]); }
public override void RemoveAt_when_item_exists_remove_item_and_decrease_itemsCount() { const int expectedCountAfterRemove = 2; int expectedAt1 = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(3); sut.Add(s_fixture.Create <int>()); sut.Add(expectedAt1); sut.Add(s_fixture.Create <int>()); sut.RemoveAt(1); Assert.False(sut.Contains(expectedAt1)); Assert.Equal(expectedCountAfterRemove, sut.Count); }
public override void Contains_return_true_when_item_exists() { int expectedAt0 = s_fixture.Create <int>(); int expectedAt1 = s_fixture.Create <int>(); int expectedAt2 = s_fixture.Create <int>(); int unexpected = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(3); sut.Add(expectedAt0); sut.Add(expectedAt1); sut.Add(expectedAt2); Assert.True(sut.Contains(expectedAt0)); Assert.True(sut.Contains(expectedAt1)); Assert.True(sut.Contains(expectedAt2)); Assert.False(sut.Contains(unexpected)); }
public void Create_ValueListPool_from_small_InitialBuffer_and_when_it_grows_it_use_minimum_capacity() { Span <int> emptyBuffer = stackalloc int[1]; int expectedItemAt0 = s_fixture.Create <int>(); int expectedItemAt1 = s_fixture.Create <int>(); int expectedItemAt2 = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(emptyBuffer, ValueListPool <int> .SourceType.UseAsInitialBuffer); sut.Add(expectedItemAt0); sut.Add(expectedItemAt1); sut.Add(expectedItemAt2); Assert.Equal(16, sut.Capacity); Assert.Equal(3, sut.Count); Assert.Equal(expectedItemAt0, sut[0]); Assert.Equal(expectedItemAt1, sut[1]); Assert.Equal(expectedItemAt2, sut[2]); }
public override void Create_list_and_add_values_after_clear() { int expectedAt0 = s_fixture.Create <int>(); int expectedAt1 = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(3); sut.Add(s_fixture.Create <int>()); sut.Add(s_fixture.Create <int>()); sut.Add(s_fixture.Create <int>()); sut.Clear(); Assert.Equal(0, sut.Count); sut.Add(expectedAt0); sut.Add(expectedAt1); Assert.Equal(2, sut.Count); Assert.Equal(expectedAt0, sut[0]); Assert.Equal(expectedAt1, sut[1]); }
public override void CopyTo_copy_all_elements_to_target_array() { int expectedAt0 = s_fixture.Create <int>(); int expectedAt1 = s_fixture.Create <int>(); int expectedAt2 = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(3); sut.Add(expectedAt0); sut.Add(expectedAt1); sut.Add(expectedAt2); int[] array = new int[3]; sut.CopyTo(array); Assert.Equal(sut.Count, array.Length); Assert.Contains(expectedAt0, array); Assert.Contains(expectedAt1, array); Assert.Contains(expectedAt2, array); }
public override void Remove_item_that_doesnt_exists_return_false() { string item = s_fixture.Create <string>(); using var sut = new ValueListPool <string>(10); sut.Add(s_fixture.Create <string>()); Assert.False(sut.Remove(item)); Assert.Equal(1, sut.Count); }
public void Create_ValueListPool_from_empty_InitialBuffer_and_add_new_value_it_grows_using_minimum_capacity() { Span <int> emptyBuffer = stackalloc int[0]; int expectedItem = s_fixture.Create <int>(); using var sut = new ValueListPool <int>(emptyBuffer, ValueListPool <int> .SourceType.UseAsInitialBuffer); sut.Add(expectedItem); Assert.Equal(16, sut.Capacity); Assert.Equal(1, sut.Count); Assert.Equal(expectedItem, sut[0]); }
public override void Add_items_when_capacity_is_full_then_buffer_autogrow() { using var sut = new ValueListPool <int>(128); var expectedItems = s_fixture.CreateMany <int>(sut.Capacity * 2).ToList(); foreach (int expectedItem in expectedItems) { sut.Add(expectedItem); } Assert.Equal(expectedItems.Count, sut.Count); foreach (int expectedItem in expectedItems) { Assert.True(sut.Contains(expectedItem)); } }
public override void Get_item_with_index_above_itemsCount_throws_IndexOutOfRangeException() { bool indexOutOfRangeExceptionThrown = false; const int index = 2; using var sut = new ValueListPool <int>(10); sut.Add(s_fixture.Create <int>()); try { _ = sut[index]; } catch (IndexOutOfRangeException) { indexOutOfRangeExceptionThrown = true; } Assert.True(indexOutOfRangeExceptionThrown); }
public override void Insert_item_with_index_above_itemsCount_throws_IndexOutOfRangeException() { bool argumentOutOfRangeException = false; const int index = 2; using var sut = new ValueListPool <int>(10); sut.Add(s_fixture.Create <int>()); int item = s_fixture.Create <int>(); try { sut.Insert(index, item); } catch (ArgumentOutOfRangeException) { argumentOutOfRangeException = true; } Assert.True(argumentOutOfRangeException); }