Manifest
name: Expansion
description: These tests implement the requirements for the JSON-LD [Expansion Algorithm](https://www.w3.org/TR/json-ld11-api/#expansion-algorithm).
base iri: https://w3c.github.io/json-ld-api/tests/
sequence: t0001
sequence: t0002
sequence: t0003
sequence: t0004
sequence: t0005
sequence: t0006
sequence: t0007
sequence: t0008
sequence: t0009
sequence: t0010
sequence: t0011
sequence: t0012
sequence: t0013
sequence: t0014
sequence: t0015
sequence: t0016
sequence: t0017
sequence: t0018
sequence: t0019
sequence: t0020
sequence: t0021
sequence: t0022
sequence: t0023
sequence: t0024
sequence: t0025
sequence: t0026
sequence: t0027
sequence: t0028
sequence: t0029
sequence: t0030
sequence: t0031
sequence: t0032
sequence: t0033
sequence: t0034
sequence: t0035
sequence: t0036
sequence: t0037
sequence: t0038
sequence: t0039
sequence: t0040
sequence: t0041
sequence: t0042
sequence: t0043
sequence: t0044
sequence: t0045
sequence: t0046
sequence: t0047
sequence: t0048
sequence: t0049
sequence: t0050
sequence: t0051
sequence: t0052
sequence: t0053
sequence: t0054
sequence: t0055
sequence: t0056
sequence: t0057
sequence: t0058
sequence: t0059
sequence: t0060
sequence: t0061
sequence: t0062
sequence: t0063
sequence: t0064
sequence: t0065
sequence: t0066
sequence: t0067
sequence: t0068
sequence: t0069
sequence: t0070
sequence: t0071
sequence: t0072
sequence: t0073
sequence: t0074
sequence: t0075
sequence: t0076

t0001
type: PositiveEvaluationTest
type: ExpandTest
name: drop free-floating nodes
purpose: Expand drops unreferenced nodes having only @id
input: expand/0001-in.jsonld
expect: expand/0001-out.jsonld

t0002
type: PositiveEvaluationTest
type: ExpandTest
name: basic
purpose: Expanding terms with different types of values
input: expand/0002-in.jsonld
expect: expand/0002-out.jsonld

t0003
type: PositiveEvaluationTest
type: ExpandTest
name: drop null and unmapped properties
purpose: Verifies that null values and unmapped properties are removed from expanded output
input: expand/0003-in.jsonld
expect: expand/0003-out.jsonld

t0004
type: PositiveEvaluationTest
type: ExpandTest
name: optimize @set, keep empty arrays
purpose: Uses of @set are removed in expansion; values of @set, or just plain values which are empty arrays are retained
input: expand/0004-in.jsonld
expect: expand/0004-out.jsonld

t0005
type: PositiveEvaluationTest
type: ExpandTest
name: do not expand aliased @id/@type
purpose: If a keyword is aliased, it is not used when expanding
input: expand/0005-in.jsonld
expect: expand/0005-out.jsonld

t0006
type: PositiveEvaluationTest
type: ExpandTest
name: alias keywords
purpose: Aliased keywords expand in resulting document
input: expand/0006-in.jsonld
expect: expand/0006-out.jsonld

t0007
type: PositiveEvaluationTest
type: ExpandTest
name: date type-coercion
purpose: Expand strings to expanded value with @type: xsd:dateTime
input: expand/0007-in.jsonld
expect: expand/0007-out.jsonld

t0008
type: PositiveEvaluationTest
type: ExpandTest
name: @value with @language
purpose: Keep expanded values with @language, drop non-conforming value objects containing just @language
input: expand/0008-in.jsonld
expect: expand/0008-out.jsonld

t0009
type: PositiveEvaluationTest
type: ExpandTest
name: @graph with terms
purpose: Use of @graph to contain multiple nodes within array
input: expand/0009-in.jsonld
expect: expand/0009-out.jsonld

t0010
type: PositiveEvaluationTest
type: ExpandTest
name: native types
purpose: Expanding native scalar retains native scalar within expanded value
input: expand/0010-in.jsonld
expect: expand/0010-out.jsonld

t0011
type: PositiveEvaluationTest
type: ExpandTest
name: coerced @id
purpose: A value of a property with @type: @id coercion expands to a node reference
input: expand/0011-in.jsonld
expect: expand/0011-out.jsonld

t0012
type: PositiveEvaluationTest
type: ExpandTest
name: @graph with embed
purpose: Use of @graph to contain multiple nodes within array
input: expand/0012-in.jsonld
expect: expand/0012-out.jsonld

t0013
type: PositiveEvaluationTest
type: ExpandTest
name: expand already expanded
purpose: Expand does not mess up already expanded document
input: expand/0013-in.jsonld
expect: expand/0013-out.jsonld

t0014
type: PositiveEvaluationTest
type: ExpandTest
name: @set of @value objects with keyword aliases
purpose: Expanding aliased @set and @value
input: expand/0014-in.jsonld
expect: expand/0014-out.jsonld

t0015
type: PositiveEvaluationTest
type: ExpandTest
name: collapse set of sets, keep empty lists
purpose: An array of multiple @set nodes are collapsed into a single array
input: expand/0015-in.jsonld
expect: expand/0015-out.jsonld

t0016
type: PositiveEvaluationTest
type: ExpandTest
name: context reset
purpose: Setting @context to null within an embedded object resets back to initial context state
input: expand/0016-in.jsonld
expect: expand/0016-out.jsonld

t0017
type: PositiveEvaluationTest
type: ExpandTest
name: @graph and @id aliased
purpose: Expanding with @graph and @id aliases
input: expand/0017-in.jsonld
expect: expand/0017-out.jsonld

t0018
type: PositiveEvaluationTest
type: ExpandTest
name: override default @language
purpose: override default @language in terms; only language-tag strings
input: expand/0018-in.jsonld
expect: expand/0018-out.jsonld

t0019
type: PositiveEvaluationTest
type: ExpandTest
name: remove @value = null
purpose: Expanding a value of null removes the value
input: expand/0019-in.jsonld
expect: expand/0019-out.jsonld

t0020
type: PositiveEvaluationTest
type: ExpandTest
name: do not remove @graph if not at top-level
purpose: @graph used under a node is retained
input: expand/0020-in.jsonld
expect: expand/0020-out.jsonld

t0021
type: PositiveEvaluationTest
type: ExpandTest
name: do not remove @graph at top-level if not only property
purpose: @graph used at the top level is retained if there are other properties
input: expand/0021-in.jsonld
expect: expand/0021-out.jsonld

t0022
type: PositiveEvaluationTest
type: ExpandTest
name: expand value with default language
purpose: Expanding with a default language applies that language to string values
input: expand/0022-in.jsonld
expect: expand/0022-out.jsonld

t0023
type: PositiveEvaluationTest
type: ExpandTest
name: Expanding list/set with coercion
purpose: Expanding lists and sets with properties having coercion coerces list/set values
input: expand/0023-in.jsonld
expect: expand/0023-out.jsonld

t0024
type: PositiveEvaluationTest
type: ExpandTest
name: Multiple contexts
purpose: Tests that contexts in an array are merged
input: expand/0024-in.jsonld
expect: expand/0024-out.jsonld

t0025
type: PositiveEvaluationTest
type: ExpandTest
name: Problematic IRI expansion tests
purpose: Expanding different kinds of terms and Compact IRIs
input: expand/0025-in.jsonld
expect: expand/0025-out.jsonld

t0026
type: PositiveEvaluationTest
type: ExpandTest
name: Term definition with @id: @type
purpose: Expanding term mapping to @type uses @type syntax
input: expand/0026-in.jsonld
expect: expand/0026-out.jsonld
option:
  spec version: json-ld-1.0

t0027
type: PositiveEvaluationTest
type: ExpandTest
name: Duplicate values in @list and @set
purpose: Duplicate values in @list and @set are not merged
input: expand/0027-in.jsonld
expect: expand/0027-out.jsonld

t0028
type: PositiveEvaluationTest
type: ExpandTest
name: Use @vocab in properties and @type but not in @id
purpose: @vocab is used to compact properties and @type, but is not used for @id
input: expand/0028-in.jsonld
expect: expand/0028-out.jsonld

t0029
type: PositiveEvaluationTest
type: ExpandTest
name: Relative IRIs
purpose: @base is used to compact @id; test with different relative IRIs
input: expand/0029-in.jsonld
expect: expand/0029-out.jsonld

t0030
type: PositiveEvaluationTest
type: ExpandTest
name: Language maps
purpose: Language Maps expand values to include @language
input: expand/0030-in.jsonld
expect: expand/0030-out.jsonld

t0031
type: PositiveEvaluationTest
type: ExpandTest
name: type-coercion of native types
purpose: Expanding native types with type coercion adds the coerced type to an expanded value representation and retains the native value representation
input: expand/0031-in.jsonld
expect: expand/0031-out.jsonld

t0032
type: PositiveEvaluationTest
type: ExpandTest
name: Null term and @vocab
purpose: Mapping a term to null decouples it from @vocab
input: expand/0032-in.jsonld
expect: expand/0032-out.jsonld

t0033
type: PositiveEvaluationTest
type: ExpandTest
name: Using @vocab with with type-coercion
purpose: Verifies that terms can be defined using @vocab
input: expand/0033-in.jsonld
expect: expand/0033-out.jsonld

t0034
type: PositiveEvaluationTest
type: ExpandTest
name: Multiple properties expanding to the same IRI
purpose: Verifies multiple values from separate terms are deterministically made multiple values of the IRI associated with the terms
input: expand/0034-in.jsonld
expect: expand/0034-out.jsonld

t0035
type: PositiveEvaluationTest
type: ExpandTest
name: Language maps with @vocab, default language, and colliding property
purpose: Pathological tests of language maps
input: expand/0035-in.jsonld
expect: expand/0035-out.jsonld

t0036
type: PositiveEvaluationTest
type: ExpandTest
name: Expanding @index
purpose: Expanding index maps for terms defined with @container: @index
input: expand/0036-in.jsonld
expect: expand/0036-out.jsonld

t0037
type: PositiveEvaluationTest
type: ExpandTest
name: Expanding @reverse
purpose: Expanding @reverse keeps @reverse
input: expand/0037-in.jsonld
expect: expand/0037-out.jsonld

t0038
type: PositiveEvaluationTest
type: ExpandTest
name: Expanding blank node labels
purpose: Blank nodes are not relabeled during expansion
option:
  spec version: json-ld-1.0
input: expand/0038-in.jsonld
expect: expand/0038-out.jsonld

t0039
type: PositiveEvaluationTest
type: ExpandTest
name: Using terms in a reverse-maps
purpose: Terms within @reverse are expanded
input: expand/0039-in.jsonld
expect: expand/0039-out.jsonld

t0040
type: PositiveEvaluationTest
type: ExpandTest
name: language and index expansion on non-objects
purpose: Only invoke language and index map expansion if the value is a JSON object
input: expand/0040-in.jsonld
expect: expand/0040-out.jsonld

t0041
type: PositiveEvaluationTest
type: ExpandTest
name: @language: null
purpose: @language: null resets the default language
input: expand/0041-in.jsonld
expect: expand/0041-out.jsonld

t0042
type: PositiveEvaluationTest
type: ExpandTest
name: Reverse properties
purpose: Expanding terms defined as reverse properties uses @reverse in expanded document
input: expand/0042-in.jsonld
expect: expand/0042-out.jsonld

t0043
type: PositiveEvaluationTest
type: ExpandTest
name: Using reverse properties inside a @reverse-container
purpose: Expanding a reverse property within a @reverse undoes both reversals
input: expand/0043-in.jsonld
expect: expand/0043-out.jsonld

t0044
type: PositiveEvaluationTest
type: ExpandTest
name: Index maps with language mappings
purpose: Ensure index maps use language mapping
input: expand/0044-in.jsonld
expect: expand/0044-out.jsonld

t0045
type: PositiveEvaluationTest
type: ExpandTest
name: Top-level value objects
purpose: Expanding top-level value objects causes them to be removed
input: expand/0045-in.jsonld
expect: expand/0045-out.jsonld

t0046
type: PositiveEvaluationTest
type: ExpandTest
name: Free-floating nodes
purpose: Expanding free-floating nodes causes them to be removed
input: expand/0046-in.jsonld
expect: expand/0046-out.jsonld

t0047
type: PositiveEvaluationTest
type: ExpandTest
name: Free-floating values in sets and free-floating lists
purpose: Free-floating values in sets are removed, free-floating lists are removed completely
input: expand/0047-in.jsonld
expect: expand/0047-out.jsonld

t0048
type: PositiveEvaluationTest
type: ExpandTest
name: Terms are ignored in @id
purpose: Values of @id are not expanded as terms
input: expand/0048-in.jsonld
expect: expand/0048-out.jsonld

t0049
type: PositiveEvaluationTest
type: ExpandTest
name: String values of reverse properties
purpose: String values of a reverse property with @type: @id are treated as IRIs
input: expand/0049-in.jsonld
expect: expand/0049-out.jsonld

t0050
type: PositiveEvaluationTest
type: ExpandTest
name: Term definitions with prefix separate from prefix definitions
purpose: Term definitions using compact IRIs don't inherit the definitions of the prefix
input: expand/0050-in.jsonld
expect: expand/0050-out.jsonld

t0051
type: PositiveEvaluationTest
type: ExpandTest
name: Expansion of keyword aliases in term definitions
purpose: Expanding terms which are keyword aliases
input: expand/0051-in.jsonld
expect: expand/0051-out.jsonld

t0052
type: PositiveEvaluationTest
type: ExpandTest
name: @vocab-relative IRIs in term definitions
purpose: If @vocab is defined, term definitions are expanded relative to @vocab
input: expand/0052-in.jsonld
expect: expand/0052-out.jsonld

t0053
type: PositiveEvaluationTest
type: ExpandTest
name: Expand absolute IRI with @type: @vocab
purpose: Expanding values of properties of @type: @vocab does not further expand absolute IRIs
input: expand/0053-in.jsonld
expect: expand/0053-out.jsonld

t0054
type: PositiveEvaluationTest
type: ExpandTest
name: Expand term with @type: @vocab
purpose: Expanding values of properties of @type: @vocab does not expand term values
input: expand/0054-in.jsonld
expect: expand/0054-out.jsonld

t0055
type: PositiveEvaluationTest
type: ExpandTest
name: Expand @vocab-relative term with @type: @vocab
purpose: Expanding values of properties of @type: @vocab expands relative IRIs using @vocab
input: expand/0055-in.jsonld
expect: expand/0055-out.jsonld

t0056
type: PositiveEvaluationTest
type: ExpandTest
name: Use terms with @type: @vocab but not with @type: @id
purpose: Checks that expansion uses appropriate base depending on term definition having @type @id or @vocab
input: expand/0056-in.jsonld
expect: expand/0056-out.jsonld

t0057
type: PositiveEvaluationTest
type: ExpandTest
name: Expand relative IRI with @type: @vocab
purpose: Relative values of terms with @type: @vocab expand relative to @vocab
input: expand/0057-in.jsonld
expect: expand/0057-out.jsonld

t0058
type: PositiveEvaluationTest
type: ExpandTest
name: Expand compact IRI with @type: @vocab
purpose: Compact IRIs are expanded normally even if term has @type: @vocab
input: expand/0058-in.jsonld
expect: expand/0058-out.jsonld

t0059
type: PositiveEvaluationTest
type: ExpandTest
name: Reset @vocab by setting it to null
purpose: Setting @vocab to null removes a previous definition
input: expand/0059-in.jsonld
expect: expand/0059-out.jsonld

t0060
type: PositiveEvaluationTest
type: ExpandTest
name: Overwrite document base with @base and reset it again
purpose: Setting @base to an IRI and then resetting it to nil
input: expand/0060-in.jsonld
expect: expand/0060-out.jsonld

t0061
type: PositiveEvaluationTest
type: ExpandTest
name: Coercing native types to arbitrary datatypes
purpose: Expanding native types when coercing to arbitrary datatypes
input: expand/0061-in.jsonld
expect: expand/0061-out.jsonld

t0062
type: PositiveEvaluationTest
type: ExpandTest
name: Various relative IRIs with with @base
purpose: Pathological relative IRIs
input: expand/0062-in.jsonld
expect: expand/0062-out.jsonld

t0063
type: PositiveEvaluationTest
type: ExpandTest
name: Reverse property and index container
purpose: Expaning reverse properties with an index-container
input: expand/0063-in.jsonld
expect: expand/0063-out.jsonld

t0064
type: PositiveEvaluationTest
type: ExpandTest
name: bnode values of reverse properties
purpose: Expand reverse property whose values are unlabeled blank nodes
input: expand/0064-in.jsonld
expect: expand/0064-out.jsonld

t0065
type: PositiveEvaluationTest
type: ExpandTest
name: Drop unmapped keys in reverse map
purpose: Keys that are not mapped to an IRI in a reverse-map are dropped
input: expand/0065-in.jsonld
expect: expand/0065-out.jsonld

t0066
type: PositiveEvaluationTest
type: ExpandTest
name: Reverse-map keys with @vocab
purpose: Expand uses @vocab to expand keys in reverse-maps
input: expand/0066-in.jsonld
expect: expand/0066-out.jsonld

t0067
type: PositiveEvaluationTest
type: ExpandTest
name: prefix://suffix not a compact IRI
purpose: prefix:suffix values are not interpreted as compact IRIs if suffix begins with two slashes
input: expand/0067-in.jsonld
expect: expand/0067-out.jsonld

t0068
type: PositiveEvaluationTest
type: ExpandTest
name: _:suffix values are not a compact IRI
purpose: prefix:suffix values are not interpreted as compact IRIs if prefix is an underscore
input: expand/0068-in.jsonld
expect: expand/0068-out.jsonld

t0069
type: PositiveEvaluationTest
type: ExpandTest
name: Compact IRI as term with type mapping
purpose: Redefine compact IRI to define type mapping using the compact IRI itself as value of @id
input: expand/0069-in.jsonld
expect: expand/0069-out.jsonld

t0070
type: PositiveEvaluationTest
type: ExpandTest
name: Compact IRI as term defined using equivalent compact IRI
purpose: Redefine compact IRI to define type mapping using the compact IRI itself as string value
input: expand/0070-in.jsonld
expect: expand/0070-out.jsonld

t0071
type: PositiveEvaluationTest
type: ExpandTest
name: Redefine terms looking like compact IRIs
purpose: Term definitions may look like compact IRIs
input: expand/0071-in.jsonld
expect: expand/0071-out.jsonld
option:
  spec version: json-ld-1.0

t0072
type: PositiveEvaluationTest
type: ExpandTest
name: Redefine term using @vocab, not itself
purpose: Redefining a term as itself when @vocab is defined uses @vocab, not previous term definition
input: expand/0072-in.jsonld
expect: expand/0072-out.jsonld

t0073
type: PositiveEvaluationTest
type: ExpandTest
name: @context not first property
purpose: Objects are unordered, so serialized node definition containing @context may have @context at the end of the node definition
input: expand/0073-in.jsonld
expect: expand/0073-out.jsonld

t0074
type: PositiveEvaluationTest
type: ExpandTest
name: @id not first property
purpose: Objects are unordered, so serialized node definition containing @id may have @id at the end of the node definition
input: expand/0074-in.jsonld
expect: expand/0074-out.jsonld

t0075
type: PositiveEvaluationTest
type: ExpandTest
name: @vocab as blank node identifier
purpose: Use @vocab to map all properties to blank node identifiers
option:
  processing mode: json-ld-1.0
input: expand/0075-in.jsonld
expect: expand/0075-out.jsonld

t0076
type: PositiveEvaluationTest
type: ExpandTest
name: base option overrides document location
purpose: Use of the base option overrides the document location
option:
  base: http://example/base/
input: expand/0076-in.jsonld
expect: expand/0076-out.jsonld

t0077
type: PositiveEvaluationTest
type: ExpandTest
name: expandContext option
purpose: Use of the expandContext option to expand the input document
option:
  expand context: expand/0077-context.jsonld
input: expand/0077-in.jsonld
expect: expand/0077-out.jsonld

t0078
type: PositiveEvaluationTest
type: ExpandTest
name: multiple reverse properties
purpose: Use of multiple reverse properties
input: expand/0078-in.jsonld
expect: expand/0078-out.jsonld

t0079
type: PositiveEvaluationTest
type: ExpandTest
name: expand @graph container
purpose: Use of @graph containers
input: expand/0079-in.jsonld
expect: expand/0079-out.jsonld
option:
  spec version: json-ld-1.1

t0080
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @set] container
purpose: Use of [@graph, @set] containers
input: expand/0080-in.jsonld
expect: expand/0080-out.jsonld
option:
  spec version: json-ld-1.1

