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

  1. remiceres commented on Sep 29, 2026

    @remiceres
    Contributor

    Resolved via PR #612

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