Skip to content

Commit c29ebfe

Browse files
committed
Adjust FilterUsers solution
1 parent bd55393 commit c29ebfe

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/main/java/by/andd3dfx/collections/FilterUsers.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,11 @@ public class FilterUsers {
2626

2727
public static List<String> apply(List<User> users) {
2828
return users.stream()
29-
.filter(user -> !user.lastLogin
30-
.plusDays(3)
31-
.isBefore(LocalDate.now()))
29+
.filter(user -> user.lastLogin.isAfter(LocalDate.now().minusDays(3)))
3230
.map(User::getName)
3331
.distinct()
34-
.collect(Collectors.groupingBy(String::length)).entrySet().stream()
32+
.collect(Collectors.groupingBy(String::length))
33+
.entrySet().stream()
3534
.max(Comparator.comparingInt(Map.Entry::getKey))
3635
.map(Map.Entry::getValue)
3736
.orElseGet(List::of);

src/test/java/by/andd3dfx/collections/FilterUsersTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,18 @@ public class FilterUsersTest {
1313
@Test
1414
public void apply() {
1515
List<User> users = List.of(
16-
new User("Anton", LocalDate.now().minusDays(5)),
17-
new User("Gena", LocalDate.now().minusDays(3)),
18-
new User("John", LocalDate.now().minusDays(2)),
19-
new User("Vladimir", LocalDate.now().minusDays(1)),
20-
new User("Anatoliy", LocalDate.now().minusDays(3))
16+
new User("Anton", LocalDate.now().minusDays(5)), // not max chars amount, too old
17+
new User("Gena", LocalDate.now().minusDays(3)), // not max chars amount
18+
new User("John", LocalDate.now().minusDays(2)), // not max chars amount
19+
new User("Anatoliy", LocalDate.now().minusDays(1)), // expected (max chars amount)
20+
new User("Vladimir", LocalDate.now().minusDays(1)), // expected (max chars amount)
21+
new User("Kirillus", LocalDate.now().minusDays(4)), // too old
22+
new User("Anatoliy", LocalDate.now().minusDays(3)) // duplicate
2123
);
2224

2325
var result = FilterUsers.apply(users);
2426

25-
assertThat(result).isEqualTo(List.of("Vladimir", "Anatoliy"));
27+
assertThat(result).containsOnly("Vladimir", "Anatoliy");
2628
}
2729

2830
@Test

0 commit comments

Comments
 (0)