From 8e4bd669e8ab238781fddbd3994314f8a6c62688 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 10 Jun 2020 23:01:00 -0400 Subject: [PATCH] test Set.Copy, Graph.UpEdges, Graph.DownEdges --- dag/graph_test.go | 36 ++++++++++++++++++++++++++++++++++++ dag/set_test.go | 20 ++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/dag/graph_test.go b/dag/graph_test.go index 2979744316..76c47641da 100644 --- a/dag/graph_test.go +++ b/dag/graph_test.go @@ -170,6 +170,42 @@ func TestGraphEdgesTo(t *testing.T) { } } +func TestGraphUpdownEdges(t *testing.T) { + // Verify that we can't inadvertently modify the internal graph sets + var g Graph + g.Add(1) + g.Add(2) + g.Add(3) + g.Connect(BasicEdge(1, 2)) + g.Connect(BasicEdge(2, 3)) + + up := g.UpEdges(2) + if up.Len() != 1 || !up.Include(1) { + t.Fatalf("expected only an up edge of '1', got %#v", up) + } + // modify the up set + up.Add(9) + + orig := g.UpEdges(2) + diff := up.Difference(orig) + if diff.Len() != 1 || !diff.Include(9) { + t.Fatalf("expected a diff of only '9', got %#v", diff) + } + + down := g.DownEdges(2) + if down.Len() != 1 || !down.Include(3) { + t.Fatalf("expected only a down edge of '3', got %#v", down) + } + // modify the down set + down.Add(8) + + orig = g.DownEdges(2) + diff = down.Difference(orig) + if diff.Len() != 1 || !diff.Include(8) { + t.Fatalf("expected a diff of only '8', got %#v", diff) + } +} + type hashVertex struct { code interface{} } diff --git a/dag/set_test.go b/dag/set_test.go index 63b72e3239..36bd6a65b8 100644 --- a/dag/set_test.go +++ b/dag/set_test.go @@ -99,3 +99,23 @@ func TestSetFilter(t *testing.T) { }) } } + +func TestSetCopy(t *testing.T) { + a := make(Set) + a.Add(1) + a.Add(2) + + b := a.Copy() + b.Add(3) + + diff := b.Difference(a) + + if diff.Len() != 1 { + t.Fatalf("expected single diff value, got %#v", diff) + } + + if !diff.Include(3) { + t.Fatalf("diff does not contain 3, got %#v", diff) + } + +}