Add tests, remove main & print methods in CoinChange.java (#5642)

This commit is contained in:
Hardik Pawar
2024-10-10 00:34:04 +05:30
committed by GitHub
parent 2d34bc150f
commit 6ddb26f48d
3 changed files with 82 additions and 21 deletions

View File

@ -0,0 +1,80 @@
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));
}
}