Skip to content

Commit 6c6bbf4

Browse files
kaseigkellogg
authored andcommitted
Add tests for functions over string with characters outside the BMP.
1 parent 4dd2ac9 commit 6c6bbf4

File tree

8 files changed

+183
-0
lines changed

8 files changed

+183
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
2+
@prefix : <http://example.org/> .
3+
4+
# string data with characters outside the basic multilingual plane
5+
:s8 :str "\U0001F46A"^^xsd:string . # U+1F46A FAMILY
6+
:s9 :str "\U0001F468\u200D\U0001F469\u200D\U0001F467\u200D\U0001F466"^^xsd:string . # single emoji grapheme containing: U+1F468 MAN, U+200D ZERO WIDTH JOINER, U+1F469 WOMAN, U+200D ZERO WIDTH JOINER, U+1F467 GIRL, U+200D ZERO WIDTH JOINER, U+1F466 BOY
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
3+
<head>
4+
<variable name="s"/>
5+
<variable name="str"/>
6+
<variable name="encoded"/>
7+
</head>
8+
<results>
9+
<result>
10+
<binding name="s"><uri>http://example.org/s8</uri></binding>
11+
<binding name="str"><literal datatype="http://www.w3.org/2001/XMLSchema#string">πŸ‘ͺ</literal></binding>
12+
<binding name="encoded"><literal>%F0%9F%91%AA</literal></binding>
13+
</result>
14+
<result>
15+
<binding name="s"><uri>http://example.org/s9</uri></binding>
16+
<binding name="str"><literal datatype="http://www.w3.org/2001/XMLSchema#string">πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦</literal></binding>
17+
<binding name="encoded"><literal>%F0%9F%91%A8%E2%80%8D%F0%9F%91%A9%E2%80%8D%F0%9F%91%A7%E2%80%8D%F0%9F%91%A6</literal></binding>
18+
</result>
19+
</results>
20+
</sparql>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
3+
<head>
4+
<variable name="s"/>
5+
<variable name="lstr"/>
6+
</head>
7+
<results>
8+
<result>
9+
<binding name="s"><uri>http://example.org/s8</uri></binding>
10+
<binding name="lstr"><literal>πŸ‘ͺ</literal></binding>
11+
</result>
12+
<result>
13+
<binding name="s"><uri>http://example.org/s9</uri></binding>
14+
<binding name="lstr"><literal>πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦</literal></binding>
15+
</result>
16+
</results>
17+
</sparql>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
3+
<head>
4+
<variable name="str"/>
5+
<variable name="len"/>
6+
</head>
7+
<results>
8+
<result>
9+
<binding name="str"><literal>πŸ‘ͺ</literal></binding>
10+
<binding name="len"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal></binding>
11+
</result>
12+
<result>
13+
<binding name="str"><literal>πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦</literal></binding>
14+
<binding name="len"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">7</literal></binding>
15+
</result>
16+
</results>
17+
</sparql>

β€Žsparql11/data-sparql11/functions/manifest.ttl

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,17 @@
2424
:concat01
2525
:concat02
2626
:substring01
27+
:substring01-non-bmp
2728
:substring02
29+
:substring02-non-bmp
2830
:length01
31+
:length01-non-bmp
2932
:ucase01
33+
:ucase01-non-bmp
3034
:lcase01
35+
:lcase01-non-bmp
3136
:encode01
37+
:encode01-non-bmp
3238
:contains01
3339
:starts01
3440
:ends01
@@ -226,6 +232,16 @@
226232
mf:result <substring01.srx> ;
227233
.
228234

235+
:substring01-non-bmp rdf:type mf:QueryEvaluationTest ;
236+
mf:name "SUBSTR() (3-argument) on non-BMP unicode strings" ;
237+
mf:feature sparql:substr ;
238+
dawgt:approval dawgt:Proposed ;
239+
mf:action
240+
[ qt:query <substring01.rq> ;
241+
qt:data <data5.ttl> ] ;
242+
mf:result <substring01-non-bmp.srx> ;
243+
.
244+
229245
:substring02 rdf:type mf:QueryEvaluationTest ;
230246
mf:name "SUBSTR() (2-argument)" ;
231247
mf:feature sparql:substr ;
@@ -237,6 +253,16 @@
237253
mf:result <substring02.srx> ;
238254
.
239255

256+
:substring02-non-bmp rdf:type mf:QueryEvaluationTest ;
257+
mf:name "SUBSTR() (2-argument) on non-BMP unicode strings" ;
258+
mf:feature sparql:substr ;
259+
dawgt:approval dawgt:Proposed ;
260+
mf:action
261+
[ qt:query <substring02.rq> ;
262+
qt:data <data5.ttl> ] ;
263+
mf:result <substring02-non-bmp.srx> ;
264+
.
265+
240266
:length01 rdf:type mf:QueryEvaluationTest ;
241267
mf:name "STRLEN()" ;
242268
mf:feature sparql:strlen ;
@@ -248,6 +274,16 @@
248274
mf:result <length01.srx> ;
249275
.
250276