t0081
type: PositiveEvaluationTest
type: ExpandTest
name: Creates an @graph container if value is a graph
purpose: Don't double-expand an already expanded graph
input: expand/0081-in.jsonld
expect: expand/0081-out.jsonld
option:
  spec version: json-ld-1.1

t0082
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @index] container
purpose: Use of @graph containers with @index
input: expand/0082-in.jsonld
expect: expand/0082-out.jsonld
option:
  spec version: json-ld-1.1

t0083
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @index, @set] container
purpose: Use of @graph containers with @index and @set
input: expand/0083-in.jsonld
expect: expand/0083-out.jsonld
option:
  spec version: json-ld-1.1

t0084
type: PositiveEvaluationTest
type: ExpandTest
name: Do not expand [@graph, @index] container if value is a graph
purpose: Does not create a new graph object if indexed value is already a graph object
input: expand/0084-in.jsonld
expect: expand/0084-out.jsonld
option:
  spec version: json-ld-1.1

t0085
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @id] container
purpose: Use of @graph containers with @id
input: expand/0085-in.jsonld
expect: expand/0085-out.jsonld
option:
  spec version: json-ld-1.1

t0086
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @id, @set] container
purpose: Use of @graph containers with @id and @set
input: expand/0086-in.jsonld
expect: expand/0086-out.jsonld
option:
  spec version: json-ld-1.1

t0087
type: PositiveEvaluationTest
type: ExpandTest
name: Do not expand [@graph, @id] container if value is a graph
purpose: Does not create a new graph object if indexed value is already a graph object
input: expand/0087-in.jsonld
expect: expand/0087-out.jsonld
option:
  spec version: json-ld-1.1

t0088
type: PositiveEvaluationTest
type: ExpandTest
name: Do not expand native values to IRIs
purpose: Value Expansion does not expand native values, such as booleans, to a node object
input: expand/0088-in.jsonld
expect: expand/0088-out.jsonld

t0089
type: PositiveEvaluationTest
type: ExpandTest
name: empty @base applied to the base option
purpose: Use of an empty @base is applied to the base option
option:
  base: http://example/base/
input: expand/0089-in.jsonld
expect: expand/0089-out.jsonld

t0090
type: PositiveEvaluationTest
type: ExpandTest
name: relative @base overrides base option and document location
purpose: Use of a relative @base overrides base option and document location
option:
  base: http://example/base/
input: expand/0090-in.jsonld
expect: expand/0090-out.jsonld

t0091
type: PositiveEvaluationTest
type: ExpandTest
name: relative and absolute @base overrides base option and document location
purpose: Use of a relative and absolute @base overrides base option and document location
option:
  base: http://example/base/
input: expand/0091-in.jsonld
expect: expand/0091-out.jsonld

t0092
type: PositiveEvaluationTest
type: ExpandTest
name: Various relative IRIs as properties with with @vocab: ''
purpose: Pathological relative property IRIs
input: expand/0092-in.jsonld
expect: expand/0092-out.jsonld
option:
  spec version: json-ld-1.1

t0093
type: PositiveEvaluationTest
type: ExpandTest
name: expand @graph container (multiple objects)
purpose: Use of @graph containers
input: expand/0093-in.jsonld
expect: expand/0093-out.jsonld
option:
  spec version: json-ld-1.1

t0094
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @set] container (multiple objects)
purpose: Use of [@graph, @set] containers
input: expand/0094-in.jsonld
expect: expand/0094-out.jsonld
option:
  spec version: json-ld-1.1

