public void NumberListColumn_Basics() { NumberListColumn <int> column = new NumberListColumn <int>(); column[0].SetTo(new ArraySlice <int>(new int[] { 0, 1, 2 })); TreeDiagnostics diagnostics = TreeSerializer.Diagnostics(column, TreeFormat.Binary); int tinyColumnLength = (int)diagnostics.Length; Column.Basics(() => new NumberListColumn <int>(), NumberList <int> .Empty, column[0], (index) => { column[index].SetTo(new ArraySlice <int>(new int[] { index, index + 1, index + 2 })); return(column[index]); }); // NumberList Equals, GetHashCode int[] asArray = new int[] { 0, 1, 3 }; column[1].SetTo(new ArraySlice <int>(asArray)); Assert.False(column[0] == column[1]); Assert.True(column[0] != column[1]); Assert.NotEqual(column[0].GetHashCode(), column[1].GetHashCode()); // Compare to array Assert.True(column[1].Equals(asArray)); // ForEach column.Clear(); column[0].SetTo(new ArraySlice <int>(new int[] { 0, 1, 2 })); int sum = 0; column.ForEach((slice) => { int[] array = slice.Array; int end = slice.Index + slice.Count; for (int i = slice.Index; i < end; ++i) { sum += array[i]; } }); Assert.Equal(3, sum); }