[tracker] tests: Add some BIND() tests



commit 15aa74452cd4cde9a1d4b16cc57dddf7407ff833
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon May 30 13:22:51 2016 +0200

    tests: Add some BIND() tests

 configure.ac                                |    1 +
 tests/libtracker-data/Makefile.am           |    1 +
 tests/libtracker-data/bind/Makefile.am      |   13 +++++++++++++
 tests/libtracker-data/bind/bind1.out        |    2 ++
 tests/libtracker-data/bind/bind1.rq         |    8 ++++++++
 tests/libtracker-data/bind/bind2.out        |    1 +
 tests/libtracker-data/bind/bind2.rq         |    8 ++++++++
 tests/libtracker-data/bind/bind3.out        |    2 ++
 tests/libtracker-data/bind/bind3.rq         |    7 +++++++
 tests/libtracker-data/bind/bind4.out        |    1 +
 tests/libtracker-data/bind/bind4.rq         |   10 ++++++++++
 tests/libtracker-data/bind/data.ontology    |   27 +++++++++++++++++++++++++++
 tests/libtracker-data/bind/data.ttl         |   11 +++++++++++
 tests/libtracker-data/tracker-sparql-test.c |    5 +++++
 14 files changed, 97 insertions(+), 0 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 26960f2..03c498e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2686,6 +2686,7 @@ AC_CONFIG_FILES([
        tests/libtracker-data/anon/Makefile
        tests/libtracker-data/ask/Makefile
        tests/libtracker-data/basic/Makefile
+       tests/libtracker-data/bind/Makefile
        tests/libtracker-data/bnode-coreference/Makefile
        tests/libtracker-data/bound/Makefile
        tests/libtracker-data/datetime/Makefile
diff --git a/tests/libtracker-data/Makefile.am b/tests/libtracker-data/Makefile.am
index 060fe0a..2b86b1c 100644
--- a/tests/libtracker-data/Makefile.am
+++ b/tests/libtracker-data/Makefile.am
@@ -6,6 +6,7 @@ SUBDIRS =                                              \
        anon                                           \
        ask                                            \
        basic                                          \
+       bind                                           \
        bnode-coreference                              \
        bound                                          \
        datetime                                       \
diff --git a/tests/libtracker-data/bind/Makefile.am b/tests/libtracker-data/bind/Makefile.am
new file mode 100644
index 0000000..522d6ae
--- /dev/null
+++ b/tests/libtracker-data/bind/Makefile.am
@@ -0,0 +1,13 @@
+include $(top_srcdir)/Makefile.decl
+
+EXTRA_DIST += \
+       data.ontology                                  \
+       data.ttl                                       \
+       bind1.out                                      \
+       bind1.rq                                       \
+       bind2.out                                      \
+       bind2.rq                                       \
+       bind3.out                                      \
+       bind3.rq                                       \
+       bind4.out                                      \
+       bind4.rq
diff --git a/tests/libtracker-data/bind/bind1.out b/tests/libtracker-data/bind/bind1.out
new file mode 100644
index 0000000..e6069fa
--- /dev/null
+++ b/tests/libtracker-data/bind/bind1.out
@@ -0,0 +1,2 @@
+"http://example.org/ns#a1";     "a1"    "a1"    "a1"
+"http://example.org/ns#a2";     "a2"    "a2"    "a2"
diff --git a/tests/libtracker-data/bind/bind1.rq b/tests/libtracker-data/bind/bind1.rq
new file mode 100644
index 0000000..c27a3a1
--- /dev/null
+++ b/tests/libtracker-data/bind/bind1.rq
@@ -0,0 +1,8 @@
+PREFIX  : <http://example.org/ns#>
+SELECT  ?a ?c ?x ?y
+WHERE
+    { ?a :string ?c .
+      BIND (?c AS ?x) .
+      BIND (:string(?a) AS ?y) .
+    }
+ORDER BY ?a
diff --git a/tests/libtracker-data/bind/bind2.out b/tests/libtracker-data/bind/bind2.out
new file mode 100644
index 0000000..e89c3ea
--- /dev/null
+++ b/tests/libtracker-data/bind/bind2.out
@@ -0,0 +1 @@
+"http://example.org/ns#e";      "17"    "34"
diff --git a/tests/libtracker-data/bind/bind2.rq b/tests/libtracker-data/bind/bind2.rq
new file mode 100644
index 0000000..c22d7b1
--- /dev/null
+++ b/tests/libtracker-data/bind/bind2.rq
@@ -0,0 +1,8 @@
+PREFIX  : <http://example.org/ns#>
+SELECT  ?a ?b ?x AS ?double
+WHERE
+    { ?a :integer ?b .
+      BIND ((?b * 2) AS ?x) .
+      FILTER (?x < 50) .
+    }
+ORDER BY ?a
diff --git a/tests/libtracker-data/bind/bind3.out b/tests/libtracker-data/bind/bind3.out
new file mode 100644
index 0000000..77909cd
--- /dev/null
+++ b/tests/libtracker-data/bind/bind3.out
@@ -0,0 +1,2 @@
+"http://example.org/ns#a2";     "42"    "0.0238095238095238"
+"http://example.org/ns#e";      "17"    "0.0588235294117647"
diff --git a/tests/libtracker-data/bind/bind3.rq b/tests/libtracker-data/bind/bind3.rq
new file mode 100644
index 0000000..2d9405a
--- /dev/null
+++ b/tests/libtracker-data/bind/bind3.rq
@@ -0,0 +1,7 @@
+PREFIX  : <http://example.org/ns#>
+SELECT  ?a ?b ?x
+WHERE
+    { ?a :integer ?b .
+      BIND ((1 / xsd:double (?b)) AS ?x) .
+    }
+ORDER BY ?x
diff --git a/tests/libtracker-data/bind/bind4.out b/tests/libtracker-data/bind/bind4.out
new file mode 100644
index 0000000..d955229
--- /dev/null
+++ b/tests/libtracker-data/bind/bind4.out
@@ -0,0 +1 @@
+"http://example.org/ns#a1";     "a1"
diff --git a/tests/libtracker-data/bind/bind4.rq b/tests/libtracker-data/bind/bind4.rq
new file mode 100644
index 0000000..cb1081e
--- /dev/null
+++ b/tests/libtracker-data/bind/bind4.rq
@@ -0,0 +1,10 @@
+PREFIX  : <http://example.org/ns#>
+SELECT  ?a ?x
+WHERE
+    {
+      ?a a :A .
+      BIND (:string(?a) AS ?x) .
+      FILTER (STRSTARTS (:string(?a), "a") &&
+              STRENDS (?x, "1")) .
+    }
+ORDER BY ?a
diff --git a/tests/libtracker-data/bind/data.ontology b/tests/libtracker-data/bind/data.ontology
new file mode 100644
index 0000000..00b5a5b
--- /dev/null
+++ b/tests/libtracker-data/bind/data.ontology
@@ -0,0 +1,27 @@
+ prefix example: <http://example.org/ns#> .
+ prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+ prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+ prefix tracker: <http://www.tracker-project.org/ontologies/tracker#> .
+ prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+example: a tracker:Namespace ;
+       tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+       rdfs:subClassOf rdfs:Resource .
+
+example:string a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:string .
+
+example:integer a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:resource a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range rdfs:Resource .
+
+example:date a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:dateTime .
diff --git a/tests/libtracker-data/bind/data.ttl b/tests/libtracker-data/bind/data.ttl
new file mode 100644
index 0000000..45d495b
--- /dev/null
+++ b/tests/libtracker-data/bind/data.ttl
@@ -0,0 +1,11 @@
+ prefix : <http://example.org/ns#> .
+
+:a1 a :A .
+:a2 a :A .
+:e  a :A .
+
+:a1 :string "a1" .
+:a1 :resource :e .
+:a2 :string "a2" .
+:a2 :integer 42 .
+:e  :integer 17 .
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 1b77ba5..01421a9 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -137,6 +137,11 @@ const TestInfo tests[] = {
        /* Mixed cardinality tests */
        { "mixed-cardinality/insert-mixed-cardinality-query-1", 
"mixed-cardinality/insert-mixed-cardinality-1", FALSE, FALSE },
        { "mixed-cardinality/update-mixed-cardinality-query-1", 
"mixed-cardinality/update-mixed-cardinality-1", FALSE, FALSE },
+       /* Bind tests */
+       { "bind/bind1", "bind/data", FALSE },
+       { "bind/bind2", "bind/data", FALSE },
+       { "bind/bind3", "bind/data", FALSE },
+       { "bind/bind4", "bind/data", FALSE },
        { NULL }
 };
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]