t0095
type: PositiveEvaluationTest
type: ExpandTest
name: Creates an @graph container if value is a graph (multiple objects)
purpose: Double-expand an already expanded graph
input: expand/0095-in.jsonld
expect: expand/0095-out.jsonld
option:
  spec version: json-ld-1.1

t0096
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @index] container (multiple indexed objects)
purpose: Use of @graph containers with @index
input: expand/0096-in.jsonld
expect: expand/0096-out.jsonld
option:
  spec version: json-ld-1.1

t0097
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @index, @set] container (multiple objects)
purpose: Use of @graph containers with @index and @set
input: expand/0097-in.jsonld
expect: expand/0097-out.jsonld
option:
  spec version: json-ld-1.1

t0098
type: PositiveEvaluationTest
type: ExpandTest
name: Do not expand [@graph, @index] container if value is a graph (multiple objects)
purpose: Does not create a new graph object if indexed value is already a graph object
input: expand/0098-in.jsonld
expect: expand/0098-out.jsonld
option:
  spec version: json-ld-1.1

t0099
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @id] container (multiple objects)
purpose: Use of @graph containers with @id
input: expand/0099-in.jsonld
expect: expand/0099-out.jsonld
option:
  spec version: json-ld-1.1

t0100
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @id, @set] container (multiple objects)
purpose: Use of @graph containers with @id and @set
input: expand/0100-in.jsonld
expect: expand/0100-out.jsonld
option:
  spec version: json-ld-1.1

t0101
type: PositiveEvaluationTest
type: ExpandTest
name: Do not expand [@graph, @id] container if value is a graph (multiple objects)
purpose: Does not create a new graph object if indexed value is already a graph object
input: expand/0101-in.jsonld
expect: expand/0101-out.jsonld
option:
  spec version: json-ld-1.1

t0102
type: PositiveEvaluationTest
type: ExpandTest
name: Expand @graph container if value is a graph (multiple objects)
purpose: Creates a new graph object if indexed value is already a graph object
input: expand/0102-in.jsonld
expect: expand/0102-out.jsonld
option:
  spec version: json-ld-1.1

t0103
type: PositiveEvaluationTest
type: ExpandTest
name: Expand @graph container if value is a graph (multiple graphs)
purpose: Creates a new graph object if indexed value is already a graph object
input: expand/0103-in.jsonld
expect: expand/0103-out.jsonld
option:
  spec version: json-ld-1.1

t0104
type: PositiveEvaluationTest
type: ExpandTest
name: Creates an @graph container if value is a graph (mixed graph and object)
purpose: Double-expand an already expanded graph
input: expand/0104-in.jsonld
expect: expand/0104-out.jsonld
option:
  spec version: json-ld-1.1

t0105
type: PositiveEvaluationTest
type: ExpandTest
name: Do not expand [@graph, @index] container if value is a graph (mixed graph and object)
purpose: Does not create a new graph object if indexed value is already a graph object
input: expand/0105-in.jsonld
expect: expand/0105-out.jsonld
option:
  spec version: json-ld-1.1

t0106
type: PositiveEvaluationTest
type: ExpandTest
name: Do not expand [@graph, @id] container if value is a graph (mixed graph and object)
purpose: Does not create a new graph object if indexed value is already a graph object
input: expand/0106-in.jsonld
expect: expand/0106-out.jsonld
option:
  spec version: json-ld-1.1

t0107
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @index] container (indexes with multiple objects)
purpose: Use of @graph containers with @index
input: expand/0107-in.jsonld
expect: expand/0107-out.jsonld
option:
  spec version: json-ld-1.1

t0108
type: PositiveEvaluationTest
type: ExpandTest
name: expand [@graph, @id] container (multiple ids and objects)
purpose: Use of @graph containers with @id
input: expand/0108-in.jsonld
expect: expand/0108-out.jsonld
option:
  spec version: json-ld-1.1

t0109
type: PositiveEvaluationTest
type: ExpandTest
name: IRI expansion of fragments including ':'
purpose: Do not treat as absolute IRIs values that look like compact IRIs if they're not absolute
input: expand/0109-in.jsonld
expect: expand/0109-out.jsonld

t0110
type: PositiveEvaluationTest
type: ExpandTest
name: Various relative IRIs as properties with with relative @vocab
purpose: Pathological relative property IRIs
input: expand/0110-in.jsonld
expect: expand/0110-out.jsonld
option:
  spec version: json-ld-1.1

t0111
type: PositiveEvaluationTest
type: ExpandTest
name: Various relative IRIs as properties with with relative @vocab itself relative to an existing vocabulary base
purpose: Pathological relative property IRIs
input: expand/0111-in.jsonld
expect: expand/0111-out.jsonld
option:
  spec version: json-ld-1.1

t0112
type: PositiveEvaluationTest
type: ExpandTest
name: Various relative IRIs as properties with with relative @vocab relative to another relative vocabulary base
purpose: Pathological relative property IRIs
input: expand/0112-in.jsonld
expect: expand/0112-out.jsonld
option:
  spec version: json-ld-1.1

t0113
type: PositiveEvaluationTest
type: ExpandTest
name: context with JavaScript Object property names
purpose: Expand with context including JavaScript Object property names
input: expand/0113-in.jsonld
expect: expand/0113-out.jsonld

t0114
type: PositiveEvaluationTest
type: ExpandTest
name: Expansion allows multiple properties expanding to @type
purpose: An exception for the colliding keywords error is made for @type
input: expand/0114-in.jsonld
expect: expand/0114-out.jsonld
option:
  spec version: json-ld-1.1

t0115
type: NegativeEvaluationTest
type: ExpandTest
name: Verifies that relative IRIs as properties with @vocab: '' in 1.0 generate an error
purpose: Relative property IRIs with relative @vocab in 1.0
input: expand/0115-in.jsonld
expect error code: invalid vocab mapping
option:
  spec version: json-ld-1.0

t0116
type: NegativeEvaluationTest
type: ExpandTest
name: Verifies that relative IRIs as properties with relative @vocab in 1.0 generate an error
purpose: Relative property IRIs with relative @vocab in 1.0
input: expand/0116-in.jsonld
expect error code: invalid vocab mapping
option:
  spec version: json-ld-1.0

t0117
type: PositiveEvaluationTest
type: ExpandTest
name: A term starting with a colon can expand to a different IRI
purpose: Terms may begin with a colon and not be treated as IRIs.
input: expand/0117-in.jsonld
expect: expand/0117-out.jsonld
option:
  spec version: json-ld-1.1

t0118
type: PositiveEvaluationTest
type: ExpandTest
name: Expanding a value staring with a colon does not treat that value as an IRI
purpose: Terms may begin with a colon and not be treated as IRIs.
input: expand/0118-in.jsonld
expect: expand/0118-out.jsonld
option:
  spec version: json-ld-1.1

t0119
type: PositiveEvaluationTest
type: ExpandTest
name: Ignore some terms with @, allow others.
purpose: Processors SHOULD generate a warning and MUST ignore terms having the form of a keyword.
input: expand/0119-in.jsonld
expect: expand/0119-out.jsonld
option:
  spec version: json-ld-1.1

t0120
type: PositiveEvaluationTest
type: ExpandTest
name: Ignore some values of @id with @, allow others.
purpose: Processors SHOULD generate a warning and MUST ignore values of @id having the form of a keyword.
input: expand/0120-in.jsonld
expect: expand/0120-out.jsonld
option:
  spec version: json-ld-1.1

t0121
type: PositiveEvaluationTest
type: ExpandTest
name: Ignore some values of @reverse with @, allow others.
purpose: Processors SHOULD generate a warning and MUST ignore values of @reverse having the form of a keyword.
input: expand/0121-in.jsonld
expect: expand/0121-out.jsonld
option:
  spec version: json-ld-1.1

t0122
type: PositiveEvaluationTest
type: ExpandTest
name: Ignore some IRIs when that start with @ when expanding.
purpose: Processors SHOULD generate a warning and MUST ignore IRIs having the form of a keyword. (Note: the resulting document will not be valid JSON-LD, due to the `null` value for `@id`)
input: expand/0122-in.jsonld
expect: expand/0122-out.jsonld
option:
  spec version: json-ld-1.1
  normative: false

t0123
type: NegativeEvaluationTest
type: ExpandTest
name: Value objects including invalid literal datatype IRIs are rejected
purpose: Processors MUST validate datatype IRIs.
input: expand/0123-in.jsonld
expect error code: invalid typed value
option:
  spec version: json-ld-1.1

t0124
type: PositiveEvaluationTest
type: ExpandTest
name: compact IRI as @vocab
purpose: Verifies that @vocab defined as a compact IRI expands properly
input: expand/0124-in.jsonld
expect: expand/0124-out.jsonld
option:
  spec version: json-ld-1.1

t0125
type: PositiveEvaluationTest
type: ExpandTest
name: term as @vocab
purpose: Verifies that @vocab defined as a term expands properly
input: expand/0125-in.jsonld
expect: expand/0125-out.jsonld
option:
  spec version: json-ld-1.1

t0126
type: PositiveEvaluationTest
type: ExpandTest
name: A scoped context may include itself recursively (direct)
purpose: Verifies that no exception is raised on expansion when processing a scoped context referencing itself directly
input: expand/0126-in.jsonld
expect: expand/0126-out.jsonld
option:
  spec version: json-ld-1.1

t0127
type: PositiveEvaluationTest
type: ExpandTest
name: A scoped context may include itself recursively (indirect)
purpose: Verifies that no exception is raised on expansion when processing a scoped context referencing itself indirectly
input: expand/0127-in.jsonld
expect: expand/0127-out.jsonld
option:
  spec version: json-ld-1.1

t0128
type: PositiveEvaluationTest
type: ExpandTest
name: Two scoped context may include a shared context
purpose: Verifies that no exception is raised on expansion when processing two scoped contexts referencing a shared context
input: expand/0128-in.jsonld
expect: expand/0128-out.jsonld
option:
  spec version: json-ld-1.1

t0129
type: PositiveEvaluationTest
type: ExpandTest
name: Base without trailing slash, without path
purpose: Verify URI resolution relative to base (without trailing slash, without path) according to RFC 3986
input: expand/0129-in.jsonld
expect: expand/0129-out.jsonld

t0130
type: PositiveEvaluationTest
type: ExpandTest
name: Base without trailing slash, with path
purpose: Verify URI resolution relative to base (without trailing slash, with path) according to RFC 3986
input: expand/0130-in.jsonld
expect: expand/0130-out.jsonld

t0131
type: PositiveEvaluationTest
type: ExpandTest
name: Reverse term with property based indexed container
purpose: Expanding a reverse term using @container: @index and @index set to a property
input: expand/0131-in.jsonld
expect: expand/0131-out.jsonld
option:
  spec version: json-ld-1.1

tc001
type: PositiveEvaluationTest
type: ExpandTest
name: adding new term
purpose: Expansion using a scoped context uses term scope for selecting proper term
input: expand/c001-in.jsonld
expect: expand/c001-out.jsonld
option:
  spec version: json-ld-1.1

tc002
type: PositiveEvaluationTest
type: ExpandTest
name: overriding a term
purpose: Expansion using a scoped context uses term scope for selecting proper term
input: expand/c002-in.jsonld
expect: expand/c002-out.jsonld
option:
  spec version: json-ld-1.1

tc003
type: PositiveEvaluationTest
type: ExpandTest
name: property and value with different terms mapping to the same expanded property
purpose: Expansion using a scoped context uses term scope for selecting proper term
input: expand/c003-in.jsonld
expect: expand/c003-out.jsonld
option:
  spec version: json-ld-1.1

tc004
type: PositiveEvaluationTest
type: ExpandTest
name: deep @context affects nested nodes
purpose: Expansion using a scoped context uses term scope for selecting proper term
input: expand/c004-in.jsonld
expect: expand/c004-out.jsonld
option:
  spec version: json-ld-1.1

tc005
type: PositiveEvaluationTest
type: ExpandTest
name: scoped context layers on intemediate contexts
purpose: Expansion using a scoped context uses term scope for selecting proper term
input: expand/c005-in.jsonld
expect: expand/c005-out.jsonld
option:
  spec version: json-ld-1.1

