Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The *RNTuple Validation Suite* provides conformance tests for the [RNTuple Binar
The goal is to cover all parts of the specification with implications on the format.
It can be used to validate both writer and reader implementations of the RNTuple specification.
To that end, each test comes with a written description of the schema and the expected data.
We also provide a set of reference `.root` and `.json` files (see below).
Reference files for version 1.0.0 can be found under the [GitHub Release](https://github.com/root-project/rntuple-validation/releases/tag/v1.0.0).

## Test Categories

Expand Down
2 changes: 1 addition & 1 deletion compression/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

For the RNTuple Validation Suite, we assume that compression is orthogonal to the supported types and serialized data.
Therefore all tests in this category write a single `Int64` field with type `std::int64_t` and column type `SplitInt64`.
The entries have ascending values and the reference `.json` files only contain the sum of all elements.
The entries have ascending values and the reference files (`compression.*.json`) only contain the sum of all elements.

* [`algorithms`](algorithms): `zlib`, `lzma`, `lz4`, `zstd`
* [`block`](block): big and short compression blocks
2 changes: 2 additions & 0 deletions projections/cardinality/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@
2. Empty vectors
3. Increasing number of elements in the vector:
one element in the first field, two elements in the second field, etc.

The values can be found in the reference file `projections.cardinality.json`.
2 changes: 2 additions & 0 deletions projections/collection/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@

1. Ascending values
2. Empty collection

The values can be found in the reference file `projections.collection.json`.
2 changes: 2 additions & 0 deletions projections/leaf/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@
## Entries

1. Ascending values

The values can be found in the reference file `projections.leaf.json`.
2 changes: 2 additions & 0 deletions projections/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@

1. Ascending values
2. Empty collection

The values can be found in the reference file `projections.nested.json`.
1 change: 1 addition & 0 deletions structure/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

For the RNTuple Validation Suite, we assume that the structure is orthogonal to the supported types and serialized data.
Therefore all tests in this category write a single `Int32` field with type `std::int32_t` the entries have ascending values.
The values can be found in the reference files (`structure.*.json`).

* [`clusters`](clusters): multiple clusters
* [`cluster_groups`](cluster_groups): multiple cluster groups
Expand Down
2 changes: 1 addition & 1 deletion structure/feature_flag/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Unknown feature flag set

An empty RNTuple with feature flag 137 (>62) set in the header. Reading should fail accordingly.
The error message should indicate the feature flag.
The error message should indicate the feature flag, as documented in the reference file `structure.feature_flag.json`.

A later version of this test should set the flag in the footer.
2 changes: 2 additions & 0 deletions types/RVec/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ All child fields use the default column encoding `Int32`.
2. Empty vectors
3. Increasing number of elements in the vector:
one element in the first field, two elements in the second field, etc.

The values can be found in the reference file `types.RVec.fundamental.json`.
2 changes: 2 additions & 0 deletions types/RVec/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ All child fields use the default column encoding `Int32`.
1. Single-element vectors, with ascending values
2. Empty vectors
3. Increasing number of elements in the outer vector, with arbitrary lengths of the inner vectors

The values can be found in the reference file `types.RVec.nested.json`.
2 changes: 2 additions & 0 deletions types/array/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ with the default column types.

1. Simple values
2. Zero / empty values

The values can be found in the reference file `types.array.json`.
2 changes: 2 additions & 0 deletions types/atomic/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ with the corresponding column types.

1. Ascending values
2. Zero values

The values can be found in the reference file `types.atomic.json`.
2 changes: 2 additions & 0 deletions types/bitset/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ with the default column types.
1. Ascending bits set
2. All bits set
3. All bits unset

The values can be found in the reference file `types.bitset.json`.
2 changes: 2 additions & 0 deletions types/fundamental/integer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ with the corresponding column types.
3. Negative values for signed integer types (to validate zigzag encoding)
4. Minimum (lowest) values
5. Maximum values

The values can be found in the reference file `types.fundamental.integer.json`.
2 changes: 2 additions & 0 deletions types/fundamental/misc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ with the corresponding column types.
1. Ascending values
2. Low values
3. High values

The values can be found in the reference file `types.fundamental.misc.json`.
2 changes: 2 additions & 0 deletions types/fundamental/real/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ with the corresponding field and column types.
4. Smallest positive normal values
5. Smallest positive subnormal values
6. Maximum values

The values can be found in the reference file `types.fundamental.real.json`.
2 changes: 2 additions & 0 deletions types/fundamental/real32quant/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ and a value range of `[-1, 1]` unless noted otherwise.
3. Middle values of the fields' value range
4. Min values of the fields' value range
5. Max values of the fields' value range

The values can be found in the reference file `types.fundamental.real32trunc.json`.
2 changes: 2 additions & 0 deletions types/fundamental/real32trunc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ with the corresponding field, column types and bit width.
4. Smallest positive normal values with N bits
5. Smallest positive subnormal values with N bits
6. Maximum values with N bits

The values can be found in the reference file `types.fundamental.real32quant.json`.
2 changes: 2 additions & 0 deletions types/map/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ All child fields use the default column types for `std::string` (`Index64` for t
2. Empty maps
3. Increasing number of elements in the map:
one key-value pair in the first field, two key-value pairs in the second field, etc.

The values can be found in the reference file `types.map.fundamental.json`.
4 changes: 3 additions & 1 deletion types/map/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
- `[Split]Index{32,64}`

with the corresponding column type for the offset column of the two collection parent fields.
All child fields use the default column types for `std::string` (`SplitIndex64` for the principal column, `Char` for the second column) and `std::int32_t` (`SplitInt32`).
All child fields use the default column types for `std::string` (`Index64` for the principal column, `Char` for the second column) and `std::int32_t` (`Int32`).

## Entries

1. Single-element maps, with ascending values for both key and value
2. Empty maps
3. Increasing number of elements in the outer map, with arbitrary lengths of the inner maps

The values can be found in the reference file `types.map.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedMap` shared object.
6 changes: 4 additions & 2 deletions types/multimap/fundamental/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
# `std::map<std::string, std::int32_t>`
# `std::multimap<std::string, std::int32_t>`

## Fields

- `[Split]Index{32,64}`

with the corresponding column type for the offset column of the collection parent field.
All child fields use the default column types for `std::string` (`SplitIndex64` for the principal column, `Char` for the second column) and `std::int32_t` (`SplitInt32`).
All child fields use the default column types for `std::string` (`Index64` for the principal column, `Char` for the second column) and `std::int32_t` (`Int32`).

## Entries

1. Single-element maps, with ascending values for both key and value
2. Empty maps
3. Increasing number of elements in the map:
one key-value pair in the first field, two key-value pairs in the second field, etc.

The values can be found in the reference file `types.multimap.fundamental.json`.
4 changes: 3 additions & 1 deletion types/multimap/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
- `[Split]Index{32,64}`

with the corresponding column type for the offset column of the two collection parent fields.
All child fields use the default column types for `std::string` (`SplitIndex64` for the principal column, `Char` for the second column) and `std::int32_t` (`SplitInt32`).
All child fields use the default column types for `std::string` (`Index64` for the principal column, `Char` for the second column) and `std::int32_t` (`Int32`).

## Entries

1. Single-element maps, with ascending values for both key and value
2. Empty maps
3. Increasing number of elements in the outer map, with arbitrary lengths of the inner maps

The values can be found in the reference file `types.multimap.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedMultimap` shared object.
2 changes: 2 additions & 0 deletions types/multiset/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the set:
one element in the first field, two elements in the second field, etc.

The values can be found in the reference file `types.multiset.fundamental.json`.
2 changes: 2 additions & 0 deletions types/multiset/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the outer set, with arbitrary lengths of the inner sets

The values can be found in the reference file `types.multiset.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedMultiset` shared object.
2 changes: 2 additions & 0 deletions types/optional/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ with otherwise the default column types.
1. Simple values
2. No value
3. Zero / empty values

The values can be found in the reference file `types.optional.json`.
2 changes: 2 additions & 0 deletions types/pair/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ with the default column types.

1. Simple values
2. Zero / empty values

The values can be found in the reference file `types.pair.json`.
2 changes: 2 additions & 0 deletions types/set/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the set:
one element in the first field, two elements in the second field, etc.

The values can be found in the reference file `types.set.fundamental.json`.
2 changes: 2 additions & 0 deletions types/set/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the outer set, with arbitrary lengths of the inner sets

The values can be found in the reference file `types.set.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedSet` shared object.
2 changes: 2 additions & 0 deletions types/string/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ with the corresponding column type for the first (principal) column.
3. Unicode characters as UTF-8
4. Increasing length of strings:
one character in the first field, two characters in the second field, etc.

The values can be found in the reference file `types.string.json`.
2 changes: 2 additions & 0 deletions types/tuple/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ with the default column types.

1. Simple values
2. Zero / empty values

The values can be found in the reference file `types.tuple.json`.
2 changes: 2 additions & 0 deletions types/unique_ptr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ with otherwise the default column types.
1. Simple values
2. No value
3. Zero / empty values

The values can be found in the reference file `types.unique_ptr.json`.
4 changes: 3 additions & 1 deletion types/unordered_map/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
- `[Split]Index{32,64}`

with the corresponding column type for the offset column of the collection parent field.
All child fields use the default column types for `std::string` (`SplitIndex64` for the principal column, `Char` for the second column) and `std::int32_t` (`SplitInt32`).
All child fields use the default column types for `std::string` (`Index64` for the principal column, `Char` for the second column) and `std::int32_t` (`Int32`).

## Entries

1. Single-element maps, with ascending values for both key and value
2. Empty maps
3. Increasing number of elements in the map:
one key-value pair in the first field, two key-value pairs in the second field, etc.

The values can be found in the reference file `types.unordered_map.fundamental.json`.
4 changes: 3 additions & 1 deletion types/unordered_map/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
- `[Split]Index{32,64}`

with the corresponding column type for the offset column of the two collection parent fields.
All child fields use the default column types for `std::string` (`SplitIndex64` for the principal column, `Char` for the second column) and `std::int32_t` (`SplitInt32`).
All child fields use the default column types for `std::string` (`Index64` for the principal column, `Char` for the second column) and `std::int32_t` (`Int32`).

## Entries

1. Single-element maps, with ascending values for both key and value
2. Empty maps
3. Increasing number of elements in the outer map, with arbitrary lengths of the inner maps

The values can be found in the reference file `types.unordered_map.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedUnorderedMap` shared object.
4 changes: 3 additions & 1 deletion types/unordered_multimap/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
- `[Split]Index{32,64}`

with the corresponding column type for the offset column of the collection parent field.
All child fields use the default column types for `std::string` (`SplitIndex64` for the principal column, `Char` for the second column) and `std::int32_t` (`SplitInt32`).
All child fields use the default column types for `std::string` (`Index64` for the principal column, `Char` for the second column) and `std::int32_t` (`Int32`).

## Entries

1. Single-element maps, with ascending values for both key and value
2. Empty maps
3. Increasing number of elements in the map:
one key-value pair in the first field, two key-value pairs in the second field, etc.

The values can be found in the reference file `types.unordered_multimap.fundamental.json`.
4 changes: 3 additions & 1 deletion types/unordered_multimap/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
- `[Split]Index{32,64}`

with the corresponding column type for the offset column of the two collection parent fields.
All child fields use the default column types for `std::string` (`SplitIndex64` for the principal column, `Char` for the second column) and `std::int32_t` (`SplitInt32`).
All child fields use the default column types for `std::string` (`Index64` for the principal column, `Char` for the second column) and `std::int32_t` (`Int32`).

## Entries

1. Single-element maps, with ascending values for both key and value
2. Empty maps
3. Increasing number of elements in the outer map, with arbitrary lengths of the inner maps

The values can be found in the reference file `types.unordered_multimap.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedUnorderedMultimap` shared object.
2 changes: 2 additions & 0 deletions types/unordered_multiset/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the set:
one element in the first field, two elements in the second field, etc.

The values can be found in the reference file `types.unordered_multiset.fundamental.json`.
2 changes: 2 additions & 0 deletions types/unordered_multiset/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the outer set, with arbitrary lengths of the inner sets

The values can be found in the reference file `types.unordered_multiset.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedUnorderedMultiset` shared object.
2 changes: 2 additions & 0 deletions types/unordered_set/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the set:
one element in the first field, two elements in the second field, etc.

The values can be found in the reference file `types.unordered_set.fundamental.json`.
2 changes: 2 additions & 0 deletions types/unordered_set/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ All child fields use the default column encoding `Int32`.
2. Empty sets
3. Increasing number of elements in the outer set, with arbitrary lengths of the inner sets

The values can be found in the reference file `types.unordered_set.nested.json`.

## Dictionaries

These tests require ROOT dictionaries, which can be generated with the provided `Makefile` in this directory. This will create a `libNestedUnorderedSet` shared object.
2 changes: 2 additions & 0 deletions types/user/class/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ with the default column types.

1. Simple values
2. Zero / empty values

The values can be found in the reference file `types.user.class.json`.
2 changes: 2 additions & 0 deletions types/user/enum/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ with the default column types.

1. Simple values
2. Zero values

The values can be found in the reference file `types.user.enum.json`.
2 changes: 2 additions & 0 deletions types/variant/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
4. Empty `std::string`
5. Empty `std::vector`

The values can be found in the reference file `types.variant.json`.

__Missing:__
A `std::variant` that is `valueless_by_exception`.
This requires a type that throws during move assignment.
2 changes: 2 additions & 0 deletions types/vector/fundamental/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ All child fields use the default column encoding `Int32`.
2. Empty vectors
3. Increasing number of elements in the vector:
one element in the first field, two elements in the second field, etc.

The values can be found in the reference file `types.vector.fundamental.json`.
2 changes: 2 additions & 0 deletions types/vector/nested/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ All child fields use the default column encoding `Int32`.
1. Single-element vectors, with ascending values
2. Empty vectors
3. Increasing number of elements in the outer vector, with arbitrary lengths of the inner vectors

The values can be found in the reference file `types.vector.nested.json`.