Skip to content

Commit f7bd768

Browse files
authored
Update Combinations.java and add test case (TheAlgorithms#3184)
1 parent 826b612 commit f7bd768

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

src/main/java/com/thealgorithms/maths/Combinations.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,6 @@
55
*/
66
public class Combinations {
77

8-
public static void main(String[] args) {
9-
assert combinations(1, 1) == 1;
10-
assert combinations(10, 5) == 252;
11-
assert combinations(6, 3) == 20;
12-
assert combinations(20, 5) == 15504;
13-
14-
// Since, 200 is a big number its factorial will go beyond limits of long even when 200C5 can be saved in a long
15-
// variable. So below will fail
16-
// assert combinations(200, 5) == 2535650040l;
17-
assert combinationsOptimized(100, 0) == 1;
18-
assert combinationsOptimized(1, 1) == 1;
19-
assert combinationsOptimized(10, 5) == 252;
20-
assert combinationsOptimized(6, 3) == 20;
21-
assert combinationsOptimized(20, 5) == 15504;
22-
assert combinationsOptimized(200, 5) == 2535650040l;
23-
}
24-
258
/**
269
* Calculate of factorial
2710
*
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.thealgorithms.maths;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.assertEquals;
6+
7+
public class CombinationsTest {
8+
9+
@Test
10+
void testCombination() {
11+
12+
assertEquals(1, Combinations.combinations(1, 1));
13+
assertEquals(252, Combinations.combinations(10, 5));
14+
assertEquals(20, Combinations.combinations(6, 3));
15+
assertEquals(15504, Combinations.combinations(20, 5));
16+
17+
}
18+
19+
@Test
20+
void testCombinationOptimised() {
21+
22+
assertEquals(100, Combinations.combinationsOptimized(100, 1));
23+
assertEquals(1, Combinations.combinationsOptimized(1, 1));
24+
assertEquals(252, Combinations.combinationsOptimized(10, 5));
25+
assertEquals(20, Combinations.combinationsOptimized(6, 3));
26+
assertEquals(15504, Combinations.combinationsOptimized(20, 5));
27+
assertEquals(2535650040L, Combinations.combinationsOptimized(200, 5));
28+
29+
}
30+
}

0 commit comments

Comments
 (0)