@@ -29,13 +29,13 @@ public class AccountAnalyticsTest {
2929 public void setUp () {
3030 accounts = Arrays .asList (
3131 new Account (1L , "Justin" , "Butler" , "justin.butler@gmail.com" ,
32- LocalDate .parse ("2003-04-17" ), Sex .MALE , LocalDateTime . now ( ), BigDecimal .valueOf (172966 )),
33- new Account (1L , "Olivia" , "Cardenas" , "cardenas@mail.com" ,
34- LocalDate .parse ("1930-01-19" ), Sex .FEMALE , LocalDateTime . now ( ), BigDecimal .valueOf (38029 )),
35- new Account (1L , "Nolan" , "Donovan" , "nolandonovan@gmail.com" ,
36- LocalDate .parse ("1925-04-19" ), Sex .MALE , LocalDateTime . now ( ), BigDecimal .valueOf (13889 )),
37- new Account (1L , "Lucas" , "Lynn" , "lucas.lynn@yahoo.com" ,
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" , "cardenas@mail.com" ,
34+ LocalDate .parse ("1930-01-19" ), Sex .FEMALE , LocalDate . parse ( "2014-06-21" ), BigDecimal .valueOf (38029 )),
35+ new Account (3L , "Nolan" , "Donovan" , "nolandonovan@gmail.com" ,
36+ LocalDate .parse ("1925-04-19" ), Sex .MALE , LocalDate . parse ( "2011-03-10" ), BigDecimal .valueOf (13889 )),
37+ new Account (4L , "Lucas" , "Lynn" , "lucas.lynn@yahoo.com" ,
38+ LocalDate .parse ("1987-05-25" ), Sex .MALE , LocalDate . parse ( "2009-03-05" ), BigDecimal .valueOf (16980 ))
3939 );
4040 analytics = AccountAnalytics .of (accounts );
4141 }
@@ -65,7 +65,7 @@ private Map<Boolean, List<Account>> getExpectedMaleMap() {
6565
6666 @ Test
6767 public void testFindAccountsByBirthdayMonth () {
68- List <Account > expectedList = getExpectedList ();
68+ List <Account > expectedList = getExpectedList ();
6969 List <Account > aprilAccounts = analytics .findAccountsByBirthdayMonth (Month .APRIL );
7070
7171 assertEquals (expectedList , aprilAccounts );
@@ -91,5 +91,88 @@ private Map<String, List<Account>> getExpectedEmailMap() {
9191
9292 return expectedEmailMap ;
9393 }
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+ }
94176}
95177
178+
0 commit comments