tc006
type: PositiveEvaluationTest
type: ExpandTest
name: adding new term
purpose: scoped context on @type
input: expand/c006-in.jsonld
expect: expand/c006-out.jsonld
option:
  spec version: json-ld-1.1

tc007
type: PositiveEvaluationTest
type: ExpandTest
name: overriding a term
purpose: scoped context on @type
input: expand/c007-in.jsonld
expect: expand/c007-out.jsonld
option:
  spec version: json-ld-1.1

tc008
type: PositiveEvaluationTest
type: ExpandTest
name: alias of @type
purpose: scoped context on @type
input: expand/c008-in.jsonld
expect: expand/c008-out.jsonld
option:
  spec version: json-ld-1.1

tc009
type: PositiveEvaluationTest
type: ExpandTest
name: deep @type-scoped @context does NOT affect nested nodes
purpose: scoped context on @type
input: expand/c009-in.jsonld
expect: expand/c009-out.jsonld
option:
  spec version: json-ld-1.1

tc010
type: PositiveEvaluationTest
type: ExpandTest
name: scoped context layers on intemediate contexts
purpose: scoped context on @type
input: expand/c010-in.jsonld
expect: expand/c010-out.jsonld
option:
  spec version: json-ld-1.1

tc011
type: PositiveEvaluationTest
type: ExpandTest
name: orders @type terms when applying scoped contexts
purpose: scoped context on @type
input: expand/c011-in.jsonld
expect: expand/c011-out.jsonld
option:
  spec version: json-ld-1.1

tc012
type: PositiveEvaluationTest
type: ExpandTest
name: deep property-term scoped @context in @type-scoped @context affects nested nodes
purpose: scoped context on @type
input: expand/c012-in.jsonld
expect: expand/c012-out.jsonld
option:
  spec version: json-ld-1.1

tc013
type: PositiveEvaluationTest
type: ExpandTest
name: type maps use scoped context from type index and not scoped context from containing
purpose: scoped context on @type
input: expand/c013-in.jsonld
expect: expand/c013-out.jsonld
option:
  spec version: json-ld-1.1

tc014
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped context nullification
purpose: type-scoped context nullification
input: expand/c014-in.jsonld
expect: expand/c014-out.jsonld
option:
  spec version: json-ld-1.1

tc015
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped base
purpose: type-scoped base
input: expand/c015-in.jsonld
expect: expand/c015-out.jsonld
option:
  spec version: json-ld-1.1

tc016
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped vocab
purpose: type-scoped vocab
input: expand/c016-in.jsonld
expect: expand/c016-out.jsonld
option:
  spec version: json-ld-1.1

tc017
type: PositiveEvaluationTest
type: ExpandTest
name: multiple type-scoped contexts are properly reverted
purpose: multiple type-scoped contexts are property reverted
input: expand/c017-in.jsonld
expect: expand/c017-out.jsonld
option:
  spec version: json-ld-1.1

tc018
type: PositiveEvaluationTest
type: ExpandTest
name: multiple type-scoped types resolved against previous context
purpose: multiple type-scoped types resolved against previous context
input: expand/c018-in.jsonld
expect: expand/c018-out.jsonld
option:
  spec version: json-ld-1.1

tc019
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped context with multiple property scoped terms
purpose: type-scoped context with multiple property scoped terms
input: expand/c019-in.jsonld
expect: expand/c019-out.jsonld
option:
  spec version: json-ld-1.1

tc020
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped value
purpose: type-scoped value
input: expand/c020-in.jsonld
expect: expand/c020-out.jsonld
option:
  spec version: json-ld-1.1

tc021
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped value mix
purpose: type-scoped value mix
input: expand/c021-in.jsonld
expect: expand/c021-out.jsonld
option:
  spec version: json-ld-1.1

tc022
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped property-scoped contexts including @type:@vocab
purpose: type-scoped property-scoped contexts including @type:@vocab
input: expand/c022-in.jsonld
expect: expand/c022-out.jsonld
option:
  spec version: json-ld-1.1

tc023
type: PositiveEvaluationTest
type: ExpandTest
name: composed type-scoped property-scoped contexts including @type:@vocab
purpose: composed type-scoped property-scoped contexts including @type:@vocab
input: expand/c023-in.jsonld
expect: expand/c023-out.jsonld
option:
  spec version: json-ld-1.1

tc024
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped + property-scoped + values evaluates against previous context
purpose: type-scoped + property-scoped + values evaluates against previous context
input: expand/c024-in.jsonld
expect: expand/c024-out.jsonld
option:
  spec version: json-ld-1.1

tc025
type: PositiveEvaluationTest
type: ExpandTest
name: type-scoped + graph container
purpose: type-scoped + graph container
input: expand/c025-in.jsonld
expect: expand/c025-out.jsonld
option:
  spec version: json-ld-1.1

tc026
type: PositiveEvaluationTest
type: ExpandTest
name: @propagate: true on type-scoped context
purpose: type-scoped context with @propagate: true survive node-objects
input: expand/c026-in.jsonld
expect: expand/c026-out.jsonld
option:
  spec version: json-ld-1.1

tc027
type: PositiveEvaluationTest
type: ExpandTest
name: @propagate: false on property-scoped context
purpose: property-scoped context with @propagate: false do not survive node-objects
input: expand/c027-in.jsonld
expect: expand/c027-out.jsonld
option:
  spec version: json-ld-1.1

tc028
type: PositiveEvaluationTest
type: ExpandTest
name: @propagate: false on embedded context
purpose: embedded context with @propagate: false do not survive node-objects
input: expand/c028-in.jsonld
expect: expand/c028-out.jsonld
option:
  spec version: json-ld-1.1

tc029
type: NegativeEvaluationTest
type: ExpandTest
name: @propagate is invalid in 1.0
purpose: @propagate is invalid in 1.0
input: expand/c029-in.jsonld
expect error code: invalid context entry
option:
  spec version: json-ld-1.1
  processing mode: json-ld-1.0

tc030
type: NegativeEvaluationTest
type: ExpandTest
name: @propagate must be boolean valued
purpose: @propagate must be boolean valued
input: expand/c030-in.jsonld
expect error code: invalid @propagate value
option:
  spec version: json-ld-1.1

tc031
type: PositiveEvaluationTest
type: ExpandTest
name: @context resolutions respects relative URLs.
purpose: URL resolution follows RFC3986
input: expand/c031-in.jsonld
expect: expand/c031-out.jsonld
option:
  spec version: json-ld-1.1

tc032
type: NegativeEvaluationTest
type: ExpandTest
name: Unused embedded context with error.
purpose: An embedded context which is never used should still be checked.
input: expand/c032-in.jsonld
expect error code: invalid scoped context
option:
  spec version: json-ld-1.1

tc033
type: NegativeEvaluationTest
type: ExpandTest
name: Unused context with an embedded context error.
purpose: An unused context with an embedded context should still be checked.
input: expand/c033-in.jsonld
expect error code: invalid scoped context
option:
  spec version: json-ld-1.1

tc034
type: PositiveEvaluationTest
type: ExpandTest
name: Remote scoped context.
purpose: Scoped contexts may be externally loaded.
input: expand/c034-in.jsonld
expect: expand/c034-out.jsonld
option:
  spec version: json-ld-1.1

tc035
type: PositiveEvaluationTest
type: ExpandTest
name: Term scoping with embedded contexts.
purpose: Terms should make use of @vocab relative to the scope in which the term was defined.
input: expand/c035-in.jsonld
expect: expand/c035-out.jsonld
option:
  spec version: json-ld-1.1

tc036
type: PositiveEvaluationTest
type: ExpandTest
name: Expansion with empty property-scoped context.
purpose: Adding a minimal/empty property-scoped context should not affect expansion of terms defined in the outer scope.
input: expand/c036-in.jsonld
expect: expand/c036-out.jsonld
option:
  spec version: json-ld-1.1

tc037
type: PositiveEvaluationTest
type: ExpandTest
name: property-scoped contexts which are alias of @nest
purpose: Nesting terms may have property-scoped contexts defined.
input: expand/c037-in.jsonld
expect: expand/c037-out.jsonld
option:
  spec version: json-ld-1.1

tc038
type: PositiveEvaluationTest
type: ExpandTest
name: Bibframe example (poor-mans inferrence)
purpose: Nesting terms may have property-scoped contexts defined.
input: expand/c038-in.jsonld
expect: expand/c038-out.jsonld
option:
  spec version: json-ld-1.1

tdi01
type: PositiveEvaluationTest
type: ExpandTest
name: Expand string using default and term directions
purpose: Strings are coerced to have @direction based on default and term direction.
option:
  spec version: json-ld-1.1
input: expand/di01-in.jsonld
expect: expand/di01-out.jsonld

tdi02
type: PositiveEvaluationTest
type: ExpandTest
name: Expand string using default and term directions and languages
purpose: Strings are coerced to have @direction based on default and term direction.
option:
  spec version: json-ld-1.1
input: expand/di02-in.jsonld
expect: expand/di02-out.jsonld

tdi03
type: PositiveEvaluationTest
type: ExpandTest
name: expand list values with @direction
purpose: List values where the term has @direction are used in expansion.
option:
  spec version: json-ld-1.1
input: expand/di03-in.jsonld
expect: expand/di03-out.jsonld

tdi04
type: PositiveEvaluationTest
type: ExpandTest
name: simple language map with term direction
purpose: Term selection with language maps and @direction.
option:
  spec version: json-ld-1.1
input: expand/di04-in.jsonld
expect: expand/di04-out.jsonld

tdi05
type: PositiveEvaluationTest
type: ExpandTest
name: simple language mapwith overriding term direction
purpose: Term selection with language maps and @direction.
option:
  spec version: json-ld-1.1
input: expand/di05-in.jsonld
expect: expand/di05-out.jsonld

tdi06
type: PositiveEvaluationTest
type: ExpandTest
name: simple language mapwith overriding null direction
purpose: Term selection with language maps and @direction.
option:
  spec version: json-ld-1.1
input: expand/di06-in.jsonld
expect: expand/di06-out.jsonld

tdi07
type: PositiveEvaluationTest
type: ExpandTest
name: simple language map with mismatching term direction
purpose: Term selection with language maps and @direction.
option:
  spec version: json-ld-1.1
input: expand/di07-in.jsonld
expect: expand/di07-out.jsonld

tdi08
type: NegativeEvaluationTest
type: ExpandTest
name: @direction must be one of ltr or rtl
purpose: Generate an error if @direction has illegal value.
option:
  spec version: json-ld-1.1
input: expand/di08-in.jsonld
expect error code: invalid base direction

tdi09
type: NegativeEvaluationTest
type: ExpandTest
name: @direction is incompatible with @type
purpose: Value objects can have either @type but not @language or @direction.
option:
  spec version: json-ld-1.1
input: expand/di09-in.jsonld
expect error code: invalid value object

tec01
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid keyword in term definition
purpose: Verifies that an exception is raised on expansion when a invalid term definition is found
input: expand/ec01-in.jsonld
expect error code: invalid term definition
option:
  spec version: json-ld-1.1

tec02
type: NegativeEvaluationTest
type: ExpandTest
name: Term definition on @type with empty map
purpose: Verifies that an exception is raised if @type is defined as a term with an empty map
input: expand/ec02-in.jsonld
expect error code: keyword redefinition
option:
  spec version: json-ld-1.1

tem01
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid container mapping
purpose: Verifies that an exception is raised on expansion when a invalid container mapping is found
input: expand/em01-in.jsonld
expect error code: invalid container mapping
option:
  spec version: json-ld-1.1

ten01
type: NegativeEvaluationTest
type: ExpandTest
name: @nest MUST NOT have a string value
purpose: container: @nest
input: expand/en01-in.jsonld
expect error code: invalid @nest value
option:
  spec version: json-ld-1.1

ten02
type: NegativeEvaluationTest
type: ExpandTest
name: @nest MUST NOT have a boolen value
purpose: Transparent Nesting
input: expand/en02-in.jsonld
expect error code: invalid @nest value
option:
  spec version: json-ld-1.1

