This is an HTML version of a test manifest. The JSON-LD version of this manifest may be found at manifest.jsonld. The manifest vocabulary is described in the JSON-LD Test Vocabulary (JSON-LD, Turtle) and is based on the RDF Test Vocabulary.
The JSON-LD Test Suite is a set of tests that can be used to verify JSON-LD Processor conformance to the set of specifications that constitute JSON-LD. The goal of the suite is to provide an easy and comprehensive JSON-LD testing solution for developers creating JSON-LD Processors.
The JSON-LD API Specification maintains its own test suite.
The expected results can be compared using RDF Dataset Isomorphism.
Stream-ToRdf tests may have a expandContext
option, which is treated
as an IRI relative to the manifest.
For NegativeEvaluationTests, the result is a string associated with the expected error code.
Test results that include a context input presume that the context is provided locally, and not from the referenced location, thus the results will include the content of the context file, rather than a reference.
The top-level manifest references the specific test manifests, which in turn reference each test associated with a particular type of behavior. Implementations create their own infrastructure for running the test suite. In particular, the following should be considered:
@list
. (This may be difficult for compacted results, where array value ordering is dependent on the associated term definition)._:b0
may continue to use a simple object comparison. Otherwise, implementations should take this into consideration. (One way to do this may be to reduce both results and expected to datsets to extract a bijective mapping of blank node labels between the two datasets as described in RDF Dataset Isomorphism).If algorithms are invoked with the ordered
flag set to true
, simple JSON Object comparison may be used, as the order of all arrays will be preserved (except for fromRdf, unless the input quads are also ordered). If ordered
is false
, then the following algorithm will ensure arrays other than values of @list
are compared without regard to order.
JSON-LD Object comparison compares JSON objects, arrays, and values recursively for equality.
@list
). Each item within the array must be equivalent to an item in the array being compared to by using the comparison algorithm recursively. For values of @list
, the order of these items is significant.@language
, and other places where language tags may be used are specified in lowercase in the test results. Implementations should either normalize language tags for testing purposes, or compare language tags in a case-independent way.Note that some tests require re-expansion and comparison, as list values may exist as values of properties that have @container: @list
and the comparison algorithm will not consider ordering significant.
The top-level manifest references the specific test manifests, which in turn reference each test associated with a particular type of behavior. Implementations create their own infrastructure for running the test suite. In particular, the following should be considered:
@list
. (This may be difficult for compacted results, where array value ordering is dependent on the associated term definition).useJCS
option._:b0
may continue to use a simple object comparison. Otherwise, implementations should take this into consideration. (One way to do this may be to reduce both results and expected to datsets to extract a bijective mapping of blank node labels between the two datasets as described in RDF Dataset Isomorphism).If you would like to contribute a new test or a fix to an existing test, please follow these steps:
Distributed under the W3C Test Suite License. To contribute to a W3C Test Suite, see the policies and contribution forms.
UNDER THE EXCLUSIVE LICENSE, THIS DOCUMENT AND ALL DOCUMENTS, TESTS AND SOFTWARE THAT LINK THIS STATEMENT ARE PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
This manifest loads additional manifests for specific behavior tests