From a5bc0685f39455b35df5b19c76738b4859751386 Mon Sep 17 00:00:00 2001 From: AnujaP2020 Date: Fri, 22 Sep 2023 13:21:29 -0700 Subject: [PATCH] Fix issue #288 - added implementation of duplicatesAndUnique method and test case for the same Added implementations of duplicatesAndUnique method in haiku-kata-solutions Updated duplicatesAndUnique method Updated with a different approach to get duplicate chars and unique chars from MutableCharBag --- .../haikukata/TextProcessorEC.java | 23 +++++++++---------- .../haikukata/TextProcessorECTest.java | 4 ++-- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/haiku-kata-solutions/src/main/java/org/eclipse/collections/haikukata/TextProcessorEC.java b/haiku-kata-solutions/src/main/java/org/eclipse/collections/haikukata/TextProcessorEC.java index bdada4ca..463dea48 100644 --- a/haiku-kata-solutions/src/main/java/org/eclipse/collections/haikukata/TextProcessorEC.java +++ b/haiku-kata-solutions/src/main/java/org/eclipse/collections/haikukata/TextProcessorEC.java @@ -59,18 +59,17 @@ public String distinctLetters() public Triple duplicatesAndUnique() { - // TODO: Find all of the alphabetic letters from this.getHaikuAsCharAdapter(), convert them to lowercase - // and store them in a MutableCharBag. - // Hint: Look at select, collectChar, and toBag - MutableCharBag chars = null; - - // TODO: Find all the chars with duplicates - // Hint: Find a method on MutableCharBag that returns duplicates - CharBag duplicates = null; - - // TODO: Find all the unique chars - // Hint: Find a method on MutableCharBag that returns unique chars - CharSet unique = null; + // Find all of the alphabetic letters, convert them to lowercase + MutableCharBag chars = this.getHaikuAsCharAdapter() + .select(Character::isAlphabetic) + .collectChar(Character::toLowerCase) + .toBag(); + + // Find all the chars with duplicates + CharBag duplicates = chars.selectDuplicates(); + + // Find all the unique chars + CharSet unique = chars.selectUnique(); return Tuples.triple(chars, duplicates, unique); } diff --git a/haiku-kata-solutions/src/test/java/org/eclipse/collections/haikukata/TextProcessorECTest.java b/haiku-kata-solutions/src/test/java/org/eclipse/collections/haikukata/TextProcessorECTest.java index 9d135acb..9a30f14a 100644 --- a/haiku-kata-solutions/src/test/java/org/eclipse/collections/haikukata/TextProcessorECTest.java +++ b/haiku-kata-solutions/src/test/java/org/eclipse/collections/haikukata/TextProcessorECTest.java @@ -47,8 +47,8 @@ public void distinctLetters() Assertions.assertEquals("breakingthoupvmwcdflsy", distinctLetters); } -// @Test // Uncomment once duplicatesAndUnique is implemented for EC -// @Tag("SOLUTION") + @Test + @Tag("SOLUTION") public void duplicatesAndUnique() { Triple triple = new TextProcessorEC().duplicatesAndUnique();