Esempio n. 1
0
        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);
        }