MCPcopy
hub / github.com/cayleygraph/cayley / TestCompareTypedValues

Function TestCompareTypedValues

graph/graphtest/graphtest.go:1061–1116  ·  view source on GitHub ↗
(t testing.TB, gen testutil.DatabaseFunc, conf *Config)

Source from the content-addressed store, hash-verified

1059}
1060
1061func TestCompareTypedValues(t testing.TB, gen testutil.DatabaseFunc, conf *Config) {
1062 if conf.UnTyped {
1063 t.SkipNow()
1064 }
1065 qs, opts, closer := gen(t)
1066 defer closer()
1067
1068 w := testutil.MakeWriter(t, qs, opts)
1069
1070 t1 := tzero
1071 t2 := t1.Add(time.Hour)
1072 t3 := t2.Add(time.Hour * 48)
1073 t4 := t1.Add(time.Hour * 24 * 365)
1074
1075 quads := []quad.Quad{
1076 {quad.BNode("alice"), quad.BNode("bob"), quad.BNode("charlie"), quad.BNode("dani")},
1077 {quad.IRI("alice"), quad.IRI("bob"), quad.IRI("charlie"), quad.IRI("dani")},
1078 {quad.String("alice"), quad.String("bob"), quad.String("charlie"), quad.String("dani")},
1079 {quad.Int(100), quad.Int(112), quad.Int(110), quad.Int(20)},
1080 {quad.Time(t1), quad.Time(t2), quad.Time(t3), quad.Time(t4)},
1081 // test precision as well
1082 {quad.Int(math.MaxInt64), quad.Int(math.MaxInt64 - 1), quad.Int(math.MinInt64 + 1), quad.Int(math.MinInt64)},
1083 }
1084
1085 err := w.AddQuadSet(quads)
1086 require.NoError(t, err)
1087
1088 var vals []quad.Value
1089 for _, q := range quads {
1090 for _, d := range quad.Directions {
1091 if v := q.Get(d); v != nil {
1092 vals = append(vals, v)
1093 }
1094 }
1095 }
1096 ExpectIteratedValues(t, qs, qs.NodesAllIterator(), vals, true)
1097
1098 for _, c := range casesCompare {
1099 //t.Log(c.op, c.val)
1100 it := iterator.NewComparison(qs.NodesAllIterator(), c.op, c.val, qs)
1101 ExpectIteratedValues(t, qs, it, c.expect, true)
1102 }
1103
1104 for _, c := range casesCompare {
1105 s := shape.Compare(shape.AllNodes{}, c.op, c.val)
1106 ns, ok := shape.Optimize(s, qs)
1107 require.Equal(t, conf.OptimizesComparison, ok)
1108 if conf.OptimizesComparison {
1109 require.NotEqual(t, s, ns)
1110 } else {
1111 require.Equal(t, s, ns)
1112 }
1113 nit := shape.BuildIterator(qs, ns)
1114 ExpectIteratedValues(t, qs, nit, c.expect, true)
1115 }
1116}
1117
1118func TestNodeDelete(t testing.TB, gen testutil.DatabaseFunc, conf *Config) {

Callers

nothing calls this directly

Calls 11

MakeWriterFunction · 0.92
NewComparisonFunction · 0.92
CompareFunction · 0.92
OptimizeFunction · 0.92
BuildIteratorFunction · 0.92
ExpectIteratedValuesFunction · 0.85
AddMethod · 0.65
StringMethod · 0.65
AddQuadSetMethod · 0.65
NodesAllIteratorMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected