-
Notifications
You must be signed in to change notification settings - Fork 183
Expand file tree
/
Copy pathStream_02_Test.java
More file actions
93 lines (64 loc) · 2.25 KB
/
Stream_02_Test.java
File metadata and controls
93 lines (64 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package java17.ex02;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.hasSize;
import static org.junit.Assert.assertThat;
import java.util.List;
import java.util.OptionalDouble;
import java.util.stream.Collectors;
import org.junit.Test;
import java17.data.Data;
import java17.data.domain.Customer;
import java17.data.domain.Order;
/**
* Exercice 02 - Transformation
*/
public class Stream_02_Test {
@Test
public void test_map() throws Exception {
List<Order> orders = new Data().getOrders();
// TODO Trouver la liste des clients associés aux commandes
List<Customer> result = orders.stream().map(o->o.getCustomer()).toList();
assertThat(result, hasSize(8));
}
@Test
public void test_map_count() throws Exception {
List<Order> orders = new Data().getOrders();
// TODO Compter le nombre de clients associés aux commandes
long result = orders.stream().map(o->o.getCustomer()).count();
assertThat(result, is(8L));
}
@Test
public void test_map_distinct() throws Exception {
List<Order> orders = new Data().getOrders();
// TODO Trouver la liste des différents clients associés aux commandes (sans doublon)
List<Customer> result = orders.stream().map(o->o.getCustomer()).distinct().toList();
assertThat(result, hasSize(2));
}
@Test
public void test_map_distinct_count() throws Exception {
List<Order> orders = new Data().getOrders();
// TODO Compter le nombre des différents clients associés aux commandes
long result = orders.stream().map(o->o.getCustomer()).distinct().count();
assertThat(result, is(2L));
}
@Test
public void test_mapToDouble_sum() throws Exception {
List<Order> orders = new Data().getOrders();
/*
* TODO Calculer le chiffre d'affaires total de la pizzeria (somme des prix des
* commandes)
*/
double result = orders.stream().mapToDouble(o->o.getPrice()).sum();
assertThat(result, is(10900.0));
}
@Test
public void test_mapToDouble_avg() throws Exception {
List<Order> orders = new Data().getOrders();
/*
* TODO Calculer le prix moyen des commandes de la pizzeria
*/
OptionalDouble result = orders.stream().mapToDouble(o->o.getPrice()).average();
assertThat(result.isPresent(), is(true));
assertThat(result.getAsDouble(), is(1362.5));
}
}