Files
Java/src/test/java/com/thealgorithms/dynamicprogramming/CoinChangeTest.java

81 lines
1.7 KiB
Java

package com.thealgorithms.dynamicprogramming;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
public class CoinChangeTest {
@Test
void testChangeBasic() {
int amount = 12;
int[] coins = {2, 4, 5};
assertEquals(5, CoinChange.change(coins, amount));
}
@Test
void testChangeNoCoins() {
int amount = 12;
int[] coins = {};
assertEquals(0, CoinChange.change(coins, amount));
}
@Test
void testChangeNoAmount() {
int amount = 0;
int[] coins = {2, 4, 5};
assertEquals(1, CoinChange.change(coins, amount));
}
@Test
void testChangeImpossibleAmount() {
int amount = 3;
int[] coins = {2, 4, 5};
assertEquals(0, CoinChange.change(coins, amount));
}
@Test
void testMinimumCoinsBasic() {
int amount = 12;
int[] coins = {2, 4, 5};
assertEquals(3, CoinChange.minimumCoins(coins, amount));
}
@Test
void testMinimumCoinsNoCoins() {
int amount = 12;
int[] coins = {};
assertEquals(Integer.MAX_VALUE, CoinChange.minimumCoins(coins, amount));
}
@Test
void testMinimumCoinsNoAmount() {
int amount = 0;
int[] coins = {2, 4, 5};
assertEquals(0, CoinChange.minimumCoins(coins, amount));
}
@Test
void testMinimumCoinsImpossibleAmount() {
int amount = 3;
int[] coins = {2, 4, 5};
assertEquals(Integer.MAX_VALUE, CoinChange.minimumCoins(coins, amount));
}
@Test
void testMinimumCoinsExactAmount() {
int amount = 10;
int[] coins = {1, 5, 10};
assertEquals(1, CoinChange.minimumCoins(coins, amount));
}
}