Ejemplo n.º 1
0
        public void Test_Memory2DT_Equals()
        {
            int[,] array =
            {
                { 1, 2, 3 },
                { 4, 5, 6 }
            };

            // Here we want to verify that the Memory2D<T>.Equals method works correctly. This is true
            // when the wrapped instance is the same, and the various internal offsets and sizes match.
            Memory2D <int> memory2d = new Memory2D <int>(array);

            Assert.IsFalse(memory2d.Equals(null));
            Assert.IsFalse(memory2d.Equals(new Memory2D <int>(array, 0, 1, 2, 2)));
            Assert.IsTrue(memory2d.Equals(new Memory2D <int>(array)));
            Assert.IsTrue(memory2d.Equals(memory2d));

            // This should work also when casting to a ReadOnlyMemory2D<T> instance
            ReadOnlyMemory2D <int> readOnlyMemory2d = memory2d;

            Assert.IsTrue(memory2d.Equals(readOnlyMemory2d));
            Assert.IsFalse(memory2d.Equals(readOnlyMemory2d.Slice(0, 1, 2, 2)));
        }