Skip to content

Commit 857fd2a

Browse files
kaseigkellogg
authored andcommitted
Add tests for casting to xsd:double and xsd:decimal.
1 parent 42c93f8 commit 857fd2a

File tree

8 files changed

+357
-9
lines changed

8 files changed

+357
-9
lines changed

sparql11/data-sparql11/cast/cast-bool.srx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,4 +153,3 @@
153153
</result>
154154
</results>
155155
</sparql>
156-
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
PREFIX : <http://example.org/>
2+
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3+
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
4+
SELECT
5+
?a
6+
?v
7+
(xsd:decimal(?v) AS ?decimal)
8+
WHERE {
9+
?a :p ?v .
10+
}
11+
ORDER BY ?s
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
<?xml version="1.0"?>
2+
<sparql
3+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4+
xmlns:xs="http://www.w3.org/2001/XMLSchema#"
5+
xmlns="http://www.w3.org/2005/sparql-results#" >
6+
<head>
7+
<variable name="a"/>
8+
<variable name="v"/>
9+
<variable name="decimal"/>
10+
</head>
11+
<results>
12+
<result>
13+
<binding name="a"><uri>http://example.org/s01</uri></binding>
14+
<binding name="v"><uri>http://example.org/z</uri></binding>
15+
</result>
16+
<result>
17+
<binding name="a"><uri>http://example.org/s02</uri></binding>
18+
<binding name="v"><literal>string</literal></binding>
19+
</result>
20+
<result>
21+
<binding name="a"><uri>http://example.org/s03</uri></binding>
22+
<binding name="v"><literal>-10.2E3</literal></binding>
23+
</result>
24+
<result>
25+
<binding name="a"><uri>http://example.org/s04</uri></binding>
26+
<binding name="v"><literal>+33.3300</literal></binding>
27+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">33.33</literal></binding>
28+
</result>
29+
<result>
30+
<binding name="a"><uri>http://example.org/s05</uri></binding>
31+
<binding name="v"><literal>0.0</literal></binding>
32+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
33+
</result>
34+
<result>
35+
<binding name="a"><uri>http://example.org/s06</uri></binding>
36+
<binding name="v"><literal>0</literal></binding>
37+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
38+
</result>
39+
<result>
40+
<binding name="a"><uri>http://example.org/s07</uri></binding>
41+
<binding name="v"><literal>0E1</literal></binding>
42+
</result>
43+
<result>
44+
<binding name="a"><uri>http://example.org/s08</uri></binding>
45+
<binding name="v"><literal>1.5</literal></binding>
46+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.5</literal></binding>
47+
</result>
48+
<result>
49+
<binding name="a"><uri>http://example.org/s09</uri></binding>
50+
<binding name="v"><literal>1</literal></binding>
51+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
52+
</result>
53+
<result>
54+
<binding name="a"><uri>http://example.org/s10</uri></binding>
55+
<binding name="v"><literal>1E0</literal></binding>
56+
</result>
57+
<result>
58+
<binding name="a"><uri>http://example.org/s11</uri></binding>
59+
<binding name="v"><literal>13</literal></binding>
60+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">13.0</literal></binding>
61+
</result>
62+
<result>
63+
<binding name="a"><uri>http://example.org/s12</uri></binding>
64+
<binding name="v"><literal>2002-10-10T17:00:00Z</literal></binding>
65+
</result>
66+
<result>
67+
<binding name="a"><uri>http://example.org/s13</uri></binding>
68+
<binding name="v"><literal>false</literal></binding>
69+
</result>
70+
<result>
71+
<binding name="a"><uri>http://example.org/s14</uri></binding>
72+
<binding name="v"><literal>true</literal></binding>
73+
</result>
74+
75+
<result>
76+
<binding name="a"><uri>http://example.org/b01</uri></binding>
77+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
78+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
79+
</result>
80+
<result>
81+
<binding name="a"><uri>http://example.org/b02</uri></binding>
82+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">false</literal></binding>
83+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
84+
</result>
85+
86+
<result>
87+
<binding name="a"><uri>http://example.org/n01</uri></binding>
88+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">0</literal></binding>
89+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0</literal></binding>
90+
</result>
91+
<result>
92+
<binding name="a"><uri>http://example.org/n02</uri></binding>
93+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal></binding>
94+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
95+
</result>
96+
<result>
97+
<binding name="a"><uri>http://example.org/n03</uri></binding>
98+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">-1</literal></binding>
99+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-1.0</literal></binding>
100+
</result>
101+
<result>
102+
<binding name="a"><uri>http://example.org/n04</uri></binding>
103+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
104+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
105+
</result>
106+
<result>
107+
<binding name="a"><uri>http://example.org/n05</uri></binding>
108+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
109+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
110+
</result>
111+
<result>
112+
<binding name="a"><uri>http://example.org/n06</uri></binding>
113+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-1.0</literal></binding>
114+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-1.0</literal></binding>
115+
</result>
116+
<result>
117+
<binding name="a"><uri>http://example.org/n07</uri></binding>
118+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0.0</literal></binding>
119+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
120+
</result>
121+
<result>
122+
<binding name="a"><uri>http://example.org/n08</uri></binding>
123+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.0</literal></binding>
124+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
125+
</result>
126+
<result>
127+
<binding name="a"><uri>http://example.org/n09</uri></binding>
128+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">0.0</literal></binding>
129+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
130+
</result>
131+
<result>
132+
<binding name="a"><uri>http://example.org/n10</uri></binding>
133+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">1.0</literal></binding>
134+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
135+
</result>
136+
<result>
137+
<binding name="a"><uri>http://example.org/n11</uri></binding>
138+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">1.25</literal></binding>
139+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.25</literal></binding>
140+
</result>
141+
<result>
142+
<binding name="a"><uri>http://example.org/n12</uri></binding>
143+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-7.875</literal></binding>
144+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-7.875</literal></binding>
145+
</result>
146+
<result>
147+
<binding name="a"><uri>http://example.org/n13</uri></binding>
148+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">2.5</literal></binding>
149+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">2.5</literal></binding>
150+
</result>
151+
<result>
152+
<binding name="a"><uri>http://example.org/n14</uri></binding>
153+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-2.5</literal></binding>
154+
<binding name="decimal"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-2.5</literal></binding>
155+
</result>
156+
</results>
157+
</sparql>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
PREFIX : <http://example.org/>
2+
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3+
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
4+
SELECT
5+
?a
6+
?v
7+
(xsd:double(?v) AS ?double)
8+
WHERE {
9+
?a :p ?v .
10+
}
11+
ORDER BY ?s
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
<?xml version="1.0"?>
2+
<sparql
3+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
4+
xmlns:xs="http://www.w3.org/2001/XMLSchema#"
5+
xmlns="http://www.w3.org/2005/sparql-results#" >
6+
<head>
7+
<variable name="a"/>
8+
<variable name="v"/>
9+
<variable name="double"/>
10+
</head>
11+
<results>
12+
<result>
13+
<binding name="a"><uri>http://example.org/s01</uri></binding>
14+
<binding name="v"><uri>http://example.org/z</uri></binding>
15+
</result>
16+
<result>
17+
<binding name="a"><uri>http://example.org/s02</uri></binding>
18+
<binding name="v"><literal>string</literal></binding>
19+
</result>
20+
<result>
21+
<binding name="a"><uri>http://example.org/s03</uri></binding>
22+
<binding name="v"><literal>-10.2E3</literal></binding>
23+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">-1.02E4</literal></binding>
24+
</result>
25+
<result>
26+
<binding name="a"><uri>http://example.org/s04</uri></binding>
27+
<binding name="v"><literal>+33.3300</literal></binding>
28+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">3.333E1</literal></binding>
29+
</result>
30+
<result>
31+
<binding name="a"><uri>http://example.org/s05</uri></binding>
32+
<binding name="v"><literal>0.0</literal></binding>
33+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0E0</literal></binding>
34+
</result>
35+
<result>
36+
<binding name="a"><uri>http://example.org/s06</uri></binding>
37+
<binding name="v"><literal>0</literal></binding>
38+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0</literal></binding>
39+
</result>
40+
<result>
41+
<binding name="a"><uri>http://example.org/s07</uri></binding>
42+
<binding name="v"><literal>0E1</literal></binding>
43+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0E0</literal></binding>
44+
</result>
45+
<result>
46+
<binding name="a"><uri>http://example.org/s08</uri></binding>
47+
<binding name="v"><literal>1.5</literal></binding>
48+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.5E0</literal></binding>
49+
</result>
50+
<result>
51+
<binding name="a"><uri>http://example.org/s09</uri></binding>
52+
<binding name="v"><literal>1</literal></binding>
53+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1</literal></binding>
54+
</result>
55+
<result>
56+
<binding name="a"><uri>http://example.org/s10</uri></binding>
57+
<binding name="v"><literal>1E0</literal></binding>
58+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1E0</literal></binding>
59+
</result>
60+
<result>
61+
<binding name="a"><uri>http://example.org/s11</uri></binding>
62+
<binding name="v"><literal>13</literal></binding>
63+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">13</literal></binding>
64+
</result>
65+
<result>
66+
<binding name="a"><uri>http://example.org/s12</uri></binding>
67+
<binding name="v"><literal>2002-10-10T17:00:00Z</literal></binding>
68+
</result>
69+
<result>
70+
<binding name="a"><uri>http://example.org/s13</uri></binding>
71+
<binding name="v"><literal>false</literal></binding>
72+
</result>
73+
<result>
74+
<binding name="a"><uri>http://example.org/s14</uri></binding>
75+
<binding name="v"><literal>true</literal></binding>
76+
</result>
77+
78+
<result>
79+
<binding name="a"><uri>http://example.org/b01</uri></binding>
80+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
81+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.0E0</literal></binding>
82+
</result>
83+
<result>
84+
<binding name="a"><uri>http://example.org/b02</uri></binding>
85+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">false</literal></binding>
86+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0E0</literal></binding>
87+
</result>
88+
89+
<result>
90+
<binding name="a"><uri>http://example.org/n01</uri></binding>
91+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">0</literal></binding>
92+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0</literal></binding>
93+
</result>
94+
<result>
95+
<binding name="a"><uri>http://example.org/n02</uri></binding>
96+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal></binding>
97+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.0</literal></binding>
98+
</result>
99+
<result>
100+
<binding name="a"><uri>http://example.org/n03</uri></binding>
101+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">-1</literal></binding>
102+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">-1.0</literal></binding>
103+
</result>
104+
<result>
105+
<binding name="a"><uri>http://example.org/n04</uri></binding>
106+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">0.0</literal></binding>
107+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0.0</literal></binding>
108+
</result>
109+
<result>
110+
<binding name="a"><uri>http://example.org/n05</uri></binding>
111+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">1.0</literal></binding>
112+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.0</literal></binding>
113+
</result>
114+
<result>
115+
<binding name="a"><uri>http://example.org/n06</uri></binding>
116+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-1.0</literal></binding>
117+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">-1.0</literal></binding>
118+
</result>
119+
<result>
120+
<binding name="a"><uri>http://example.org/n07</uri></binding>
121+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0E1</literal></binding>
122+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0.0</literal></binding>
123+
</result>
124+
<result>
125+
<binding name="a"><uri>http://example.org/n08</uri></binding>
126+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1E0</literal></binding>
127+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.0</literal></binding>
128+
</result>
129+
<result>
130+
<binding name="a"><uri>http://example.org/n09</uri></binding>
131+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">0E1</literal></binding>
132+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">0.0</literal></binding>
133+
</result>
134+
<result>
135+
<binding name="a"><uri>http://example.org/n10</uri></binding>
136+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">1E0</literal></binding>
137+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.0</literal></binding>
138+
</result>
139+
<result>
140+
<binding name="a"><uri>http://example.org/n11</uri></binding>
141+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">1.25</literal></binding>
142+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">1.25</literal></binding>
143+
</result>
144+
<result>
145+
<binding name="a"><uri>http://example.org/n12</uri></binding>
146+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-7.875</literal></binding>
147+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">-7.875</literal></binding>
148+
</result>
149+
<result>
150+
<binding name="a"><uri>http://example.org/n13</uri></binding>
151+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">2.5</literal></binding>
152+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">2.5</literal></binding>
153+
</result>
154+
<result>
155+
<binding name="a"><uri>http://example.org/n14</uri></binding>
156+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-2.5</literal></binding>
157+
<binding name="double"><literal datatype="http://www.w3.org/2001/XMLSchema#double">-2.5</literal></binding>
158+
</result>
159+
</results>
160+
</sparql>

