示例#1
0
        public void Test_Remove()
        {
            const int NumOfTestCases = 9;
            var       testCases      = new int[NumOfTestCases][]
            {
                null,
                new int[] { },
                new int[] { 3, 2, 2, 3 },
                new int[] { 0, 1, 2, 2, 3, 0, 4, 2 },
                new int[] { 3, 3 },
                new int[] { 3, 3, 3, 3, 3 },
                new int[] { 0, 1, 2, 2, 3, 0, 2, 2 },
                new int[] { 4, 5 },
                new int[] { 5 },
            };

            var valuesToRemove = new int[NumOfTestCases] {
                0, 0, 3, 2, 3, 3, 2, 5, 4
            };
            var expectedLength = new int[NumOfTestCases] {
                0, 0, 2, 5, 0, 0, 4, 1, 1
            };
            var expectedNums = new int[NumOfTestCases][]
            {
                null,
                new int[] { },
                new int[] { 2, 2, 3, 3 },
                new int[] { 0, 1, 3, 0, 4, 2, 2, 2 },
                new int[] { },
                new int[] { },
                new int[] { 0, 1, 3, 0 },
                new int[] { 4 },
                new int[] { 5 },
            };

            var actual = _objUnderTest.Remove(testCases[0], valuesToRemove[0]);

            Assert.Null(testCases[0]);
            Assert.Equal(expectedLength[0], actual);

            var actual2 = _objUnderTest.Remove(testCases[1], valuesToRemove[1]);

            Assert.NotNull(testCases[1]);
            Assert.Equal(expectedLength[1], actual2);

            for (int i = 2; i < NumOfTestCases; i++)
            {
                var actual3 = _objUnderTest.Remove(testCases[i], valuesToRemove[i]);
                Assert.NotNull(testCases[i]);
                Assert.Equal(expectedLength[i], actual3);

                for (int j = 0; j < actual3; j++)
                {
                    Assert.Contains(testCases[i][j], expectedNums[i]);
                }
            }
        }