summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2016-05-30 13:22:51 +0200
committerCarlos Garnacho <carlosg@gnome.org>2016-05-30 21:27:07 +0200
commit15aa74452cd4cde9a1d4b16cc57dddf7407ff833 (patch)
treec9c079d80db640616f1984f391e094f2717eb67d /tests
parent06d47e8cb113a821c031b5ab8c07895c4473cfb4 (diff)
downloadtracker-15aa74452cd4cde9a1d4b16cc57dddf7407ff833.tar.gz
tests: Add some BIND() tests
Diffstat (limited to 'tests')
-rw-r--r--tests/libtracker-data/Makefile.am1
-rw-r--r--tests/libtracker-data/bind/Makefile.am13
-rw-r--r--tests/libtracker-data/bind/bind1.out2
-rw-r--r--tests/libtracker-data/bind/bind1.rq8
-rw-r--r--tests/libtracker-data/bind/bind2.out1
-rw-r--r--tests/libtracker-data/bind/bind2.rq8
-rw-r--r--tests/libtracker-data/bind/bind3.out2
-rw-r--r--tests/libtracker-data/bind/bind3.rq7
-rw-r--r--tests/libtracker-data/bind/bind4.out1
-rw-r--r--tests/libtracker-data/bind/bind4.rq10
-rw-r--r--tests/libtracker-data/bind/data.ontology27
-rw-r--r--tests/libtracker-data/bind/data.ttl11
-rw-r--r--tests/libtracker-data/tracker-sparql-test.c5
13 files changed, 96 insertions, 0 deletions
diff --git a/tests/libtracker-data/Makefile.am b/tests/libtracker-data/Makefile.am
index 060fe0a1c..2b86b1c38 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 000000000..522d6ae00
--- /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 000000000..e6069faa6
--- /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 000000000..c27a3a1a8
--- /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 000000000..e89c3eae8
--- /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 000000000..c22d7b129
--- /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 000000000..77909cd6f
--- /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 000000000..2d9405a8a
--- /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 000000000..d9552295a
--- /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 000000000..cb1081e3e
--- /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 000000000..00b5a5bf8
--- /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 000000000..45d495b69
--- /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 1b77ba5b8..01421a9b6 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 }
};