sparql11/data-sparql11/cast/cast-float.srx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,3 @@
158158
</result>
159159
</results>
160160
</sparql>
161-
162-
163-
<!-- TODO: csting xs:decimal, xs:float or xs:double truncate the source value -->
164-
<!-- TODO: test xsd:float(X^^type-derived-from-float) -->

sparql11/data-sparql11/cast/cast-int.srx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,3 @@
152152
</result>
153153
</results>
154154
</sparql>
155-
156-
157-
<!-- TODO: csting xs:decimal, xs:float or xs:double truncate the source value -->
158-
<!-- TODO: test xsd:integer(X^^type-derived-from-integer) -->

sparql11/data-sparql11/cast/manifest.ttl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
:cast-bool
1313
:cast-int
1414
:cast-float
15+
:cast-double
16+
:cast-decimal
1517
) .
1618

1719
:cast-bool rdf:type mf:QueryEvaluationTest ;
@@ -37,3 +39,19 @@
3739
[ qt:query <cast-float.rq> ;
3840
qt:data <data.ttl> ] ;
3941
mf:result <cast-float.srx> .
42+
43+
:cast-double rdf:type mf:QueryEvaluationTest ;
44+
mf:name "xsd:double cast" ;
45+
dawgt:approval dawgt:Proposed ;
46+
mf:action
47+
[ qt:query <cast-double.rq> ;
48+
qt:data <data.ttl> ] ;
49+
mf:result <cast-double.srx> .
50+
51+
:cast-decimal rdf:type mf:QueryEvaluationTest ;
52+
mf:name "xsd:decimal cast" ;
53+
dawgt:approval dawgt:Proposed ;
54+
mf:action
55+
[ qt:query <cast-decimal.rq> ;
56+
qt:data <data.ttl> ] ;
57+
mf:result <cast-decimal.srx> .

0 commit comments

Comments
 (0)