SPARQL test coverage has quite a few holes (please complete if you find other missing elements):
Syntax:
Evaluation:
no DISTINCT aggregate SPARQL 1.1: aggregates with DISTINCT #262
no xsd:float - xsd:float SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no xsd:double - xsd:double SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no xsd:decimal - xsd:decimal SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no xsd:float * xsd:float SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no xsd:double * xsd:double SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no xsd:decimal * xsd:decimal SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no division test SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no + xsd:float SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no + xsd:double SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no + xsd:decimal SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no - xsd:float SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no - xsd:double SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no - xsd:decimal SPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261
no COALESCE() (without arguments) SPARQL 1.1: cover COALESCE without arguments #258
no DATATYPE("foo"@en--ltr) (on directional language string) SPARQL 1.2: rdf:dirLangString with DATATYPE, CONCAT and CONTAINS #273
no IRI(<ex:foo>) (called on an IRI) SPARQL 1.1: test IRI()/URI() on an IRI #263
no ABS on xsd:float and xsd:double SPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269
no CEIL on xsd:float and xsd:double SPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269
no FLOOR on xsd:float and xsd:double SPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269
no ROUND on xsd:float and xsd:double SPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269
no testing of float and double special values (NaN, +Inf and -Inf), especially on comparison and ordering)
no deep testing of regex syntax
no testing of rdf:dirLangString on string manipulation functions SPARQL 1.2: rdf:dirLangString with DATATYPE, CONCAT and CONTAINS #273
no ORDER BY on xsd:dateTime
Evaluation of SELECT ?s WHERE { ?s ex:p* ex:o } on the empty dataset (returns ex:o) SPARQL 1.1: property path: * and ? with a set start/end do not check if the term exists in the graph #264
SPARQL test coverage has quite a few holes (please complete if you find other missing elements):
Syntax:
LANGDIR("foo"@en--ltr) SPARQL 1.2: add a test with directional language string literals in the query #242LANGDIR("foo"@en--foo) SPARQL: add negative syntax test for invalid language direction #247DECIMAL_POSITIVE(+2.1) SPARQL 1.0: cover positive numeric literals #272DOUBLE_POSITIVE(+2e1) SPARQL 1.0: cover positive numeric literals #272StrReplaceExpressionwith 4 arguments (REPLACE("abab", "B.", "Z","i")) SPARQL 1.1: REPLACE: cover regex options #268BuiltInCallwithSHA384(SHA384("foo")) SPARQL 1.1: cover SHA384 #257ExprTripleTermSubjectandExprTripleTermObjectwithIRI,RDFLiteral,NumericLiteralorBooleanLiteralSPARQL 1.2: cover literals in triple terms #256TripleTermDataObjectwith aRDFLiteral,NumericLiteralorBooleanLiteralSPARQL 1.2: cover literals in triple terms #256TripleTermObjectwithRDFLiteral,NumericLiteralorBooleanLiteralSPARQL 1.2: cover literals in triple terms #256ReifiedTripleObjectwithNumericLiteralorBooleanLiteralSPARQL 1.2: cover literals in triple terms #256PathOneInPropertySetwithaor^aSPARQL 1.1: cover !a and !^a in property paths #270HavingClausewith multiple children (HAVING (COUNT(?s) > 1) (COUNT(?o) > 1)) SPARQL 1.1: cover GROUP BY with a function and HAVING with multiple clauses #259GroupConditionwithBuiltInCall(GROUP BY LANG(?s)) SPARQL 1.1: cover GROUP BY with a function and HAVING with multiple clauses #259GroupConditionwithFunctionCall(GROUP BY xsd:boolean(?value)) SPARQL 1.1: cover GROUP BY with a function and HAVING with multiple clauses #259Evaluation:
DISTINCTaggregate SPARQL 1.1: aggregates with DISTINCT #262xsd:float - xsd:floatSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261xsd:double - xsd:doubleSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261xsd:decimal - xsd:decimalSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261xsd:float * xsd:floatSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261xsd:double * xsd:doubleSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261xsd:decimal * xsd:decimalSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261+ xsd:floatSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261+ xsd:doubleSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261+ xsd:decimalSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261- xsd:floatSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261- xsd:doubleSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261- xsd:decimalSPARQL 1.0: cover all "main" numerical datatypes with base + - * / operators #261COALESCE()(without arguments) SPARQL 1.1: cover COALESCE without arguments #258DATATYPE("foo"@en--ltr)(on directional language string) SPARQL 1.2: rdf:dirLangString with DATATYPE, CONCAT and CONTAINS #273IRI(<ex:foo>)(called on an IRI) SPARQL 1.1: test IRI()/URI() on an IRI #263ABSonxsd:floatandxsd:doubleSPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269CEILonxsd:floatandxsd:doubleSPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269FLOORonxsd:floatandxsd:doubleSPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269ROUNDonxsd:floatandxsd:doubleSPARQL 1.1: test ABS, CEIL, FLOOR, ISNUMERIC and ROUND on xsd:float and xsd:double #269rdf:dirLangStringon string manipulation functions SPARQL 1.2: rdf:dirLangString with DATATYPE, CONCAT and CONTAINS #273xsd:dateTimeSELECT ?s WHERE { ?s ex:p* ex:o }on the empty dataset (returnsex:o) SPARQL 1.1: property path: * and ? with a set start/end do not check if the term exists in the graph #264