mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
81 lines
1.7 KiB
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));
|
|
}
|
|
}
|