Skip to content

fix(harness): extend numeric normalization to MIN/MAX aggregates and guard missing manifest entries #609

Description

@abdessamad-abdoun

both surfaced while running the full SPARQL 1.1 conformance suite.

1. ComputedNumericResults — add MIN and MAX to numeric column detection

ComputedNumericResults.columns() only treated SUM and AVG as aggregate
functions that produce a computed numeric result requiring lexical normalization.
MIN and MAX also produce computed values and must be normalized the same way
(e.g. "2E-1"^^xsd:double vs "2.0E-1"^^xsd:double are numerically equal).

File: ComputedNumericResults.java
Change: add AggregateFunction.MIN and AggregateFunction.MAX to the
computed() predicate alongside SUM and AVG.

2. W3cTestLoader — filter out test URIs not present in any sub-manifest

When the RDF graph contains type triples for a test URI but that URI never appears as the subject of a mf:name/mf:action triple (i.e. it comes from an included manifest that was not fully loaded), testToManifest has no entry for it. createTestCase would then call testToManifest.get(testUri) → null, and the resulting W3cTestCase has no action or result — it either crashes the executor or produces a misleading failure.

File: W3cTestLoader.java
Change: Add .filter(entry -> testToManifest.containsKey(entry.getKey())) before mapping to W3cTestCase, so orphaned type-only entries are silently skipped.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

featureNew feature or capabilityw3c-conformanceW3C standards compliance (SPARQL 1.1, Turtle, RDF 1.1)

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions