[tracker/wip/carlosg/sparql1.1: 2/8] tests: Add rdf:List tests



commit 0a0dffe2279e884dd35064b71f07053db3be4ee5
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun Jul 21 01:31:38 2019 +0200

    tests: Add rdf:List tests

 tests/libtracker-data/lists/data-list-in-object.rq  |  8 ++++++++
 tests/libtracker-data/lists/data-list-in-select.rq  |  8 ++++++++
 tests/libtracker-data/lists/data-list-in-subject.rq |  6 ++++++
 tests/libtracker-data/lists/data-list-nested.rq     | 17 +++++++++++++++++
 tests/libtracker-data/lists/list-in-object.out      |  4 ++++
 tests/libtracker-data/lists/list-in-object.rq       |  2 ++
 tests/libtracker-data/lists/list-in-select.out      |  1 +
 tests/libtracker-data/lists/list-in-select.rq       |  4 ++++
 tests/libtracker-data/lists/list-in-subject.out     |  4 ++++
 tests/libtracker-data/lists/list-in-subject.rq      |  2 ++
 tests/libtracker-data/lists/list-nested.out         | 10 ++++++++++
 tests/libtracker-data/lists/list-nested.rq          |  1 +
 tests/libtracker-data/lists/test.ontology           | 19 +++++++++++++++++++
 tests/libtracker-data/tracker-sparql-test.c         |  4 ++++
 14 files changed, 90 insertions(+)
