From ecbdf66d920a82a579187e91b3df26cb19707965 Mon Sep 17 00:00:00 2001 From: Sagar Verma Date: Sun, 27 Oct 2024 00:34:17 +0530 Subject: [PATCH 1/6] BAEL-8736: sgrverma23 - Java Guide to verify map values --- .../core-java-collections-maps-9/pom.xml | 39 +++++++++++++++++++ .../maptruevaluechecker/MapValueCheck.java | 25 ++++++++++++ .../MapValuesCheckTest.java | 35 +++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 core-java-modules/core-java-collections-maps-9/pom.xml create mode 100644 core-java-modules/core-java-collections-maps-9/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java create mode 100644 core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckTest.java diff --git a/core-java-modules/core-java-collections-maps-9/pom.xml b/core-java-modules/core-java-collections-maps-9/pom.xml new file mode 100644 index 000000000000..11e57eb81960 --- /dev/null +++ b/core-java-modules/core-java-collections-maps-9/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + core-java-collections-maps-9 + core-java-collections-maps-9 + jar + + + core-java-modules + com.baeldung.core-java-modules + 0.0.1-SNAPSHOT + + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + 2.11.0 + 1.9.4 + + + diff --git a/core-java-modules/core-java-collections-maps-9/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java b/core-java-modules/core-java-collections-maps-9/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java new file mode 100644 index 000000000000..dd3a48f130a3 --- /dev/null +++ b/core-java-modules/core-java-collections-maps-9/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java @@ -0,0 +1,25 @@ +import java.util.Map; + +public class MapValueCheck { + + public static boolean areAllValuesTrueWithReduce(Map map) { + return map.values().stream().reduce(true, Boolean::logicalAnd); + } + + public static boolean areAllValuesTrueWithContains(Map map) { + return !map.containsValue(false); + } + + public static boolean areAllValuesTrueWithAllMatch(Map map) { + return !map.isEmpty() && map.values().stream().allMatch(value -> value); + } + + public static boolean areAllValuesTrueWithLoop(Map map) { + for (Boolean value : map.values()) { + if (!value) { + return false; + } + } + return true; + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckTest.java b/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckTest.java new file mode 100644 index 000000000000..e74ac832959a --- /dev/null +++ b/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckTest.java @@ -0,0 +1,35 @@ +import org.junit.jupiter.api.Test; +import java.util.Map; +import static org.junit.jupiter.api.Assertions.*; + +public class MapValuesCheckTest { + + @Test + public void testAllValuesTrue() { + Map map = Map.of("Task1", true, "Task2", true, "Task3", true); + + assertTrue(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "All values should be true"); + assertTrue(MapValuesCheck.areAllValuesTrueWithContains(map), "All values should be true"); + assertTrue(MapValuesCheck.areAllValuesTrueWithReduce(map), "All values should be true"); + assertTrue(MapValuesCheck.areAllValuesTrueWithLoop(map), "All values should be true"); + } + + @Test + public void testSomeValuesFalse() { + Map map = Map.of("Task1", true, "Task2", false); + + assertFalse(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "Not all values are true"); + assertFalse(MapValuesCheck.areAllValuesTrueWithContains(map), "Not all values are true"); + assertFalse(MapValuesCheck.areAllValuesTrueWithReduce(map), "Not all values are true"); + assertFalse(MapValuesCheck.areAllValuesTrueWithLoop(map), "Not all values are true"); + } + + @Test + public void testEmptyMap() { + Map map = Map.of(); + + assertFalse(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "Empty map should return false"); + assertTrue(MapValuesCheck.areAllValuesTrueWithContains(map), "Empty map should return true"); + assertTrue(MapValuesCheck.areAllValuesTrueWithReduce(map), "Empty map should return true"); + } +} \ No newline at end of file From 4120e1d388782b0bff0b1accfd62f184d0c8f9d7 Mon Sep 17 00:00:00 2001 From: Sagar Verma Date: Sat, 2 Nov 2024 09:07:06 +0530 Subject: [PATCH 2/6] BAEL-8736: sgrverma23 - refactoring junit class name and methods --- ...apValuesCheckTest.java => MapValuesCheckUnitTest.java} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/{MapValuesCheckTest.java => MapValuesCheckUnitTest.java} (82%) diff --git a/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckTest.java b/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java similarity index 82% rename from core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckTest.java rename to core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java index e74ac832959a..274de6705b41 100644 --- a/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckTest.java +++ b/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java @@ -2,10 +2,10 @@ import java.util.Map; import static org.junit.jupiter.api.Assertions.*; -public class MapValuesCheckTest { +public class MapValuesCheckUnitTest { @Test - public void testAllValuesTrue() { + public void givenMapWithAllTrueValues_whenCheckAllValuesTrue_thenReturnTrue() { Map map = Map.of("Task1", true, "Task2", true, "Task3", true); assertTrue(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "All values should be true"); @@ -15,7 +15,7 @@ public void testAllValuesTrue() { } @Test - public void testSomeValuesFalse() { + public void givenMapWithSomeFalseValues_whenCheckAllValuesTrue_thenReturnFalse() { Map map = Map.of("Task1", true, "Task2", false); assertFalse(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "Not all values are true"); @@ -25,7 +25,7 @@ public void testSomeValuesFalse() { } @Test - public void testEmptyMap() { + public void givenEmptyMap_whenCheckAllValuesTrue_thenReturnFalseForAllMatchAndTrueForOthers() { Map map = Map.of(); assertFalse(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "Empty map should return false"); From 1b5c3e9f597715f800f3ed9f81432358803d3ad8 Mon Sep 17 00:00:00 2001 From: Sagar Verma Date: Sun, 3 Nov 2024 18:38:42 +0530 Subject: [PATCH 3/6] BAEL-8736: sgrverma23 - moving code to existing core-java-collections-maps-8 module --- .../maptruevaluechecker/MapValueCheck.java | 2 + .../MapValuesCheckUnitTest.java | 2 + .../core-java-collections-maps-9/pom.xml | 39 ------------------- 3 files changed, 4 insertions(+), 39 deletions(-) rename core-java-modules/{core-java-collections-maps-9 => core-java-collections-maps-8}/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java (94%) rename core-java-modules/{core-java-collections-maps-9 => core-java-collections-maps-8}/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java (97%) delete mode 100644 core-java-modules/core-java-collections-maps-9/pom.xml diff --git a/core-java-modules/core-java-collections-maps-9/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java b/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java similarity index 94% rename from core-java-modules/core-java-collections-maps-9/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java rename to core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java index dd3a48f130a3..b313a58e0330 100644 --- a/core-java-modules/core-java-collections-maps-9/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java +++ b/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java @@ -1,3 +1,5 @@ +package com.baeldung.map.maptruevaluechecker; + import java.util.Map; public class MapValueCheck { diff --git a/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java b/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java similarity index 97% rename from core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java rename to core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java index 274de6705b41..250fb04de0b5 100644 --- a/core-java-modules/core-java-collections-maps-9/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java +++ b/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java @@ -1,3 +1,5 @@ +package com.baeldung.map.maptruevaluecheckertest; + import org.junit.jupiter.api.Test; import java.util.Map; import static org.junit.jupiter.api.Assertions.*; diff --git a/core-java-modules/core-java-collections-maps-9/pom.xml b/core-java-modules/core-java-collections-maps-9/pom.xml deleted file mode 100644 index 11e57eb81960..000000000000 --- a/core-java-modules/core-java-collections-maps-9/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - 4.0.0 - core-java-collections-maps-9 - core-java-collections-maps-9 - jar - - - core-java-modules - com.baeldung.core-java-modules - 0.0.1-SNAPSHOT - - - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - - - - 2.11.0 - 1.9.4 - - - From 6afe4263e746708623cc5d8f80cf51e24c98d2b8 Mon Sep 17 00:00:00 2001 From: Sagar Verma Date: Sun, 3 Nov 2024 18:58:28 +0530 Subject: [PATCH 4/6] BAEL-8736: sgrverma23 - refactoring package name --- .../MapValuesCheck.java} | 4 ++-- .../MapValuesCheckUnitTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/{maptruevaluechecker/MapValueCheck.java => maptruevaluecheck/MapValuesCheck.java} (90%) rename core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/{maptruevaluecheckertest => maptruevaluecheck}/MapValuesCheckUnitTest.java (97%) diff --git a/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java b/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluecheck/MapValuesCheck.java similarity index 90% rename from core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java rename to core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluecheck/MapValuesCheck.java index b313a58e0330..40ded9c0dfb1 100644 --- a/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluechecker/MapValueCheck.java +++ b/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluecheck/MapValuesCheck.java @@ -1,8 +1,8 @@ -package com.baeldung.map.maptruevaluechecker; +package com.baeldung.map.maptruevaluecheck; import java.util.Map; -public class MapValueCheck { +public class MapValuesCheck { public static boolean areAllValuesTrueWithReduce(Map map) { return map.values().stream().reduce(true, Boolean::logicalAnd); diff --git a/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java b/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheck/MapValuesCheckUnitTest.java similarity index 97% rename from core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java rename to core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheck/MapValuesCheckUnitTest.java index 250fb04de0b5..946273357523 100644 --- a/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheckertest/MapValuesCheckUnitTest.java +++ b/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheck/MapValuesCheckUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.map.maptruevaluecheckertest; +package com.baeldung.map.maptruevaluecheck; import org.junit.jupiter.api.Test; import java.util.Map; From 3784bb914b63cba737be3c0834d1e3c70c888e84 Mon Sep 17 00:00:00 2001 From: Sagar Verma Date: Sun, 10 Nov 2024 00:16:58 +0530 Subject: [PATCH 5/6] BAEL-8736: sgrverma23 - refactoring logic to check all values are same --- .../map/maptruevaluecheck/MapValuesCheck.java | 29 ++++++++---- .../MapValuesCheckUnitTest.java | 46 ++++++++++++------- 2 files changed, 49 insertions(+), 26 deletions(-) diff --git a/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluecheck/MapValuesCheck.java b/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluecheck/MapValuesCheck.java index 40ded9c0dfb1..04d11b8a8f6e 100644 --- a/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluecheck/MapValuesCheck.java +++ b/core-java-modules/core-java-collections-maps-8/src/main/java/com/baeldung/map/maptruevaluecheck/MapValuesCheck.java @@ -1,24 +1,35 @@ package com.baeldung.map.maptruevaluecheck; import java.util.Map; +import java.util.HashSet; +import java.util.Set; public class MapValuesCheck { - public static boolean areAllValuesTrueWithReduce(Map map) { - return map.values().stream().reduce(true, Boolean::logicalAnd); + public static boolean areAllValuesSameWithReduce(Map map) { + if (map.isEmpty()) return true; + int firstValue = map.values().iterator().next(); + return map.values().stream().reduce(true, + (result, value) -> result && value.equals(firstValue), + Boolean::logicalAnd); } - public static boolean areAllValuesTrueWithContains(Map map) { - return !map.containsValue(false); + public static boolean areAllValuesSameWithSet(Map map) { + Set uniqueValues = new HashSet<>(map.values()); + return uniqueValues.size() == 1; } - public static boolean areAllValuesTrueWithAllMatch(Map map) { - return !map.isEmpty() && map.values().stream().allMatch(value -> value); + public static boolean areAllValuesSameWithAllMatch(Map map) { + if (map.isEmpty()) return true; + int firstValue = map.values().iterator().next(); + return map.values().stream().allMatch(value -> value.equals(firstValue)); } - public static boolean areAllValuesTrueWithLoop(Map map) { - for (Boolean value : map.values()) { - if (!value) { + public static boolean areAllValuesSameWithLoop(Map map) { + if (map.isEmpty()) return true; + int firstValue = map.values().iterator().next(); + for (int value : map.values()) { + if (value != firstValue) { return false; } } diff --git a/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheck/MapValuesCheckUnitTest.java b/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheck/MapValuesCheckUnitTest.java index 946273357523..81118ea24b4a 100644 --- a/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheck/MapValuesCheckUnitTest.java +++ b/core-java-modules/core-java-collections-maps-8/src/test/java/com/baeldung/map/maptruevaluecheck/MapValuesCheckUnitTest.java @@ -7,31 +7,43 @@ public class MapValuesCheckUnitTest { @Test - public void givenMapWithAllTrueValues_whenCheckAllValuesTrue_thenReturnTrue() { - Map map = Map.of("Task1", true, "Task2", true, "Task3", true); + public void givenMapWithAllSameValues_whenCheckAllValuesSame_thenReturnTrue() { + Map map = Map.of("English", 100, "Maths", 100, "Science", 100); - assertTrue(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "All values should be true"); - assertTrue(MapValuesCheck.areAllValuesTrueWithContains(map), "All values should be true"); - assertTrue(MapValuesCheck.areAllValuesTrueWithReduce(map), "All values should be true"); - assertTrue(MapValuesCheck.areAllValuesTrueWithLoop(map), "All values should be true"); + assertTrue(MapValuesCheck.areAllValuesSameWithAllMatch(map)); + assertTrue(MapValuesCheck.areAllValuesSameWithReduce(map)); + assertTrue(MapValuesCheck.areAllValuesSameWithLoop(map)); } @Test - public void givenMapWithSomeFalseValues_whenCheckAllValuesTrue_thenReturnFalse() { - Map map = Map.of("Task1", true, "Task2", false); + public void givenMapWithDifferentValues_whenCheckAllValuesSame_thenReturnFalse() { + Map map = Map.of("English", 1000, "Maths", 100, "Science", 100); - assertFalse(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "Not all values are true"); - assertFalse(MapValuesCheck.areAllValuesTrueWithContains(map), "Not all values are true"); - assertFalse(MapValuesCheck.areAllValuesTrueWithReduce(map), "Not all values are true"); - assertFalse(MapValuesCheck.areAllValuesTrueWithLoop(map), "Not all values are true"); + assertFalse(MapValuesCheck.areAllValuesSameWithAllMatch(map)); + assertFalse(MapValuesCheck.areAllValuesSameWithReduce(map)); + assertFalse(MapValuesCheck.areAllValuesSameWithLoop(map)); } @Test - public void givenEmptyMap_whenCheckAllValuesTrue_thenReturnFalseForAllMatchAndTrueForOthers() { - Map map = Map.of(); + public void givenEmptyMap_whenCheckAllValuesSame_thenReturnTrue() { + Map map = Map.of(); - assertFalse(MapValuesCheck.areAllValuesTrueWithAllMatch(map), "Empty map should return false"); - assertTrue(MapValuesCheck.areAllValuesTrueWithContains(map), "Empty map should return true"); - assertTrue(MapValuesCheck.areAllValuesTrueWithReduce(map), "Empty map should return true"); + assertTrue(MapValuesCheck.areAllValuesSameWithAllMatch(map)); + assertTrue(MapValuesCheck.areAllValuesSameWithReduce(map)); + assertTrue(MapValuesCheck.areAllValuesSameWithLoop(map)); + } + + @Test + void givenMapWithAllSameValues_whenCheckingAllValuesSameWithSet_thenReturnTrue() { + Map map = Map.of("English", 100, "Maths", 100, "Science", 100); + + assertTrue(MapValuesCheck.areAllValuesSameWithSet(map)); + } + + @Test + void givenMapWithDifferentValues_whenCheckingAllValuesSameWithSet_thenReturnFalse() { + Map map = Map.of("English", 1000, "Maths", 100, "Science", 100); + + assertFalse(MapValuesCheck.areAllValuesSameWithSet(map)); } } \ No newline at end of file From 0f6dbb921810a75656f4c1331a8d69cf0ebcac50 Mon Sep 17 00:00:00 2001 From: Sagar Verma Date: Sun, 10 Nov 2024 00:45:55 +0530 Subject: [PATCH 6/6] trigger build