ten03
type: NegativeEvaluationTest
type: ExpandTest
name: @nest MUST NOT have a numeric value
purpose: Transparent Nesting
input: expand/en03-in.jsonld
expect error code: invalid @nest value
option:
  spec version: json-ld-1.1

ten04
type: NegativeEvaluationTest
type: ExpandTest
name: @nest MUST NOT have a value object value
purpose: Transparent Nesting
input: expand/en04-in.jsonld
expect error code: invalid @nest value
option:
  spec version: json-ld-1.1

ten05
type: NegativeEvaluationTest
type: ExpandTest
name: does not allow a keyword other than @nest for the value of @nest
purpose: Transparent Nesting
input: expand/en05-in.jsonld
expect error code: invalid @nest value
option:
  spec version: json-ld-1.1

ten06
type: NegativeEvaluationTest
type: ExpandTest
name: does not allow @nest with @reverse
purpose: Transparent Nesting
input: expand/en06-in.jsonld
expect error code: invalid reverse property
option:
  spec version: json-ld-1.1

tep02
type: NegativeEvaluationTest
type: ExpandTest
name: processingMode json-ld-1.0 conflicts with @version: 1.1
purpose: If processingMode is explicitly json-ld-1.0, it will conflict with 1.1 features.
input: expand/ep02-in.jsonld
expect error code: processing mode conflict
option:
  processing mode: json-ld-1.0
  spec version: json-ld-1.1

tep03
type: NegativeEvaluationTest
type: ExpandTest
name: @version must be 1.1
purpose: If @version is specified, it must be 1.1
option:
  spec version: json-ld-1.1
input: expand/ep03-in.jsonld
expect error code: invalid @version value

ter01
type: NegativeEvaluationTest
type: ExpandTest
name: Keywords cannot be aliased to other keywords
purpose: Verifies that an exception is raised on expansion when processing an invalid context aliasing a keyword to another keyword
input: expand/er01-in.jsonld
expect error code: keyword redefinition

ter02
type: NegativeEvaluationTest
type: ExpandTest
name: A context may not include itself recursively (direct)
purpose: Verifies that an exception is raised on expansion when processing a context referencing itself
input: expand/er02-in.jsonld
expect error code: recursive context inclusion
option:
  spec version: json-ld-1.0

ter03
type: NegativeEvaluationTest
type: ExpandTest
name: A context may not include itself recursively (indirect)
purpose: Verifies that an exception is raised on expansion when processing a context referencing itself indirectly
input: expand/er03-in.jsonld
expect error code: recursive context inclusion
option:
  spec version: json-ld-1.0

ter04
type: NegativeEvaluationTest
type: ExpandTest
name: Error dereferencing a remote context
purpose: Verifies that an exception is raised on expansion when a context dereference results in an error
input: expand/er04-in.jsonld
expect error code: loading remote context failed

ter05
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid remote context
purpose: Verifies that an exception is raised on expansion when a remote context is not an object containing @context
input: expand/er05-in.jsonld
expect error code: invalid remote context
option:
  spec version: json-ld-1.1

ter06
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid local context
purpose: Verifies that an exception is raised on expansion when a context is not a string or object
input: expand/er06-in.jsonld
expect error code: invalid local context

ter07
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid base IRI
purpose: Verifies that an exception is raised on expansion when a context contains an invalid @base
input: expand/er07-in.jsonld
expect error code: invalid base IRI

ter08
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid vocab mapping
purpose: Verifies that an exception is raised on expansion when a context contains an invalid @vocab mapping
input: expand/er08-in.jsonld
expect error code: invalid vocab mapping

ter09
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid default language
purpose: Verifies that an exception is raised on expansion when a context contains an invalid @language
input: expand/er09-in.jsonld
expect error code: invalid default language

ter10
type: NegativeEvaluationTest
type: ExpandTest
name: Cyclic IRI mapping
purpose: Verifies that an exception is raised on expansion when a cyclic IRI mapping is found
input: expand/er10-in.jsonld
expect error code: cyclic IRI mapping

ter11
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid term definition
purpose: Verifies that an exception is raised on expansion when a invalid term definition is found
input: expand/er11-in.jsonld
expect error code: invalid term definition

ter12
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid type mapping (not a string)
purpose: Verifies that an exception is raised on expansion when a invalid type mapping is found
input: expand/er12-in.jsonld
expect error code: invalid type mapping

ter13
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid type mapping (not absolute IRI)
purpose: Verifies that an exception is raised on expansion when a invalid type mapping is found
input: expand/er13-in.jsonld
expect error code: invalid type mapping

ter14
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid reverse property (contains @id)
purpose: Verifies that an exception is raised on expansion when a invalid reverse property is found
input: expand/er14-in.jsonld
expect error code: invalid reverse property

ter15
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid IRI mapping (@reverse not a string)
purpose: Verifies that an exception is raised on expansion when a invalid IRI mapping is found
input: expand/er15-in.jsonld
expect error code: invalid IRI mapping

ter17
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid reverse property (invalid @container)
purpose: Verifies that an exception is raised on expansion when a invalid reverse property is found
input: expand/er17-in.jsonld
expect error code: invalid reverse property

ter18
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid IRI mapping (@id not a string)
purpose: Verifies that an exception is raised on expansion when a invalid IRI mapping is found
input: expand/er18-in.jsonld
expect error code: invalid IRI mapping

ter19
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid keyword alias (@context)
purpose: Verifies that an exception is raised on expansion when a invalid keyword alias is found
input: expand/er19-in.jsonld
expect error code: invalid keyword alias

ter20
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid IRI mapping (no vocab mapping)
purpose: Verifies that an exception is raised on expansion when a invalid IRI mapping is found
input: expand/er20-in.jsonld
expect error code: invalid IRI mapping

ter21
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid container mapping
purpose: Verifies that an exception is raised on expansion when a invalid container mapping is found
input: expand/er21-in.jsonld
expect error code: invalid container mapping
option:
  processing mode: json-ld-1.0
  spec version: json-ld-1.1

ter22
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid language mapping
purpose: Verifies that an exception is raised on expansion when a invalid language mapping is found
input: expand/er22-in.jsonld
expect error code: invalid language mapping

ter23
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid IRI mapping (relative IRI in @type)
purpose: Verifies that an exception is raised on expansion when a invalid type mapping is found
input: expand/er23-in.jsonld
expect error code: invalid type mapping

ter24
type: NegativeEvaluationTest
type: ExpandTest
name: List of lists (from array)
purpose: Verifies that an exception is raised in Expansion when a list of lists is found
input: expand/er24-in.jsonld
expect error code: list of lists
option:
  spec version: json-ld-1.0

ter25
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid reverse property map
purpose: Verifies that an exception is raised in Expansion when a invalid reverse property map is found
input: expand/er25-in.jsonld
expect error code: invalid reverse property map

ter26
type: NegativeEvaluationTest
type: ExpandTest
name: Colliding keywords
purpose: Verifies that an exception is raised in Expansion when colliding keywords are found
input: expand/er26-in.jsonld
expect error code: colliding keywords

ter27
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid @id value
purpose: Verifies that an exception is raised in Expansion when an invalid @id value is found
input: expand/er27-in.jsonld
expect error code: invalid @id value

ter28
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid type value
purpose: Verifies that an exception is raised in Expansion when an invalid type value is found
input: expand/er28-in.jsonld
expect error code: invalid type value

ter29
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid value object value
purpose: Verifies that an exception is raised in Expansion when an invalid value object value is found
input: expand/er29-in.jsonld
expect error code: invalid value object value

ter30
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid language-tagged string
purpose: Verifies that an exception is raised in Expansion when an invalid language-tagged string value is found
input: expand/er30-in.jsonld
expect error code: invalid language-tagged string

ter31
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid @index value
purpose: Verifies that an exception is raised in Expansion when an invalid @index value value is found
input: expand/er31-in.jsonld
expect error code: invalid @index value

ter32
type: NegativeEvaluationTest
type: ExpandTest
name: List of lists (from array)
purpose: Verifies that an exception is raised in Expansion when a list of lists is found
input: expand/er32-in.jsonld
expect error code: list of lists
option:
  spec version: json-ld-1.0

ter33
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid @reverse value
purpose: Verifies that an exception is raised in Expansion when an invalid @reverse value is found
input: expand/er33-in.jsonld
expect error code: invalid @reverse value

ter34
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid reverse property value (in @reverse)
purpose: Verifies that an exception is raised in Expansion when an invalid reverse property value is found
input: expand/er34-in.jsonld
expect error code: invalid reverse property value

ter35
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid language map value
purpose: Verifies that an exception is raised in Expansion when an invalid language map value is found
input: expand/er35-in.jsonld
expect error code: invalid language map value

ter36
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid reverse property value (through coercion)
purpose: Verifies that an exception is raised in Expansion when an invalid reverse property value is found
input: expand/er36-in.jsonld
expect error code: invalid reverse property value

ter37
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid value object (unexpected keyword)
purpose: Verifies that an exception is raised in Expansion when an invalid value object is found
input: expand/er37-in.jsonld
expect error code: invalid value object

ter38
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid value object (@type and @language)
purpose: Verifies that an exception is raised in Expansion when an invalid value object is found
input: expand/er38-in.jsonld
expect error code: invalid value object

ter39
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid language-tagged value
purpose: Verifies that an exception is raised in Expansion when an invalid language-tagged value is found
input: expand/er39-in.jsonld
expect error code: invalid language-tagged value

ter40
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid typed value
purpose: Verifies that an exception is raised in Expansion when an invalid typed value is found
input: expand/er40-in.jsonld
expect error code: invalid typed value

ter41
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid set or list object
purpose: Verifies that an exception is raised in Expansion when an invalid set or list object is found
input: expand/er41-in.jsonld
expect error code: invalid set or list object

ter42
type: NegativeEvaluationTest
type: ExpandTest
name: Keywords may not be redefined in 1.0
purpose: Verifies that an exception is raised on expansion when processing an invalid context attempting to define @container on a keyword
option:
  spec version: json-ld-1.1
  processing mode: json-ld-1.0
input: expand/er42-in.jsonld
expect error code: keyword redefinition

ter43
type: NegativeEvaluationTest
type: ExpandTest
name: Term definition with @id: @type
purpose: Expanding term mapping to @type uses @type syntax now illegal
input: expand/er43-in.jsonld
expect error code: invalid IRI mapping
option:
  spec version: json-ld-1.1

ter44
type: NegativeEvaluationTest
type: ExpandTest
name: Redefine terms looking like compact IRIs
purpose: Term definitions may look like compact IRIs, but must be consistent.
input: expand/er44-in.jsonld
expect error code: invalid IRI mapping
option:
  spec version: json-ld-1.1

ter48
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid term as relative IRI
purpose: Verifies that a relative IRI cannot be used as a term.
input: expand/er48-in.jsonld
expect error code: invalid IRI mapping
option:
  spec version: json-ld-1.1

ter49
type: NegativeEvaluationTest
type: ExpandTest
name: A relative IRI cannot be used as a prefix
purpose: Verifies that a relative IRI cannot be used as a term.
input: expand/er49-in.jsonld
expect error code: invalid term definition
option:
  spec version: json-ld-1.1

ter50
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid reverse id
purpose: Verifies that an exception is raised in Expansion when an invalid IRI is used for @reverse.
input: expand/er50-in.jsonld
expect error code: invalid IRI mapping

ter51
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid value object value using a value alias
purpose: Verifies that an exception is raised in Expansion when an invalid value object value is found using a value alias
input: expand/er51-in.jsonld
expect error code: invalid value object value

ter52
type: NegativeEvaluationTest
type: ExpandTest
name: Definition for the empty term
purpose: Verifies that an exception is raised on expansion when a context contains a definition for the empty term
input: expand/er52-in.jsonld
expect error code: invalid term definition

ter53
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid prefix value
purpose: Verifies that an exception is raised on expansion when a context contains an invalid @prefix value
input: expand/er53-in.jsonld
expect error code: invalid @prefix value
option:
  spec version: json-ld-1.1

ter54
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid value object, multiple values for @type.
purpose: The value of @type in a value object MUST be a string or null.
input: expand/er54-in.jsonld
expect error code: invalid typed value

ter55
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid term definition, multiple values for @type.
purpose: The value of @type in an expanded term definition object MUST be a string or null.
input: expand/er55-in.jsonld
expect error code: invalid type mapping

