Skip to content

Commit 42c93f8

Browse files
kaseigkellogg
authored andcommitted
Add tests for casting to xsd:integer and xsd:float.
1 parent d86c095 commit 42c93f8

File tree

7 files changed

+401
-2
lines changed

7 files changed

+401
-2
lines changed

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

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
</result>
4141
<result>
4242
<binding name="a"><uri>http://example.org/s08</uri></binding>
43-
<binding name="v"><literal>1.0</literal></binding>
43+
<binding name="v"><literal>1.5</literal></binding>
4444
</result>
4545
<result>
4646
<binding name="a"><uri>http://example.org/s09</uri></binding>
@@ -70,6 +70,16 @@
7070
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
7171
</result>
7272

73+
<result>
74+
<binding name="a"><uri>http://example.org/b01</uri></binding>
75+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
76+
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
77+
</result>
78+
<result>
79+
<binding name="a"><uri>http://example.org/b02</uri></binding>
80+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">false</literal></binding>
81+
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">false</literal></binding>
82+
</result>
7383

7484
<result>
7585
<binding name="a"><uri>http://example.org/n01</uri></binding>
@@ -121,6 +131,26 @@
121131
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">1E0</literal></binding>
122132
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
123133
</result>
134+
<result>
135+
<binding name="a"><uri>http://example.org/n11</uri></binding>
136+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">1.25</literal></binding>
137+
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
138+
</result>
139+
<result>
140+
<binding name="a"><uri>http://example.org/n12</uri></binding>
141+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-7.875</literal></binding>
142+
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
143+
</result>
144+
<result>
145+
<binding name="a"><uri>http://example.org/n13</uri></binding>
146+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">2.5</literal></binding>
147+
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
148+
</result>
149+
<result>
150+
<binding name="a"><uri>http://example.org/n14</uri></binding>
151+
<binding name="v"><literal datatype="http://www.w3.org/2001/XMLSchema#decimal">-2.5</literal></binding>
152+
<binding name="boolean"><literal datatype="http://www.w3.org/2001/XMLSchema#boolean">true</literal></binding>
153+
</result>
124154
</results>
125155
</sparql>
126156

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:float(?v) AS ?float)
8+
WHERE {
9+
?a :p ?v .
10+
}
11+
ORDER BY ?s
Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
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="float"/>
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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">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="float"><literal datatype="http://www.w3.org/2001/XMLSchema#float">-2.5</literal></binding>
158+
</result>
159+
</results>
160+
</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) -->
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:integer(?v) AS ?integer)
8+
WHERE {
9+
?a :p ?v .
10+
}
11+
ORDER BY ?s

0 commit comments

Comments
 (0)