1
1
package com .thealgorithms .maths .prime ;
2
2
3
- import static org .junit .jupiter .api .Assertions .assertEquals ;
3
+ import static org .junit .jupiter .api .Assertions .assertFalse ;
4
4
import static org .junit .jupiter .api .Assertions .assertThrows ;
5
+ import static org .junit .jupiter .api .Assertions .assertTrue ;
5
6
import static org .mockito .ArgumentMatchers .any ;
6
7
7
8
import com .thealgorithms .maths .Prime .EulerPseudoprime ;
@@ -14,55 +15,30 @@ class EulerPseudoprimeTest {
14
15
15
16
@ Test
16
17
void testPrimeNumbers () {
17
- assertEquals ( true , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (7 ), 5 ));
18
- assertEquals ( true , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (13 ), 5 ));
19
- assertEquals ( true , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (101 ), 5 ));
18
+ assertTrue ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (7 ), 5 ));
19
+ assertTrue ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (13 ), 5 ));
20
+ assertTrue ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (101 ), 5 ));
20
21
}
21
22
22
23
@ Test
23
24
void testCompositeNumbers () {
24
- assertEquals ( false , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (9 ), 5 ));
25
- assertEquals ( false , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (21 ), 5 ));
26
- assertEquals ( false , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (221 ), 5 ));
25
+ assertFalse ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (9 ), 5 ));
26
+ assertFalse ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (21 ), 5 ));
27
+ assertFalse ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (221 ), 5 ));
27
28
}
28
29
29
30
@ Test
30
31
void testEvenNumbers () {
31
- assertEquals ( false , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (4 ), 5 ));
32
- assertEquals ( false , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (100 ), 5 ));
32
+ assertFalse ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (4 ), 5 ));
33
+ assertFalse ( EulerPseudoprime .isProbablePrime (BigInteger .valueOf (100 ), 5 ));
33
34
}
34
35
35
36
@ Test
36
37
void testEdgeCases () {
37
- assertEquals (false , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (0 ), 5 ));
38
- assertEquals (false , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (1 ), 5 ));
39
- assertEquals (true , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (2 ), 5 ));
40
- assertEquals (true , EulerPseudoprime .isProbablePrime (BigInteger .valueOf (3 ), 5 ));
41
- }
42
-
43
- @ Test
44
- void testSingleTrialConsistency () {
45
- BigInteger n = BigInteger .valueOf (97 );
46
- boolean result1 = EulerPseudoprime .isProbablePrime (n , 1 );
47
- boolean result2 = EulerPseudoprime .isProbablePrime (n , 1 );
48
- assertEquals (result1 , result2 , "Results should be deterministic with constant seed" );
49
- }
50
-
51
- @ Test
52
- void testJacobiSymbolBasicCases () throws Exception {
53
- var method = EulerPseudoprime .class .getDeclaredMethod ("jacobiSymbol" , BigInteger .class , BigInteger .class );
54
-
55
- // (a/n) = (2/3) = -1
56
- assertEquals (-1 , (int ) method .invoke (null , BigInteger .valueOf (2 ), BigInteger .valueOf (3 )));
57
-
58
- // (a/n) = (1/5) = 1
59
- assertEquals (1 , (int ) method .invoke (null , BigInteger .ONE , BigInteger .valueOf (5 )));
60
-
61
- // (a/n) = (2/9) = 1
62
- assertEquals (1 , (int ) method .invoke (null , BigInteger .valueOf (2 ), BigInteger .valueOf (9 )));
63
-
64
- // (a/n) = (3/9) = 0 since gcd(3,9)>1
65
- assertEquals (0 , (int ) method .invoke (null , BigInteger .valueOf (3 ), BigInteger .valueOf (9 )));
38
+ assertFalse (EulerPseudoprime .isProbablePrime (BigInteger .valueOf (0 ), 5 ));
39
+ assertFalse (EulerPseudoprime .isProbablePrime (BigInteger .valueOf (1 ), 5 ));
40
+ assertTrue (EulerPseudoprime .isProbablePrime (BigInteger .valueOf (2 ), 5 ));
41
+ assertTrue (EulerPseudoprime .isProbablePrime (BigInteger .valueOf (3 ), 5 ));
66
42
}
67
43
68
44
@ Test
@@ -74,7 +50,7 @@ void testIsProbablePrimeWhenJacobiSymbolIsZero() {
74
50
75
51
boolean result = EulerPseudoprime .isProbablePrime (BigInteger .valueOf (15 ), 1 );
76
52
77
- assertEquals ( false , result );
53
+ assertFalse ( result );
78
54
}
79
55
}
80
56
0 commit comments