ter56
type: NegativeEvaluationTest
type: ExpandTest
name: Invalid redefinition of @context keyword.
purpose: Verifies that an exception is raised when attempting to redefine @context.
input: expand/er56-in.jsonld
expect error code: keyword redefinition

tes01
type: NegativeEvaluationTest
type: ExpandTest
name: Using an array value for @context is illegal in JSON-LD 1.0
purpose: Verifies that an exception is raised on expansion when a invalid container mapping is found
input: expand/es01-in.jsonld
expect error code: invalid container mapping
option:
  processing mode: json-ld-1.0
  spec version: json-ld-1.1

tes02
type: NegativeEvaluationTest
type: ExpandTest
name: Mapping @container: [@list, @set] is invalid
purpose: Testing legal combinations of @set with other container values
input: expand/es02-in.jsonld
expect error code: invalid container mapping
option:
  spec version: json-ld-1.1

tin01
type: PositiveEvaluationTest
type: ExpandTest
name: Basic Included array
purpose: Tests included blocks.
input: expand/in01-in.jsonld
expect: expand/in01-out.jsonld
option:
  spec version: json-ld-1.1

tin02
type: PositiveEvaluationTest
type: ExpandTest
name: Basic Included object
purpose: Tests included blocks.
input: expand/in02-in.jsonld
expect: expand/in02-out.jsonld
option:
  spec version: json-ld-1.1

tin03
type: PositiveEvaluationTest
type: ExpandTest
name: Multiple properties mapping to @included are folded together
purpose: Tests included blocks.
input: expand/in03-in.jsonld
expect: expand/in03-out.jsonld
option:
  spec version: json-ld-1.1

tin04
type: PositiveEvaluationTest
type: ExpandTest
name: Included containing @included
purpose: Tests included blocks.
input: expand/in04-in.jsonld
expect: expand/in04-out.jsonld
option:
  spec version: json-ld-1.1

tin05
type: PositiveEvaluationTest
type: ExpandTest
name: Property value with @included
purpose: Tests included blocks.
input: expand/in05-in.jsonld
expect: expand/in05-out.jsonld
option:
  spec version: json-ld-1.1

tin06
type: PositiveEvaluationTest
type: ExpandTest
name: json.api example
purpose: Tests included blocks.
input: expand/in06-in.jsonld
expect: expand/in06-out.jsonld
option:
  spec version: json-ld-1.1

tin07
type: NegativeEvaluationTest
type: ExpandTest
name: Error if @included value is a string
purpose: Tests included blocks.
input: expand/in07-in.jsonld
expect error code: invalid @included value
option:
  spec version: json-ld-1.1

tin08
type: NegativeEvaluationTest
type: ExpandTest
name: Error if @included value is a value object
purpose: Tests included blocks.
input: expand/in08-in.jsonld
expect error code: invalid @included value
option:
  spec version: json-ld-1.1

tin09
type: NegativeEvaluationTest
type: ExpandTest
name: Error if @included value is a list object
purpose: Tests included blocks.
input: expand/in09-in.jsonld
expect error code: invalid @included value
option:
  spec version: json-ld-1.1

tjs01
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (boolean true)
purpose: Tests expanding property with @type @json to a JSON literal (boolean true).
input: expand/js01-in.jsonld
expect: expand/js01-out.jsonld
option:
  spec version: json-ld-1.1

tjs02
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (boolean false)
purpose: Tests expanding property with @type @json to a JSON literal (boolean false).
input: expand/js02-in.jsonld
expect: expand/js02-out.jsonld
option:
  spec version: json-ld-1.1

tjs03
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (double)
purpose: Tests expanding property with @type @json to a JSON literal (double).
input: expand/js03-in.jsonld
expect: expand/js03-out.jsonld
option:
  spec version: json-ld-1.1

tjs04
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (double-zero)
purpose: Tests expanding property with @type @json to a JSON literal (double-zero).
input: expand/js04-in.jsonld
expect: expand/js04-out.jsonld
option:
  spec version: json-ld-1.1

tjs05
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (integer)
purpose: Tests expanding property with @type @json to a JSON literal (integer).
input: expand/js05-in.jsonld
expect: expand/js05-out.jsonld
option:
  spec version: json-ld-1.1

tjs06
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (object)
purpose: Tests expanding property with @type @json to a JSON literal (object).
input: expand/js06-in.jsonld
expect: expand/js06-out.jsonld
option:
  spec version: json-ld-1.1

tjs07
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (array)
purpose: Tests expanding property with @type @json to a JSON literal (array).
input: expand/js07-in.jsonld
expect: expand/js07-out.jsonld
option:
  spec version: json-ld-1.1

tjs08
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with array canonicalization
purpose: Tests expanding JSON literal with array canonicalization.
input: expand/js08-in.jsonld
expect: expand/js08-out.jsonld
option:
  spec version: json-ld-1.1

tjs09
type: PositiveEvaluationTest
type: ExpandTest
name: Transform JSON literal with string canonicalization
purpose: Tests expanding JSON literal with string canonicalization.
input: expand/js09-in.jsonld
expect: expand/js09-out.jsonld
option:
  spec version: json-ld-1.1

tjs10
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with structural canonicalization
purpose: Tests expanding JSON literal with structural canonicalization.
input: expand/js10-in.jsonld
expect: expand/js10-out.jsonld
option:
  spec version: json-ld-1.1

tjs11
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with unicode canonicalization
purpose: Tests expanding JSON literal with unicode canonicalization.
input: expand/js11-in.jsonld
expect: expand/js11-out.jsonld
option:
  spec version: json-ld-1.1

tjs12
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with value canonicalization
purpose: Tests expanding JSON literal with value canonicalization.
input: expand/js12-in.jsonld
expect: expand/js12-out.jsonld
option:
  spec version: json-ld-1.1

tjs13
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with wierd canonicalization
purpose: Tests expanding JSON literal with wierd canonicalization.
input: expand/js13-in.jsonld
expect: expand/js13-out.jsonld
option:
  spec version: json-ld-1.1

tjs14
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal without expanding contents
purpose: Tests expanding JSON literal does not expand terms inside json.
input: expand/js14-in.jsonld
expect: expand/js14-out.jsonld
option:
  spec version: json-ld-1.1

tjs15
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal aleady in expanded form
purpose: Tests expanding JSON literal in expanded form.
input: expand/js15-in.jsonld
expect: expand/js15-out.jsonld
option:
  spec version: json-ld-1.1

tjs16
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal aleady in expanded form with aliased keys
purpose: Tests expanding JSON literal in expanded form with aliased keys in value object.
input: expand/js16-in.jsonld
expect: expand/js16-out.jsonld
option:
  spec version: json-ld-1.1

tjs17
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (string)
purpose: Tests expanding property with @type @json to a JSON literal (string).
input: expand/js17-in.jsonld
expect: expand/js17-out.jsonld
option:
  spec version: json-ld-1.1

tjs18
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (null)
purpose: Tests expanding property with @type @json to a JSON literal (null).
input: expand/js18-in.jsonld
expect: expand/js18-out.jsonld
option:
  spec version: json-ld-1.1

tjs19
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with aliased @type
purpose: Tests expanding JSON literal with aliased @type.
input: expand/js19-in.jsonld
expect: expand/js19-out.jsonld
option:
  spec version: json-ld-1.1

tjs20
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with aliased @value
purpose: Tests expanding JSON literal with aliased @value.
input: expand/js20-in.jsonld
expect: expand/js20-out.jsonld
option:
  spec version: json-ld-1.1

tjs21
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal with @context
purpose: Tests expanding JSON literal with a @context.
input: expand/js21-in.jsonld
expect: expand/js21-out.jsonld
option:
  spec version: json-ld-1.1

tjs22
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (null) aleady in expanded form.
purpose: Tests expanding property with @type @json to a JSON literal (null).
input: expand/js22-in.jsonld
expect: expand/js22-out.jsonld
option:
  spec version: json-ld-1.1

tjs23
type: PositiveEvaluationTest
type: ExpandTest
name: Expand JSON literal (empty array).
purpose: Tests expanding property with @type @json to a JSON literal (empty array).
input: expand/js23-in.jsonld
expect: expand/js23-out.jsonld
option:
  spec version: json-ld-1.1

tl001
type: PositiveEvaluationTest
type: ExpandTest
name: Language map with null value
purpose: A language map may have a null value, which is ignored
option:
  spec version: json-ld-1.1
input: expand/l001-in.jsonld
expect: expand/l001-out.jsonld

tli01
type: PositiveEvaluationTest
type: ExpandTest
name: @list containing @list
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li01-in.jsonld
expect: expand/li01-out.jsonld

tli02
type: PositiveEvaluationTest
type: ExpandTest
name: @list containing empty @list
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li02-in.jsonld
expect: expand/li02-out.jsonld

tli03
type: PositiveEvaluationTest
type: ExpandTest
name: @list containing @list (with coercion)
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li03-in.jsonld
expect: expand/li03-out.jsonld

tli04
type: PositiveEvaluationTest
type: ExpandTest
name: @list containing empty @list (with coercion)
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li04-in.jsonld
expect: expand/li04-out.jsonld

tli05
type: PositiveEvaluationTest
type: ExpandTest
name: coerced @list containing an array
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li05-in.jsonld
expect: expand/li05-out.jsonld

tli06
type: PositiveEvaluationTest
type: ExpandTest
name: coerced @list containing an empty array
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li06-in.jsonld
expect: expand/li06-out.jsonld

tli07
type: PositiveEvaluationTest
type: ExpandTest
name: coerced @list containing deep arrays
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li07-in.jsonld
expect: expand/li07-out.jsonld

tli08
type: PositiveEvaluationTest
type: ExpandTest
name: coerced @list containing deep empty arrays
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li08-in.jsonld
expect: expand/li08-out.jsonld

tli09
type: PositiveEvaluationTest
type: ExpandTest
name: coerced @list containing multiple lists
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li09-in.jsonld
expect: expand/li09-out.jsonld

tli10
type: PositiveEvaluationTest
type: ExpandTest
name: coerced @list containing mixed list values
purpose: List of lists
option:
  spec version: json-ld-1.1
input: expand/li10-in.jsonld
expect: expand/li10-out.jsonld

tm001
type: PositiveEvaluationTest
type: ExpandTest
name: Adds @id to object not having an @id
purpose: Expansion using @container: @id
input: expand/m001-in.jsonld
expect: expand/m001-out.jsonld
option:
  spec version: json-ld-1.1

tm002
type: PositiveEvaluationTest
type: ExpandTest
name: Retains @id in object already having an @id
purpose: Expansion using @container: @id
input: expand/m002-in.jsonld
expect: expand/m002-out.jsonld
option:
  spec version: json-ld-1.1

tm003
type: PositiveEvaluationTest
type: ExpandTest
name: Adds @type to object not having an @type
purpose: Expansion using @container: @type
input: expand/m003-in.jsonld
expect: expand/m003-out.jsonld
option:
  spec version: json-ld-1.1

tm004
type: PositiveEvaluationTest
type: ExpandTest
name: Prepends @type in object already having an @type
purpose: Expansion using @container: @type
input: expand/m004-in.jsonld
expect: expand/m004-out.jsonld
option:
  spec version: json-ld-1.1

tm005
type: PositiveEvaluationTest
type: ExpandTest
name: Adds expanded @id to object
purpose: Expansion using @container: @id
input: expand/m005-in.jsonld
expect: expand/m005-out.jsonld
option:
  base: http://example.org/
  spec version: json-ld-1.1

tm006
type: PositiveEvaluationTest
type: ExpandTest
name: Adds vocabulary expanded @type to object
purpose: Expansion using @container: @type
input: expand/m006-in.jsonld
expect: expand/m006-out.jsonld
option:
  spec version: json-ld-1.1

tm007
type: PositiveEvaluationTest
type: ExpandTest
name: Adds document expanded @type to object
purpose: Expansion using @container: @type
input: expand/m007-in.jsonld
expect: expand/m007-out.jsonld
option:
  spec version: json-ld-1.1

