Skip to content

Commit

Permalink
feat: add unit test for children traversal in graph
Browse files Browse the repository at this point in the history
  • Loading branch information
cybersiddhu committed Sep 10, 2018
1 parent ac00dff commit 8ecd545
Showing 1 changed file with 70 additions and 2 deletions.
72 changes: 70 additions & 2 deletions graph/graph_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ func TestGraphProperties(t *testing.T) {
t.Fatalf("expected PROPERTY terms %d does not match %d", 81, len(propt))
}
rels := g.Relationships()
if len(rels) != 813 {
t.Fatalf("expected relationships %d does not match %d", 813, len(rels))
if len(rels) != 2919 {
t.Fatalf("expected relationships %d does not match %d", 2919, len(rels))
}
}

Expand Down Expand Up @@ -152,3 +152,71 @@ func TestGraphPropertyTerm(t *testing.T) {
t.Fatalf("expected namespace of sequence does not match %s", dft.Meta().Namespace())
}
}

func TestGraphChildrenTraversal(t *testing.T) {
r, err := getReader()
if err != nil {
t.Fatal(err)
}
g, err := BuildGraph(r)
if err != nil {
t.Fatal(err)
}
term := "SO_0001217"
children := g.Children(NodeID(term))
if len(children) != 4 {
t.Fatalf("expected children %d of term %s does not match %d", 4, term, len(children))
}
for _, cterm := range []string{"SO_0000548", "SO_0000455", "SO_0000451", "SO_0000693"} {
if !includesTerm(children, NodeID(cterm)) {
t.Fatalf("expected child term %s does not exist", cterm)
}
}
desc := g.Descendents(NodeID(term))
if len(desc) != 9 {
t.Fatalf("expected %d descendents does not match %d", 9, len(desc))
}
for _, dterm := range []string{
"SO_0000548",
"SO_0000455",
"SO_0000451",
"SO_0000693",
"SO_0000711",
"SO_0000712",
"SO_0000698",
"SO_0000697",
"SO_0000710",
} {
if !includesTerm(desc, NodeID(dterm)) {
t.Fatalf("expected child term %s does not exist", dterm)
}
}
descDFS := g.DescendentsDFS(NodeID(term))
if len(descDFS) != 9 {
t.Fatalf("expected %d descendents does not match %d", 9, len(descDFS))
}
for _, dterm := range []string{
"SO_0000548",
"SO_0000455",
"SO_0000451",
"SO_0000693",
"SO_0000711",
"SO_0000712",
"SO_0000698",
"SO_0000697",
"SO_0000710",
} {
if !includesTerm(descDFS, NodeID(dterm)) {
t.Fatalf("expected child term %s does not exist", dterm)
}
}
}

func includesTerm(t []Term, n NodeID) bool {
for _, v := range t {
if v.ID() == n {
return true
}
}
return false
}

0 comments on commit 8ecd545

Please sign in to comment.