public void IncorrectInput_DuplicateNumbers(int[] value)
        {
            // Act
            FindMissingNumberResult result = NumberFinder.FindMissingNumber(value);

            // Assert
            Assert.IsType <FindMissingNumberDuplicateNumbersResult>(result);
        }
        public void IncorrectInput_MissingMultipleNumbers(int[] value)
        {
            // Act
            FindMissingNumberResult result = NumberFinder.FindMissingNumber(value);

            // Assert
            Assert.IsType <FindMissingNumberMultipleNumbersMissingResult>(result);
        }
        [InlineData(new int[] { 5, 2, 4, 14, 6, 13, 1, 9, 10, 12, 3, 7, 8 })] // Unordered
        public void CorrectInput_Expecting11(int[] value)
        {
            // Act
            FindMissingNumberResult result = NumberFinder.FindMissingNumber(value);

            // Assert
            Assert.IsType <FindMissingNumberSuccessResult>(result);
            Assert.Equal(11, (result as FindMissingNumberSuccessResult).MissingNumber);
        }
        public void IncorrectInput_NotMissingANumber()
        {
            // Arrange
            int[] arrayNoMissingNumber = new int[] { 1, 2, 3, 4, 5, 6 };

            // Act
            FindMissingNumberResult result = NumberFinder.FindMissingNumber(arrayNoMissingNumber);

            // Assert
            Assert.IsType <FindMissingNumberNotMissingANumberResult>(result);
        }
        public void IncorrectInput_EmptyArray()
        {
            // Arrange
            int[] arrayEmpty = new int[] { };

            // Act
            FindMissingNumberResult result = NumberFinder.FindMissingNumber(arrayEmpty);

            // Assert
            Assert.IsType <FindMissingNumberEmptyArrayResult>(result);
        }