tm008
type: PositiveEvaluationTest
type: ExpandTest
name: When type is in a type map
purpose: scoped context on @type
input: expand/m008-in.jsonld
expect: expand/m008-out.jsonld
option:
  spec version: json-ld-1.1

tm009
type: PositiveEvaluationTest
type: ExpandTest
name: language map with @none
purpose: index on @language
input: expand/m009-in.jsonld
expect: expand/m009-out.jsonld
option:
  spec version: json-ld-1.1

tm010
type: PositiveEvaluationTest
type: ExpandTest
name: language map with alias of @none
purpose: index on @language
input: expand/m010-in.jsonld
expect: expand/m010-out.jsonld
option:
  spec version: json-ld-1.1

tm011
type: PositiveEvaluationTest
type: ExpandTest
name: id map with @none
purpose: index on @id
input: expand/m011-in.jsonld
expect: expand/m011-out.jsonld
option:
  spec version: json-ld-1.1

tm012
type: PositiveEvaluationTest
type: ExpandTest
name: type map with alias of @none
purpose: index on @type
input: expand/m012-in.jsonld
expect: expand/m012-out.jsonld
option:
  spec version: json-ld-1.1

tm013
type: PositiveEvaluationTest
type: ExpandTest
name: graph index map with @none
purpose: index on @graph and @index
input: expand/m013-in.jsonld
expect: expand/m013-out.jsonld
option:
  spec version: json-ld-1.1

tm014
type: PositiveEvaluationTest
type: ExpandTest
name: graph index map with alias @none
purpose: index on @graph and @index
input: expand/m014-in.jsonld
expect: expand/m014-out.jsonld
option:
  spec version: json-ld-1.1

tm015
type: PositiveEvaluationTest
type: ExpandTest
name: graph id index map with aliased @none
purpose: index on @graph and @id with @none
input: expand/m015-in.jsonld
expect: expand/m015-out.jsonld
option:
  spec version: json-ld-1.1

tm016
type: PositiveEvaluationTest
type: ExpandTest
name: graph id index map with aliased @none
purpose: index on @graph and @id with @none
input: expand/m016-in.jsonld
expect: expand/m016-out.jsonld
option:
  spec version: json-ld-1.1

tm017
type: PositiveEvaluationTest
type: ExpandTest
name: string value of type map expands to node reference
purpose: index on @type
input: expand/m017-in.jsonld
expect: expand/m017-out.jsonld
option:
  spec version: json-ld-1.1

tm018
type: PositiveEvaluationTest
type: ExpandTest
name: string value of type map expands to node reference with @type: @id
purpose: index on @type
input: expand/m018-in.jsonld
expect: expand/m018-out.jsonld
option:
  spec version: json-ld-1.1

tm019
type: PositiveEvaluationTest
type: ExpandTest
name: string value of type map expands to node reference with @type: @vocab
purpose: index on @type
input: expand/m019-in.jsonld
expect: expand/m019-out.jsonld
option:
  spec version: json-ld-1.1

tm020
type: NegativeEvaluationTest
type: ExpandTest
name: string value of type map must not be a literal
purpose: index on @type
input: expand/m020-in.jsonld
expect error code: invalid type mapping
option:
  spec version: json-ld-1.1

tn001
type: PositiveEvaluationTest
type: ExpandTest
name: Expands input using @nest
purpose: Expansion using @nest
input: expand/n001-in.jsonld
expect: expand/n001-out.jsonld
option:
  spec version: json-ld-1.1

tn002
type: PositiveEvaluationTest
type: ExpandTest
name: Expands input using aliased @nest
purpose: Expansion using @nest
input: expand/n002-in.jsonld
expect: expand/n002-out.jsonld
option:
  spec version: json-ld-1.1

tn003
type: PositiveEvaluationTest
type: ExpandTest
name: Appends nested values when property at base and nested
purpose: Expansion using @nest
input: expand/n003-in.jsonld
expect: expand/n003-out.jsonld
option:
  spec version: json-ld-1.1

tn004
type: PositiveEvaluationTest
type: ExpandTest
name: Appends nested values from all @nest aliases
purpose: Expansion using @nest
input: expand/n004-in.jsonld
expect: expand/n004-out.jsonld
option:
  spec version: json-ld-1.1

tn005
type: PositiveEvaluationTest
type: ExpandTest
name: Nested nested containers
purpose: Expansion using @nest
input: expand/n005-in.jsonld
expect: expand/n005-out.jsonld
option:
  spec version: json-ld-1.1

tn006
type: PositiveEvaluationTest
type: ExpandTest
name: Arrays of nested values
purpose: Expansion using @nest
input: expand/n006-in.jsonld
expect: expand/n006-out.jsonld
option:
  spec version: json-ld-1.1

tn007
type: PositiveEvaluationTest
type: ExpandTest
name: A nest of arrays
purpose: Expansion using @nest
input: expand/n007-in.jsonld
expect: expand/n007-out.jsonld
option:
  spec version: json-ld-1.1

tn008
type: PositiveEvaluationTest
type: ExpandTest
name: Multiple keys may mapping to @type when nesting
purpose: Expansion using @nest
input: expand/n008-in.jsonld
expect: expand/n008-out.jsonld
option:
  spec version: json-ld-1.1

tp001
type: PositiveEvaluationTest
type: ExpandTest
name: @version may be specified after first context
purpose: If processing mode is not set through API, it is set by the first context containing @version.
option:
  spec version: json-ld-1.1
input: expand/p001-in.jsonld
expect: expand/p001-out.jsonld

tp002
type: PositiveEvaluationTest
type: ExpandTest
name: @version setting [1.0, 1.1, 1.0]
purpose: If processing mode is not set through API, it is set by the first context containing @version.
option:
  spec version: json-ld-1.1
input: expand/p002-in.jsonld
expect: expand/p002-out.jsonld

tp003
type: PositiveEvaluationTest
type: ExpandTest
name: @version setting [1.1, 1.0]
purpose: If processing mode is not set through API, it is set by the first context containing @version.
option:
  spec version: json-ld-1.1
input: expand/p003-in.jsonld
expect: expand/p003-out.jsonld

tp004
type: PositiveEvaluationTest
type: ExpandTest
name: @version setting [1.1, 1.0, 1.1]
purpose: If processing mode is not set through API, it is set by the first context containing @version.
option:
  spec version: json-ld-1.1
input: expand/p004-in.jsonld
expect: expand/p004-out.jsonld

tpi01
type: NegativeEvaluationTest
type: ExpandTest
name: error if @version is json-ld-1.0 for property-valued index
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
  processing mode: json-ld-1.0
input: expand/pi01-in.jsonld
expect error code: invalid term definition

tpi02
type: NegativeEvaluationTest
type: ExpandTest
name: error if @container does not include @index for property-valued index
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi02-in.jsonld
expect error code: invalid term definition

tpi03
type: NegativeEvaluationTest
type: ExpandTest
name: error if @index is a keyword for property-valued index
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi03-in.jsonld
expect error code: invalid term definition

tpi04
type: NegativeEvaluationTest
type: ExpandTest
name: error if @index is not a string for property-valued index
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi04-in.jsonld
expect error code: invalid term definition

tpi05
type: NegativeEvaluationTest
type: ExpandTest
name: error if attempting to add property to value object for property-valued index
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi05-in.jsonld
expect error code: invalid value object

tpi06
type: PositiveEvaluationTest
type: ExpandTest
name: property-valued index expands to property value, instead of @index (value)
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi06-in.jsonld
expect: expand/pi06-out.jsonld

tpi07
type: PositiveEvaluationTest
type: ExpandTest
name: property-valued index appends to property value, instead of @index (value)
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi07-in.jsonld
expect: expand/pi07-out.jsonld

tpi08
type: PositiveEvaluationTest
type: ExpandTest
name: property-valued index expands to property value, instead of @index (node)
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi08-in.jsonld
expect: expand/pi08-out.jsonld

tpi09
type: PositiveEvaluationTest
type: ExpandTest
name: property-valued index appends to property value, instead of @index (node)
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi09-in.jsonld
expect: expand/pi09-out.jsonld

tpi10
type: PositiveEvaluationTest
type: ExpandTest
name: property-valued index does not output property for @none
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi10-in.jsonld
expect: expand/pi10-out.jsonld

tpi11
type: PositiveEvaluationTest
type: ExpandTest
name: property-valued index adds property to graph object
purpose: Expanding index maps where index is a property.
option:
  spec version: json-ld-1.1
input: expand/pi11-in.jsonld
expect: expand/pi11-out.jsonld

tpr01
type: NegativeEvaluationTest
type: ExpandTest
name: Protect a term
purpose: Check error when overriding a protected term.
option:
  spec version: json-ld-1.1
input: expand/pr01-in.jsonld
expect error code: protected term redefinition

tpr02
type: PositiveEvaluationTest
type: ExpandTest
name: Set a term to not be protected
purpose: A term with @protected: false is not protected.
option:
  spec version: json-ld-1.1
input: expand/pr02-in.jsonld
expect: expand/pr02-out.jsonld

tpr03
type: NegativeEvaluationTest
type: ExpandTest
name: Protect all terms in context
purpose: A protected context protects all term definitions.
option:
  spec version: json-ld-1.1
input: expand/pr03-in.jsonld
expect error code: protected term redefinition

tpr04
type: NegativeEvaluationTest
type: ExpandTest
name: Do not protect term with @protected: false
purpose: A protected context does not protect terms with @protected: false.
option:
  spec version: json-ld-1.1
input: expand/pr04-in.jsonld
expect error code: protected term redefinition

tpr05
type: NegativeEvaluationTest
type: ExpandTest
name: Clear active context with protected terms from an embedded context
purpose: The Active context be set to null from an embedded context.
option:
  spec version: json-ld-1.1
input: expand/pr05-in.jsonld
expect error code: invalid context nullification

tpr06
type: PositiveEvaluationTest
type: ExpandTest
name: Clear active context of protected terms from a term.
purpose: The Active context may be set to null from a scoped context of a term.
option:
  spec version: json-ld-1.1
input: expand/pr06-in.jsonld
expect: expand/pr06-out.jsonld

tpr08
type: NegativeEvaluationTest
type: ExpandTest
name: Term with protected scoped context.
purpose: A scoped context can protect terms.
option:
  spec version: json-ld-1.1
input: expand/pr08-in.jsonld
expect error code: protected term redefinition

tpr09
type: NegativeEvaluationTest
type: ExpandTest
name: Attempt to redefine term in other protected context.
purpose: A protected term cannot redefine another protected term.
option:
  spec version: json-ld-1.1
input: expand/pr09-in.jsonld
expect error code: protected term redefinition

tpr10
type: PositiveEvaluationTest
type: ExpandTest
name: Simple protected and unprotected terms.
purpose: Simple protected and unprotected terms.
option:
  spec version: json-ld-1.1
input: expand/pr10-in.jsonld
expect: expand/pr10-out.jsonld

tpr11
type: NegativeEvaluationTest
type: ExpandTest
name: Fail to override protected term.
purpose: Fail to override protected term.
option:
  spec version: json-ld-1.1
input: expand/pr11-in.jsonld
expect error code: protected term redefinition

tpr12
type: NegativeEvaluationTest
type: ExpandTest
name: Scoped context fail to override protected term.
purpose: Scoped context fail to override protected term.
option:
  spec version: json-ld-1.1
input: expand/pr12-in.jsonld
expect error code: protected term redefinition

tpr13
type: PositiveEvaluationTest
type: ExpandTest
name: Override unprotected term.
purpose: Override unprotected term.
option:
  spec version: json-ld-1.1
input: expand/pr13-in.jsonld
expect: expand/pr13-out.jsonld

tpr14
type: PositiveEvaluationTest
type: ExpandTest
name: Clear protection with null context.
purpose: Clear protection with null context.
option:
  spec version: json-ld-1.1
input: expand/pr14-in.jsonld
expect: expand/pr14-out.jsonld

tpr15
type: PositiveEvaluationTest
type: ExpandTest
name: Clear protection with array with null context
purpose: Clear protection with array with null context
option:
  spec version: json-ld-1.1
input: expand/pr15-in.jsonld
expect: expand/pr15-out.jsonld

tpr16
type: PositiveEvaluationTest
type: ExpandTest
name: Override protected terms after null.
purpose: Override protected terms after null.
option:
  spec version: json-ld-1.1
