From aeb0bd3bd78e4842e6be6ebb386b40314f8d147f Mon Sep 17 00:00:00 2001 From: "press0@gmail.com" Date: Mon, 10 Apr 2023 10:37:33 -0500 Subject: [PATCH] PR --- .../com/baeldung/algorithms/dfs/Graph.java | 10 ++++++---- .../baeldung/algorithms/dfs/GraphUnitTest.java | 13 ++++++++++--- .../com/baeldung/equalshashcode/Voucher.java | 2 +- .../baeldung/equalshashcode/MoneyUnitTest.java | 18 ++++++++++++++---- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/algorithms-modules/algorithms-searching/src/main/java/com/baeldung/algorithms/dfs/Graph.java b/algorithms-modules/algorithms-searching/src/main/java/com/baeldung/algorithms/dfs/Graph.java index 4623dbb7a4..49cf3fe2bd 100644 --- a/algorithms-modules/algorithms-searching/src/main/java/com/baeldung/algorithms/dfs/Graph.java +++ b/algorithms-modules/algorithms-searching/src/main/java/com/baeldung/algorithms/dfs/Graph.java @@ -23,7 +23,7 @@ public class Graph { adjVertices.get(src).add(dest); } - public void dfsWithoutRecursion(int start) { + public boolean[] dfsWithoutRecursion(int start) { Stack stack = new Stack(); boolean[] isVisited = new boolean[adjVertices.size()]; stack.push(start); @@ -38,20 +38,22 @@ public class Graph { } } } + return isVisited; } - public void dfs(int start) { + public boolean[] dfs(int start) { boolean[] isVisited = new boolean[adjVertices.size()]; - dfsRecursive(start, isVisited); + return dfsRecursive(start, isVisited); } - private void dfsRecursive(int current, boolean[] isVisited) { + private boolean[] dfsRecursive(int current, boolean[] isVisited) { isVisited[current] = true; visit(current); for (int dest : adjVertices.get(current)) { if (!isVisited[dest]) dfsRecursive(dest, isVisited); } + return isVisited; } public List topologicalSort(int start) { diff --git a/algorithms-modules/algorithms-searching/src/test/java/com/baeldung/algorithms/dfs/GraphUnitTest.java b/algorithms-modules/algorithms-searching/src/test/java/com/baeldung/algorithms/dfs/GraphUnitTest.java index 086eb77a82..2761062e91 100644 --- a/algorithms-modules/algorithms-searching/src/test/java/com/baeldung/algorithms/dfs/GraphUnitTest.java +++ b/algorithms-modules/algorithms-searching/src/test/java/com/baeldung/algorithms/dfs/GraphUnitTest.java @@ -1,7 +1,9 @@ package com.baeldung.algorithms.dfs; +import java.util.Arrays; import java.util.List; +import org.junit.Assert; import org.junit.jupiter.api.Test; class GraphUnitTest { @@ -9,9 +11,12 @@ class GraphUnitTest { @Test void givenDirectedGraph_whenDFS_thenPrintAllValues() { Graph graph = createDirectedGraph(); - graph.dfs(0); - System.out.println(); - graph.dfsWithoutRecursion(0); + boolean[] visited; + visited = graph.dfs(0); + boolean[] expected = new boolean[]{true, true, true, true, true, true}; + Assert.assertArrayEquals(expected, visited); + visited = graph.dfsWithoutRecursion(0); + Assert.assertArrayEquals(expected, visited); } @Test @@ -19,6 +24,8 @@ class GraphUnitTest { Graph graph = createDirectedGraph(); List list = graph.topologicalSort(0); System.out.println(list); + List expected = Arrays.asList(0, 2, 1, 3, 4, 5); + Assert.assertEquals(expected, list); } private Graph createDirectedGraph() { diff --git a/core-java-modules/core-java-lang-oop-methods/src/main/java/com/baeldung/equalshashcode/Voucher.java b/core-java-modules/core-java-lang-oop-methods/src/main/java/com/baeldung/equalshashcode/Voucher.java index 19f46e0358..6754ee9d30 100644 --- a/core-java-modules/core-java-lang-oop-methods/src/main/java/com/baeldung/equalshashcode/Voucher.java +++ b/core-java-modules/core-java-lang-oop-methods/src/main/java/com/baeldung/equalshashcode/Voucher.java @@ -16,7 +16,7 @@ class Voucher { return true; if (!(o instanceof Voucher)) return false; - Voucher other = (Voucher)o; + Voucher other = (Voucher) o; boolean valueEquals = (this.value == null && other.value == null) || (this.value != null && this.value.equals(other.value)); boolean storeEquals = (this.store == null && other.store == null) diff --git a/core-java-modules/core-java-lang-oop-methods/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java b/core-java-modules/core-java-lang-oop-methods/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java index 8fc99e0e81..dd6f36e0e4 100644 --- a/core-java-modules/core-java-lang-oop-methods/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java +++ b/core-java-modules/core-java-lang-oop-methods/src/test/java/com/baeldung/equalshashcode/MoneyUnitTest.java @@ -13,15 +13,25 @@ public class MoneyUnitTest { Money expenses = new Money(55, "USD"); assertTrue(income.equals(expenses)); + assertTrue(expenses.equals(income)); + } + + @Test + public void givenMoneyAndWrongVoucherInstances_whenEquals_thenReturnValuesArentSymmetric() { + Money money = new Money(42, "USD"); + WrongVoucher voucher = new WrongVoucher(42, "USD", "Amazon"); + + assertFalse(voucher.equals(money)); + assertTrue(money.equals(voucher)); } @Test public void givenMoneyAndVoucherInstances_whenEquals_thenReturnValuesArentSymmetric() { - Money cash = new Money(42, "USD"); - WrongVoucher voucher = new WrongVoucher(42, "USD", "Amazon"); + Money money = new Money(42, "USD"); + Voucher voucher = new Voucher(42, "USD", "Amazon"); - assertFalse(voucher.equals(cash)); - assertTrue(cash.equals(voucher)); + assertFalse(voucher.equals(money)); + assertFalse(money.equals(voucher)); } }