277+
:length01-non-bmp rdf:type mf:QueryEvaluationTest ;
278+
mf:name "STRLEN() on non-BMP unicode strings" ;
279+
mf:feature sparql:strlen ;
280+
dawgt:approval dawgt:Proposed ;
281+
mf:action
282+
[ qt:query <length01.rq> ;
283+
qt:data <data5.ttl> ] ;
284+
mf:result <length01-non-bmp.srx> ;
285+
.
286+
251287
:ucase01 rdf:type mf:QueryEvaluationTest ;
252288
mf:name "UCASE()" ;
253289
mf:feature sparql:ucase ;
@@ -259,6 +295,16 @@
259295
mf:result <ucase01.srx> ;
260296
.
261297

298+
:ucase01-non-bmp rdf:type mf:QueryEvaluationTest ;
299+
mf:name "UCASE() on non-BMP unicode strings" ;
300+
mf:feature sparql:ucase ;
301+
dawgt:approval dawgt:Proposed ;
302+
mf:action
303+
[ qt:query <ucase01.rq> ;
304+
qt:data <data5.ttl> ] ;
305+
mf:result <ucase01-non-bmp.srx> ;
306+
.
307+
262308
:lcase01 rdf:type mf:QueryEvaluationTest ;
263309
mf:name "LCASE()" ;
264310
mf:feature sparql:lcase ;
@@ -270,6 +316,16 @@
270316
mf:result <lcase01.srx> ;
271317
.
272318

319+
:lcase01-non-bmp rdf:type mf:QueryEvaluationTest ;
320+
mf:name "LCASE() on non-BMP unicode strings" ;
321+
mf:feature sparql:lcase ;
322+
dawgt:approval dawgt:Proposed ;
323+
mf:action
324+
[ qt:query <lcase01.rq> ;
325+
qt:data <data5.ttl> ] ;
326+
mf:result <lcase01-non-bmp.srx> ;
327+
.
328+
273329
:encode01 rdf:type mf:QueryEvaluationTest ;
274330
mf:name "ENCODE_FOR_URI()" ;
275331
mf:feature sparql:encode_for_uri ;
@@ -281,6 +337,16 @@
281337
mf:result <encode01.srx> ;
282338
.
283339

340+
:encode01-non-bmp rdf:type mf:QueryEvaluationTest ;
341+
mf:name "ENCODE_FOR_URI() on non-BMP unicode strings" ;
342+
mf:feature sparql:encode_for_uri ;
343+
dawgt:approval dawgt:Proposed ;
344+
mf:action
345+
[ qt:query <encode01.rq> ;
346+
qt:data <data5.ttl> ] ;
347+
mf:result <encode01-non-bmp.srx> ;
348+
.
349+
284350
:contains01 rdf:type mf:QueryEvaluationTest ;
285351
mf:name "CONTAINS()" ;
286352
mf:feature sparql:contains ;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
3+
<head>
4+
<variable name="s"/>
5+
<variable name="str"/>
6+
<variable name="substr"/>
7+
</head>
8+
<results>
9+
<result>
10+
<binding name="s"><uri>http://example.org/s8</uri></binding>
11+
<binding name="str"><literal>πŸ‘ͺ</literal></binding>
12+
<binding name="substr"><literal>πŸ‘ͺ</literal></binding>
13+
</result>
14+
<result>
15+
<binding name="s"><uri>http://example.org/s9</uri></binding>
16+
<binding name="str"><literal>πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦</literal></binding>
17+
<binding name="substr"><literal>πŸ‘¨</literal></binding>
18+
</result>
19+
</results>
20+
</sparql>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
3+
<head>
4+
<variable name="s"/>
5+
<variable name="str"/>
6+
<variable name="substr"/>
7+
</head>
8+
<results>
9+
<result>
10+
<binding name="s"><uri>http://example.org/s8</uri></binding>
11+
<binding name="str"><literal>πŸ‘ͺ</literal></binding>
12+
<binding name="substr"><literal></literal></binding>
13+
</result>
14+
<result>
15+
<binding name="s"><uri>http://example.org/s9</uri></binding>
16+
<binding name="str"><literal>πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦</literal></binding>
17+
<binding name="substr"><literal>β€πŸ‘©β€πŸ‘§β€πŸ‘¦</literal></binding>
18+
</result>
19+
</results>
20+
</sparql>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
3+
<head>
4+
<variable name="s"/>
5+
<variable name="ustr"/>
6+
</head>
7+
<results>
8+
<result>
9+
<binding name="s"><uri>http://example.org/s8</uri></binding>
10+
<binding name="ustr"><literal>πŸ‘ͺ</literal></binding>
11+
</result>
12+
<result>
13+
<binding name="s"><uri>http://example.org/s9</uri></binding>
14+
<binding name="ustr"><literal>πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦</literal></binding>
15+
</result>
16+
</results>
17+
</sparql>

0 commit comments

Comments
Β (0)