input: expand/pr16-in.jsonld
expect: expand/pr16-out.jsonld

tpr17
type: NegativeEvaluationTest
type: ExpandTest
name: Fail to override protected terms with type.
purpose: Fail to override protected terms with type.
option:
  spec version: json-ld-1.1
input: expand/pr17-in.jsonld
expect error code: invalid context nullification

tpr18
type: NegativeEvaluationTest
type: ExpandTest
name: Fail to override protected terms with type+null+ctx.
purpose: Fail to override protected terms with type+null+ctx.
option:
  spec version: json-ld-1.1
input: expand/pr18-in.jsonld
expect error code: invalid context nullification

tpr19
type: PositiveEvaluationTest
type: ExpandTest
name: Mix of protected and unprotected terms.
purpose: Mix of protected and unprotected terms.
option:
  spec version: json-ld-1.1
input: expand/pr19-in.jsonld
expect: expand/pr19-out.jsonld

tpr20
type: NegativeEvaluationTest
type: ExpandTest
name: Fail with mix of protected and unprotected terms with type+null+ctx.
purpose: Fail with mix of protected and unprotected terms with type+null+ctx.
option:
  spec version: json-ld-1.1
input: expand/pr20-in.jsonld
expect error code: invalid context nullification

tpr21
type: NegativeEvaluationTest
type: ExpandTest
name: Fail with mix of protected and unprotected terms with type+null.
purpose: Fail with mix of protected and unprotected terms with type+null.
option:
  spec version: json-ld-1.1
input: expand/pr21-in.jsonld
expect error code: invalid context nullification

tpr22
type: PositiveEvaluationTest
type: ExpandTest
name: Check legal overriding of type-scoped protected term from nested node.
purpose: Check legal overriding of type-scoped protected term from nested node.
option:
  spec version: json-ld-1.1
input: expand/pr22-in.jsonld
expect: expand/pr22-out.jsonld

tpr23
type: PositiveEvaluationTest
type: ExpandTest
name: Allows redefinition of protected alias term with same definition.
purpose: Allows redefinition of protected alias term with same definition.
option:
  spec version: json-ld-1.1
input: expand/pr23-in.jsonld
expect: expand/pr23-out.jsonld

tpr24
type: PositiveEvaluationTest
type: ExpandTest
name: Allows redefinition of protected prefix term with same definition.
purpose: Allows redefinition of protected prefix term with same definition.
option:
  spec version: json-ld-1.1
input: expand/pr24-in.jsonld
expect: expand/pr24-out.jsonld

tpr25
type: PositiveEvaluationTest
type: ExpandTest
name: Allows redefinition of terms with scoped contexts using same definitions.
purpose: Allows redefinition of terms with scoped contexts using same definitions.
option:
  spec version: json-ld-1.1
input: expand/pr25-in.jsonld
expect: expand/pr25-out.jsonld

tpr26
type: NegativeEvaluationTest
type: ExpandTest
name: Fails on redefinition of terms with scoped contexts using different definitions.
purpose: Fails on redefinition of terms with scoped contexts using different definitions.
option:
  spec version: json-ld-1.1
input: expand/pr26-in.jsonld
expect error code: protected term redefinition

tpr27
type: PositiveEvaluationTest
type: ExpandTest
name: Allows redefinition of protected alias term with same definition modulo protected flag.
purpose: Allows redefinition of protected alias term with same definition modulo protected flag.
option:
  spec version: json-ld-1.1
input: expand/pr27-in.jsonld
expect: expand/pr27-out.jsonld

tpr28
type: NegativeEvaluationTest
type: ExpandTest
name: Fails if trying to redefine a protected null term.
purpose: A protected term with a null IRI mapping cannot be redefined.
option:
  spec version: json-ld-1.1
input: expand/pr28-in.jsonld
expect error code: protected term redefinition

tpr29
type: PositiveEvaluationTest
type: ExpandTest
name: Does not expand a Compact IRI using a non-prefix term.
purpose: Expansion of Compact IRIs considers if the term can be used as a prefix.
option:
  spec version: json-ld-1.1
input: expand/pr29-in.jsonld
expect: expand/pr29-out.jsonld

tpr30
type: PositiveEvaluationTest
type: ExpandTest
name: Keywords may be protected.
purpose: Keywords may not be redefined other than to protect them.
option:
  spec version: json-ld-1.1
input: expand/pr30-in.jsonld
expect: expand/pr30-out.jsonld

tpr31
type: NegativeEvaluationTest
type: ExpandTest
name: Protected keyword aliases cannot be overridden.
purpose: Keywords may not be redefined other than to protect them.
option:
  spec version: json-ld-1.1
input: expand/pr31-in.jsonld
expect error code: protected term redefinition

tpr32
type: NegativeEvaluationTest
type: ExpandTest
name: Protected @type cannot be overridden.
purpose: Keywords may not be redefined other than to protect them.
option:
  spec version: json-ld-1.1
input: expand/pr32-in.jsonld
expect error code: protected term redefinition

tpr33
type: NegativeEvaluationTest
type: ExpandTest
name: Fails if trying to declare a keyword alias as prefix.
purpose: Keyword aliases can not be used as prefixes.
option:
  spec version: json-ld-1.1
input: expand/pr33-in.jsonld
expect error code: invalid term definition

tpr34
type: PositiveEvaluationTest
type: ExpandTest
name: Ignores a non-keyword term starting with '@'
purpose: Terms in the form of a keyword, which are not keywords, are ignored.
option:
  spec version: json-ld-1.1
input: expand/pr34-in.jsonld
expect: expand/pr34-out.jsonld

tpr35
type: PositiveEvaluationTest
type: ExpandTest
name: Ignores a non-keyword term starting with '@' (with @vocab)
purpose: Terms in the form of a keyword, which are not keywords, are ignored.
option:
  spec version: json-ld-1.1
input: expand/pr35-in.jsonld
expect: expand/pr35-out.jsonld

tpr36
type: PositiveEvaluationTest
type: ExpandTest
name: Ignores a term mapping to a value in the form of a keyword.
purpose: Terms in the form of a keyword, which are not keywords, are ignored.
option:
  spec version: json-ld-1.1
input: expand/pr36-in.jsonld
expect: expand/pr36-out.jsonld

tpr37
type: PositiveEvaluationTest
type: ExpandTest
name: Ignores a term mapping to a value in the form of a keyword (with @vocab).
purpose: Terms in the form of a keyword, which are not keywords, are ignored.
option:
  spec version: json-ld-1.1
input: expand/pr37-in.jsonld
expect: expand/pr37-out.jsonld

tpr38
type: PositiveEvaluationTest
type: ExpandTest
name: Ignores a term mapping to a value in the form of a keyword (@reverse).
purpose: Terms in the form of a keyword, which are not keywords, are ignored.
option:
  spec version: json-ld-1.1
input: expand/pr38-in.jsonld
expect: expand/pr38-out.jsonld

tpr39
type: PositiveEvaluationTest
type: ExpandTest
name: Ignores a term mapping to a value in the form of a keyword (@reverse with @vocab).
purpose: Terms in the form of a keyword, which are not keywords, are ignored.
option:
  spec version: json-ld-1.1
input: expand/pr39-in.jsonld
expect: expand/pr39-out.jsonld

tpr40
type: PositiveEvaluationTest
type: ExpandTest
name: Protected terms and property-scoped contexts
purpose: Check overriding of protected term from property-scoped context.
option:
  spec version: json-ld-1.1
input: expand/pr40-in.jsonld
expect: expand/pr40-out.jsonld

tpr41
type: PositiveEvaluationTest
type: ExpandTest
name: Allows protected redefinition of equivalent id terms
purpose: Check protected redefinition of equivalent id terms in different forms.
option:
  spec version: json-ld-1.1
input: expand/pr41-in.jsonld
expect: expand/pr41-out.jsonld

tpr42
type: NegativeEvaluationTest
type: ExpandTest
name: Fail if protected flag not retained during redefinition
purpose: Check protected redefinition retains protected flag.
option:
  spec version: json-ld-1.1
input: expand/pr42-in.jsonld
expect error code: protected term redefinition

tpr43
type: PositiveEvaluationTest
type: ExpandTest
name: Clear protection in @graph @container with null context.
purpose: Clear protection in @graph @container with null context.
option:
  spec version: json-ld-1.1
input: expand/pr43-in.jsonld
expect: expand/pr43-out.jsonld

tso01
type: NegativeEvaluationTest
type: ExpandTest
name: @import is invalid in 1.0.
purpose: @import is invalid in 1.0.
option:
  spec version: json-ld-1.1
  processing mode: json-ld-1.0
input: expand/so01-in.jsonld
expect error code: invalid context entry

tso02
type: NegativeEvaluationTest
type: ExpandTest
name: @import must be a string
purpose: @import must be a string.
option:
  spec version: json-ld-1.1
input: expand/so02-in.jsonld
expect error code: invalid @import value

tso03
type: NegativeEvaluationTest
type: ExpandTest
name: @import overflow
purpose: Processors must detect source contexts that include @import.
option:
  spec version: json-ld-1.1
input: expand/so03-in.jsonld
expect error code: invalid context entry

tso05
type: PositiveEvaluationTest
type: ExpandTest
name: @propagate: true on type-scoped context with @import
purpose: type-scoped context with @propagate: true survive node-objects (with @import)
input: expand/so05-in.jsonld
expect: expand/so05-out.jsonld
option:
  spec version: json-ld-1.1

tso06
type: PositiveEvaluationTest
type: ExpandTest
name: @propagate: false on property-scoped context with @import
purpose: property-scoped context with @propagate: false do not survive node-objects (with @import)
input: expand/so06-in.jsonld
expect: expand/so06-out.jsonld
option:
  spec version: json-ld-1.1

tso07
type: NegativeEvaluationTest
type: ExpandTest
name: Protect all terms in sourced context
purpose: A protected context protects all term definitions.
option:
  spec version: json-ld-1.1
input: expand/so07-in.jsonld
expect error code: protected term redefinition

tso08
type: PositiveEvaluationTest
type: ExpandTest
name: Override term defined in sourced context
purpose: The containing context is merged into the source context.
option:
  spec version: json-ld-1.1
input: expand/so08-in.jsonld
expect: expand/so08-out.jsonld

tso09
type: PositiveEvaluationTest
type: ExpandTest
name: Override @vocab defined in sourced context
purpose: The containing context is merged into the source context.
option:
  spec version: json-ld-1.1
input: expand/so09-in.jsonld
expect: expand/so09-out.jsonld

tso10
type: NegativeEvaluationTest
type: ExpandTest
name: Protect terms in sourced context
purpose: The containing context is merged into the source context.
option:
  spec version: json-ld-1.1
input: expand/so10-in.jsonld
expect error code: protected term redefinition

tso11
type: PositiveEvaluationTest
type: ExpandTest
name: Override protected terms in sourced context
purpose: The containing context is merged into the source context.
option:
  spec version: json-ld-1.1
input: expand/so11-in.jsonld
expect: expand/so11-out.jsonld

tso12
type: NegativeEvaluationTest
type: ExpandTest
name: @import may not be used in an imported context.
purpose: @import only valid within a term definition.
option:
  spec version: json-ld-1.1
input: expand/so12-in.jsonld
expect error code: invalid context entry

tso13
type: NegativeEvaluationTest
type: ExpandTest
name: @import can only reference a single context
purpose: @import can only reference a single context.
option:
  spec version: json-ld-1.1
input: expand/so13-in.jsonld
expect error code: invalid remote context

ttn01
type: NegativeEvaluationTest
type: ExpandTest
name: @type: @none is illegal in 1.0.
purpose: @type: @none is illegal in json-ld-1.0.
option:
  spec version: json-ld-1.1
  processing mode: json-ld-1.0
input: expand/tn01-in.jsonld
expect error code: invalid type mapping

ttn02
type: PositiveEvaluationTest
type: ExpandTest
name: @type: @none expands strings as value objects
purpose: @type: @none leaves inputs other than strings alone
option:
  spec version: json-ld-1.1
input: expand/tn02-in.jsonld
expect: expand/tn02-out.jsonld