@@ -29,13 +29,13 @@ public class AccountAnalyticsTest {
29
29
public void setUp () {
30
30
accounts = Arrays .asList (
31
31
new Account (
1L ,
"Justin" ,
"Butler" ,
"[email protected] " ,
32
- LocalDate .parse ("2003-04-17" ), Sex .MALE , LocalDateTime . now ( ), BigDecimal .valueOf (172966 )),
33
- new Account (
1L ,
"Olivia" ,
"Cardenas" ,
"[email protected] " ,
34
- LocalDate .parse ("1930-01-19" ), Sex .FEMALE , LocalDateTime . now ( ), BigDecimal .valueOf (38029 )),
35
- new Account (
1L ,
"Nolan" ,
"Donovan" ,
"[email protected] " ,
36
- LocalDate .parse ("1925-04-19" ), Sex .MALE , LocalDateTime . now ( ), BigDecimal .valueOf (13889 )),
37
- new Account (
1L ,
"Lucas" ,
"Lynn" ,
"[email protected] " ,
38
- LocalDate .parse ("1987-05-25" ), Sex .MALE , LocalDateTime . now ( ), BigDecimal .valueOf (16980 ))
32
+ LocalDate .parse ("2003-04-17" ), Sex .MALE , LocalDate . parse ( "2016-06-13" ), BigDecimal .valueOf (172966 )),
33
+ new Account (
2L ,
"Olivia" ,
"Cardenas" ,
"[email protected] " ,
34
+ LocalDate .parse ("1930-01-19" ), Sex .FEMALE , LocalDate . parse ( "2014-06-21" ), BigDecimal .valueOf (38029 )),
35
+ new Account (
3L ,
"Nolan" ,
"Donovan" ,
"[email protected] " ,
36
+ LocalDate .parse ("1925-04-19" ), Sex .MALE , LocalDate . parse ( "2011-03-10" ), BigDecimal .valueOf (13889 )),
37
+ new Account (
4L ,
"Lucas" ,
"Lynn" ,
"[email protected] " ,
38
+ LocalDate .parse ("1987-05-25" ), Sex .MALE , LocalDate . parse ( "2009-03-05" ), BigDecimal .valueOf (16980 ))
39
39
);
40
40
analytics = AccountAnalytics .of (accounts );
41
41
}
@@ -65,7 +65,7 @@ private Map<Boolean, List<Account>> getExpectedMaleMap() {
65
65
66
66
@ Test
67
67
public void testFindAccountsByBirthdayMonth () {
68
- List <Account > expectedList = getExpectedList ();
68
+ List <Account > expectedList = getExpectedList ();
69
69
List <Account > aprilAccounts = analytics .findAccountsByBirthdayMonth (Month .APRIL );
70
70
71
71
assertEquals (expectedList , aprilAccounts );
@@ -91,5 +91,88 @@ private Map<String, List<Account>> getExpectedEmailMap() {
91
91
92
92
return expectedEmailMap ;
93
93
}
94
+
95
+ @ Test
96
+ public void testGetNumOfLettersInFirstAndLastNames () {
97
+ int numOfLettersInFirstAndLastNames = analytics .getNumOfLettersInFirstAndLastNames ();
98
+
99
+ assertEquals (47 , numOfLettersInFirstAndLastNames );
100
+ }
101
+
102
+ @ Test
103
+ public void testCalculateTotalBalance () {
104
+ BigDecimal totalBalance = analytics .calculateTotalBalance ();
105
+
106
+ assertEquals (BigDecimal .valueOf (241864 ), totalBalance );
107
+ }
108
+
109
+
110
+ @ Test
111
+ public void testSortByFirstAndLastNames () {
112
+ List <Account > sortedList = analytics .sortByFirstAndLastNames ();
113
+
114
+ assertEquals (1L , sortedList .get (0 ).getId ().longValue ());
115
+ assertEquals (4L , sortedList .get (1 ).getId ().longValue ());
116
+ assertEquals (3L , sortedList .get (2 ).getId ().longValue ());
117
+ assertEquals (2L , sortedList .get (3 ).getId ().longValue ());
118
+
119
+ }
120
+
121
+ @ Test
122
+ public void testGroupFirstNamesByLastNames () {
123
+ Map <String , Set <String >> lastToFirstNamesMap = analytics .groupFirstNamesByLastNames ();
124
+
125
+ assertEquals (4 , lastToFirstNamesMap .size ());
126
+ assertEquals (Set .of ("Justin" ), lastToFirstNamesMap .get ("Butler" ));
127
+ assertEquals (Set .of ("Olivia" ), lastToFirstNamesMap .get ("Cardenas" ));
128
+ assertEquals (Set .of ("Nolan" ), lastToFirstNamesMap .get ("Donovan" ));
129
+ assertEquals (Set .of ("Lucas" ), lastToFirstNamesMap .get ("Lynn" ));
130
+ }
131
+
132
+ @ Test
133
+ public void testGroupCommaSeparatedFirstNamesByBirthdayMonth () {
134
+ Map <Month , String > birthdayMonthToFirstNamesMap = analytics .groupCommaSeparatedFirstNamesByBirthdayMonth ();
135
+
136
+ assertEquals (3 , birthdayMonthToFirstNamesMap .size ());
137
+ assertEquals ("Olivia" , birthdayMonthToFirstNamesMap .get (Month .JANUARY ));
138
+ assertEquals ("Justin, Nolan" , birthdayMonthToFirstNamesMap .get (Month .APRIL ));
139
+ assertEquals ("Lucas" , birthdayMonthToFirstNamesMap .get (Month .MAY ));
140
+ }
141
+
142
+ @ Test
143
+ public void testGroupTotalBalanceByCreationMonth () {
144
+ Map <Month , BigDecimal > totalBalanceByAccountCreationMonth = analytics .groupTotalBalanceByCreationMonth ();
145
+
146
+ assertEquals (2 , totalBalanceByAccountCreationMonth .size ());
147
+ assertEquals (BigDecimal .valueOf (210995 ), totalBalanceByAccountCreationMonth .get (Month .JUNE ));
148
+ assertEquals (BigDecimal .valueOf (30869 ), totalBalanceByAccountCreationMonth .get (Month .MARCH ));
149
+ }
150
+
151
+ @ Test
152
+ public void testGetCharacterFrequencyInFirstNames () {
153
+ Map <Character , Long > characterFrequencyInFirstAndLastNames = analytics .getCharacterFrequencyInFirstNames ();
154
+
155
+ assertEquals (3 , characterFrequencyInFirstAndLastNames .get ('a' ).longValue ());
156
+ assertEquals (1 , characterFrequencyInFirstAndLastNames .get ('c' ).longValue ());
157
+ assertEquals (3 , characterFrequencyInFirstAndLastNames .get ('i' ).longValue ());
158
+ assertEquals (1 , characterFrequencyInFirstAndLastNames .get ('J' ).longValue ());
159
+ assertEquals (1 , characterFrequencyInFirstAndLastNames .get ('L' ).longValue ());
160
+ assertEquals (2 , characterFrequencyInFirstAndLastNames .get ('l' ).longValue ());
161
+ assertEquals (2 , characterFrequencyInFirstAndLastNames .get ('u' ).longValue ());
162
+ }
163
+
164
+ @ Test
165
+ public void testGetCharacterFrequencyIgnoreCaseInFirstAndLastNames () {
166
+ Map <Character , Long > characterFrequencyInFirstAndLastNames = analytics .getCharacterFrequencyIgnoreCaseInFirstAndLastNames ();
167
+
168
+ assertEquals (6 , characterFrequencyInFirstAndLastNames .get ('a' ).longValue ());
169
+ assertEquals (1 , characterFrequencyInFirstAndLastNames .get ('b' ).longValue ());
170
+ assertEquals (2 , characterFrequencyInFirstAndLastNames .get ('c' ).longValue ());
171
+ assertEquals (5 , characterFrequencyInFirstAndLastNames .get ('l' ).longValue ());
172
+ assertEquals (8 , characterFrequencyInFirstAndLastNames .get ('n' ).longValue ());
173
+ assertEquals (3 , characterFrequencyInFirstAndLastNames .get ('u' ).longValue ());
174
+ assertEquals (1 , characterFrequencyInFirstAndLastNames .get ('y' ).longValue ());
175
+ }
94
176
}
95
177
178
+
0 commit comments