public void Throw_WhenDenominationIsInvalid()
        {
            // Expectation

            // Arrange
            int[] denominatorArray = new int[] { 5, 10, 10 };
            int   changeAmount     = 4;

            // Act
            var result = CoinChanger.Compute(changeAmount, denominatorArray);

            // Assert
        }
        public void ReturnExactChange_WhenDenominationNotSorted()
        {
            // Expectation
            int[] expected = new int[] { 3, 0, 1 };

            // Arrange
            int[] denominatorArray = new int[] { 5, 1, 2 };
            int   changeAmount     = 17;

            // Act
            var result = CoinChanger.Compute(changeAmount, denominatorArray);

            // Assert
            CollectionAssert.AreEquivalent(expected, result);
        }
        public void ReturnExactChange_WhenUsingTwoCoins()
        {
            // Expectation
            int[] expected = new int[] { 0, 1 };

            // Arrange
            int[] denominatorArray = new int[] { 1, 5 };
            int   changeAmount     = 5;

            // Act
            var result = CoinChanger.Compute(changeAmount, denominatorArray);

            // Assert
            CollectionAssert.AreEquivalent(expected, result);
        }