2
2
3
3
import org .junit .jupiter .api .MethodOrderer ;
4
4
import org .junit .jupiter .api .Order ;
5
+ import org .junit .jupiter .api .Test ;
5
6
import org .junit .jupiter .api .TestMethodOrder ;
6
7
import org .junit .jupiter .params .ParameterizedTest ;
7
8
import org .junit .jupiter .params .provider .Arguments ;
10
11
11
12
import java .util .ArrayList ;
12
13
import java .util .List ;
14
+ import java .util .Map ;
13
15
import java .util .stream .Stream ;
14
16
17
+ import static java .util .stream .Collectors .toList ;
15
18
import static org .assertj .core .api .Assertions .assertThat ;
16
19
import static org .junit .jupiter .params .provider .Arguments .arguments ;
17
20
18
21
@ TestMethodOrder (MethodOrderer .OrderAnnotation .class )
19
22
class PrimeNumbersTest {
20
23
21
24
@ Order (1 )
25
+ @ Test
26
+ void stream () {
27
+ var primeNumbersStream = PrimeNumbers .stream ();
28
+
29
+ var primeList = primeNumbersStream
30
+ .limit (5 )
31
+ .boxed ()
32
+ .collect (toList ());
33
+
34
+ assertThat (primeList ).isEqualTo (List .of (2 , 3 , 5 , 7 , 11 ));
35
+ }
36
+
37
+ @ Order (2 )
38
+ @ Test
39
+ void streamN () {
40
+ var primeNumbersStream = PrimeNumbers .stream (8 );
41
+
42
+ var primeList = primeNumbersStream
43
+ .boxed ()
44
+ .collect (toList ());
45
+
46
+ assertThat (primeList ).isEqualTo (List .of (2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 ));
47
+ }
48
+
49
+ @ Order (3 )
22
50
@ ParameterizedTest
23
51
@ CsvSource ({"0, 0" , "1, 2" , "2, 5" , "3, 10" , "4, 17" , "5, 28" , "10, 129" , "20, 639" })
24
52
void sum (int n , int sumOfPrimes ) {
@@ -27,16 +55,16 @@ void sum(int n, int sumOfPrimes) {
27
55
assertThat (result ).isEqualTo (sumOfPrimes );
28
56
}
29
57
30
- @ Order (2 )
58
+ @ Order (4 )
31
59
@ ParameterizedTest
32
60
@ MethodSource ("collectArgs" )
33
61
void collect (int n , List <Integer > primeNumbersList ) {
34
- List <Integer > result = PrimeNumbers .collect (n );
62
+ List <Integer > result = PrimeNumbers .list (n );
35
63
36
64
assertThat (result ).isEqualTo (primeNumbersList );
37
65
}
38
66
39
- @ Order (3 )
67
+ @ Order (5 )
40
68
@ ParameterizedTest
41
69
@ CsvSource ({"0, 2" , "1, 3" , "2, 5" , "3, 7" , "10, 31" , "20, 73" , "279, 1811" })
42
70
void processByIndexFindsCorrectPrimeNumber (int index , int primeNumber ) {
@@ -57,4 +85,34 @@ static Stream<Arguments> collectArgs() {
57
85
arguments (10 , List .of (2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 ))
58
86
);
59
87
}
88
+
89
+ @ Order (6 )
90
+ @ ParameterizedTest
91
+ @ MethodSource ("groupByAmountOfDigitsArgs" )
92
+ void groupByAmountOfDigits (int count , Map <Integer , List <Integer >> digitsToPrimesMap ) {
93
+ var result = PrimeNumbers .groupByAmountOfDigits (count );
94
+
95
+ assertThat (result ).isEqualTo (digitsToPrimesMap );
96
+ }
97
+
98
+ static Stream <Arguments > groupByAmountOfDigitsArgs () {
99
+ return Stream .of (
100
+ arguments (1 , Map .of (1 , List .of (2 ))),
101
+ arguments (10 , Map .of (
102
+ 1 , List .of (2 , 3 , 5 , 7 ),
103
+ 2 , List .of (11 , 13 , 17 , 19 , 23 , 29 )
104
+ )),
105
+ arguments (20 , Map .of (
106
+ 1 , List .of (2 , 3 , 5 , 7 ),
107
+ 2 , List .of (11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 )
108
+ )),
109
+ arguments (30 , Map .of (
110
+ 1 , List .of (2 , 3 , 5 , 7 ),
111
+ 2 , List .of (11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 , 73 , 79 , 83 , 89 , 97 ),
112
+ 3 , List .of (101 , 103 , 107 , 109 , 113 )
113
+ )
114
+ )
115
+
116
+ );
117
+ }
60
118
}
0 commit comments