Skip to content

Commit

Permalink
Building and quering graph in unit test now.
Browse files Browse the repository at this point in the history
  • Loading branch information
kellrott committed Oct 9, 2019
1 parent 6245d27 commit 8eadd7a
Showing 1 changed file with 55 additions and 1 deletion.
56 changes: 55 additions & 1 deletion grids/test/pathcompile_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,31 @@ package test
import (
"os"
"fmt"
"strings"
"testing"
"context"
"github.com/bmeg/grip/gdbi"
"github.com/bmeg/grip/grids"
"github.com/bmeg/grip/engine"
"github.com/bmeg/grip/gripql"
"github.com/bmeg/grip/engine/inspect"
"github.com/golang/protobuf/jsonpb"
)


var vertices = []string{
`{"gid" : "1", "label" : "Person", "data" : { "name" : "bob" }}`,
`{"gid" : "2", "label" : "Person", "data" : { "name" : "alice" }}`,
`{"gid" : "3", "label" : "Person", "data" : { "name" : "jane" }}`,
`{"gid" : "4", "label" : "Person", "data" : { "name" : "janet" }}`,
}

var edges = []string{
`{"gid" : "e1", "label" : "knows", "from" : "1", "to" : "2", "data" : {}}`,
`{"gid" : "e3", "label" : "knows", "from" : "2", "to" : "3", "data" : {}}`,
`{"gid" : "e4", "label" : "knows", "from" : "3", "to" : "4", "data" : {}}`,
}

func SelectPath(stmts []*gripql.GraphStatement, steps []string, path []string) []*gripql.GraphStatement {
out := []*gripql.GraphStatement{}
for _, p := range path {
Expand Down Expand Up @@ -52,9 +69,46 @@ func TestEngineQuery(t *testing.T) {
if err != nil {
t.Error(err)
}

m := jsonpb.Unmarshaler{}

vset := []*gripql.Vertex{}
for _, r := range vertices {
v := &gripql.Vertex{}
err := m.Unmarshal(strings.NewReader(r), v)
if err != nil {
t.Error(err)
}
vset = append(vset, v)
}
graph.AddVertex(vset)

eset := []*gripql.Edge{}
for _, r := range edges {
e := &gripql.Edge{}
err := m.Unmarshal(strings.NewReader(r), e)
if err != nil {
t.Error(err)
}
eset = append(eset, e)
}
graph.AddEdge(eset)


q := gripql.NewQuery()
q = q.V().Out().Out().Count()
comp := graph.Compiler()

fmt.Printf("Compiler: %s\n", comp)
pipeline, err := comp.Compile(q.Statements)
if err != nil {
t.Error(err)
}

out := engine.Run(context.Background(), pipeline, "./work.dir")

for r := range out {
fmt.Printf("result: %s\n", r)
}

gdb.Close()
os.RemoveAll("testing.db")
Expand Down

0 comments on commit 8eadd7a

Please sign in to comment.