---
diff --git a/tests/libtracker-data/lists/data-list-in-object.rq 
b/tests/libtracker-data/lists/data-list-in-object.rq
new file mode 100644
index 000000000..c033f459e
--- /dev/null
+++ b/tests/libtracker-data/lists/data-list-in-object.rq
@@ -0,0 +1,8 @@
+INSERT {
+       <a> a example:A ;
+           example:label "root" ;
+           example:list ( [ a example:A ; example:label "elem1" ]
+                          [ a example:A ; example:label "elem2" ]
+                          [ a example:A ; example:label "elem3" ]
+                          [ a example:A ; example:label "elem4" ] ) .
+}
diff --git a/tests/libtracker-data/lists/data-list-in-select.rq 
b/tests/libtracker-data/lists/data-list-in-select.rq
new file mode 100644
index 000000000..c033f459e
--- /dev/null
+++ b/tests/libtracker-data/lists/data-list-in-select.rq
@@ -0,0 +1,8 @@
+INSERT {
+       <a> a example:A ;
+           example:label "root" ;
+           example:list ( [ a example:A ; example:label "elem1" ]
+                          [ a example:A ; example:label "elem2" ]
+                          [ a example:A ; example:label "elem3" ]
+                          [ a example:A ; example:label "elem4" ] ) .
+}
diff --git a/tests/libtracker-data/lists/data-list-in-subject.rq 
b/tests/libtracker-data/lists/data-list-in-subject.rq
new file mode 100644
index 000000000..acb407f93
--- /dev/null
+++ b/tests/libtracker-data/lists/data-list-in-subject.rq
@@ -0,0 +1,6 @@
+INSERT {
+  ([ a example:A ; example:label "elem1" ]
+   [ a example:A ; example:label "elem2" ]
+   [ a example:A ; example:label "elem3" ]
+   [ a example:A ; example:label "elem4" ] ) a example:A ; example:label 'root' .
+}
\ No newline at end of file
diff --git a/tests/libtracker-data/lists/data-list-nested.rq b/tests/libtracker-data/lists/data-list-nested.rq
new file mode 100644
index 000000000..3528c527a
--- /dev/null
+++ b/tests/libtracker-data/lists/data-list-nested.rq
@@ -0,0 +1,17 @@
+INSERT {
+  ([ a example:A ; example:label "elem1" ;
+       example:list ([ a example:A ; example:label "elem1-1" ]) ]
+   [ a example:A ; example:label "elem2" ;
+       example:list ([ a example:A ; example:label "elem2-1" ]
+                     [ a example:A ; example:label "elem2-2" ]) ]
+   [ a example:A ; example:label "elem3" ;
+       example:list ([ a example:A ; example:label "elem3-1" ]
+                     [ a example:A ; example:label "elem3-2" ]
+                     [ a example:A ; example:label "elem3-3" ]) ]
+   [ a example:A ; example:label "elem4" ;
+       example:list ([ a example:A ; example:label "elem4-1" ]
+                     [ a example:A ; example:label "elem4-2" ]
+                     [ a example:A ; example:label "elem4-3" ]
+                     [ a example:A ; example:label "elem4-4" ]) ]
+  ) a example:A ; example:label 'root' .
+}
diff --git a/tests/libtracker-data/lists/list-in-object.out b/tests/libtracker-data/lists/list-in-object.out
new file mode 100644
index 000000000..a5887b21c
--- /dev/null
+++ b/tests/libtracker-data/lists/list-in-object.out
@@ -0,0 +1,4 @@
+"elem1"
+"elem2"
+"elem3"
+"elem4"
diff --git a/tests/libtracker-data/lists/list-in-object.rq b/tests/libtracker-data/lists/list-in-object.rq
new file mode 100644
index 000000000..6c840fcf5
--- /dev/null
+++ b/tests/libtracker-data/lists/list-in-object.rq
@@ -0,0 +1,2 @@
+SELECT example:label(?e) { ?u example:label 'root' ; example:list ?l .
+                           ?l rdf:rest*/rdf:first ?e }
diff --git a/tests/libtracker-data/lists/list-in-select.out b/tests/libtracker-data/lists/list-in-select.out
new file mode 100644
index 000000000..f7a095b0a
--- /dev/null
+++ b/tests/libtracker-data/lists/list-in-select.out
@@ -0,0 +1 @@
+"root"
diff --git a/tests/libtracker-data/lists/list-in-select.rq b/tests/libtracker-data/lists/list-in-select.rq
new file mode 100644
index 000000000..503952d17
--- /dev/null
+++ b/tests/libtracker-data/lists/list-in-select.rq
@@ -0,0 +1,4 @@
+SELECT example:label(?u) { ?u example:list ( [ example:label 'elem1' ]
+                                             [ example:label 'elem2' ]
+                                             [ example:label 'elem3' ]
+                                             [ example:label 'elem4' ] ) }
diff --git a/tests/libtracker-data/lists/list-in-subject.out b/tests/libtracker-data/lists/list-in-subject.out
new file mode 100644
index 000000000..a5887b21c
--- /dev/null
+++ b/tests/libtracker-data/lists/list-in-subject.out
@@ -0,0 +1,4 @@
+"elem1"
+"elem2"
+"elem3"
+"elem4"
diff --git a/tests/libtracker-data/lists/list-in-subject.rq b/tests/libtracker-data/lists/list-in-subject.rq
new file mode 100644
index 000000000..1300e7cfc
--- /dev/null
+++ b/tests/libtracker-data/lists/list-in-subject.rq
@@ -0,0 +1,2 @@
+SELECT example:label(?e) { ?u example:label 'root' .
+                           ?u rdf:rest*/rdf:first ?e }
diff --git a/tests/libtracker-data/lists/list-nested.out b/tests/libtracker-data/lists/list-nested.out
new file mode 100644
index 000000000..c4503b7e5
--- /dev/null
+++ b/tests/libtracker-data/lists/list-nested.out
@@ -0,0 +1,10 @@
+"elem1"        "elem1-1"
+"elem2"        "elem2-1"
+"elem2"        "elem2-2"
+"elem3"        "elem3-1"
+"elem3"        "elem3-2"
+"elem3"        "elem3-3"
+"elem4"        "elem4-1"
+"elem4"        "elem4-2"
+"elem4"        "elem4-3"
+"elem4"        "elem4-4"
diff --git a/tests/libtracker-data/lists/list-nested.rq b/tests/libtracker-data/lists/list-nested.rq
new file mode 100644
index 000000000..24d97c6d7
--- /dev/null
+++ b/tests/libtracker-data/lists/list-nested.rq
@@ -0,0 +1 @@
+SELECT ?r ?l { ?u example:label ?r ; example:list/rdf:rest*/rdf:first/example:label ?l } order by ?r ?l
diff --git a/tests/libtracker-data/lists/test.ontology b/tests/libtracker-data/lists/test.ontology
new file mode 100644
index 000000000..d541030cb
--- /dev/null
+++ b/tests/libtracker-data/lists/test.ontology
@@ -0,0 +1,19 @@
+@prefix example: <http://example/> .
+@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:list a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range rdf:List .
+
+example:label a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:string .
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index b865f19c0..1b0ff46de 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -158,6 +158,10 @@ const TestInfo tests[] = {
        { "langstring/match-non-langstring", "langstring/data", FALSE },
        { "langstring/langmatches", "langstring/data", FALSE },
        { "langstring/strlang", "langstring/data", FALSE },
+       { "lists/list-in-object", "lists/data-list-in-object", FALSE },
+       { "lists/list-in-subject", "lists/data-list-in-subject", FALSE },
+       { "lists/list-in-select", "lists/data-list-in-select", FALSE },
+       { "lists/list-nested", "lists/data-list-nested", FALSE },
        { "optional/q-opt-complex-1", "optional/complex-data-1", FALSE },
        { "optional/simple-optional-triple", "optional/simple-optional-triple", FALSE },
        { "regex/regex-query-001", "regex/regex-data-01", FALSE },


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