From d2f12849df76203d80762ceca5105531d3424384 Mon Sep 17 00:00:00 2001 From: William Chang <48861800+WilliamChang80@users.noreply.github.com> Date: Fri, 10 Sep 2021 01:56:09 +0700 Subject: [PATCH] Add tests on DepthFirstSearch (#299) Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: Andrii Siriak --- graph/depthfirstsearch_test.go | 64 ++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 graph/depthfirstsearch_test.go diff --git a/graph/depthfirstsearch_test.go b/graph/depthfirstsearch_test.go new file mode 100644 index 000000000..d63573ca1 --- /dev/null +++ b/graph/depthfirstsearch_test.go @@ -0,0 +1,64 @@ +package graph + +import ( + "reflect" + "testing" +) + +func TestDfsWhenPathIsFound(t *testing.T) { + nodes := []int{ + 1, 2, 3, 4, 5, 6, + } + + //Adjacency Matrix for connected nodes + edges := [][]bool{ + {false, true, true, false, false, false}, + {true, false, false, true, false, false}, + {true, false, false, true, false, false}, + {false, true, true, false, true, false}, + {false, false, false, true, false, true}, + {false, false, false, false, true, false}, + } + + start := 1 + end := 6 + + actual, actualIsFound := DepthFirstSearch(start, end, nodes, edges) + expected := []int{1, 3, 4, 5, 6} + expectedIsFound := true + t.Run("Test Dfs", func(t *testing.T) { + if !reflect.DeepEqual(expected, actual) || !reflect.DeepEqual(actualIsFound, expectedIsFound) { + t.Errorf("got route: %v, want route: %v", actual, expected) + t.Errorf("got isFound: %v, want isFound: %v", actualIsFound, expectedIsFound) + } + }) +} + +func TestDfsWhenPathIsNotFound(t *testing.T) { + nodes := []int{ + 1, 2, 3, 4, 5, 6, + } + + //Adjacency Matrix for connected nodes + edges := [][]bool{ + {false, true, true, false, false, false}, + {true, false, false, true, false, false}, + {true, false, false, true, false, false}, + {false, true, true, false, true, false}, + {false, false, false, true, false, true}, + {false, false, false, false, true, false}, + } + + start := 1 + end := 7 + + actual, actualIsFound := DepthFirstSearch(start, end, nodes, edges) + var expected []int + expectedIsFound := false + t.Run("Test Dfs", func(t *testing.T) { + if !reflect.DeepEqual(expected, actual) || !reflect.DeepEqual(actualIsFound, expectedIsFound) { + t.Errorf("got route: %v, want route: %v", actual, expected) + t.Errorf("got isFound: %v, want isFound: %v", actualIsFound, expectedIsFound) + } + }) +}