Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a test for YAML 1.1 types #483

Merged
merged 1 commit into from Sep 22, 2021
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
264 changes: 264 additions & 0 deletions tests/data/yaml11.schema
@@ -0,0 +1,264 @@
# https://github.com/perlpunk/yaml-test-schema/blob/master/data/schema-yaml11.yaml
---
'!!bool FALSE': ['bool', 'false()', 'false']
'!!bool False': ['bool', 'false()', 'false']
'!!bool N': ['bool', 'false()', "false"]
'!!bool NO': ['bool', 'false()', "false"]
'!!bool No': ['bool', 'false()', "false"]
'!!bool OFF': ['bool', 'false()', "false"]
'!!bool ON': ['bool', 'true()', "true"]
'!!bool Off': ['bool', 'false()', "false"]
'!!bool On': ['bool', 'true()', "true"]
'!!bool TRUE': ['bool', 'true()', 'true']
'!!bool True': ['bool', 'true()', 'true']
'!!bool Y': ['bool', 'true()', "true"]
'!!bool YES': ['bool', 'true()', "true"]
'!!bool Yes': ['bool', 'true()', "true"]
'!!bool false': ['bool', 'false()', 'false']
'!!bool n': ['bool', 'false()', "false"]
'!!bool no': ['bool', 'false()', "false"]
'!!bool off': ['bool', 'false()', "false"]
'!!bool on': ['bool', 'true()', "true"]
'!!bool true': ['bool', 'true()', 'true']
'!!bool y': ['bool', 'true()', "true"]
'!!bool yes': ['bool', 'true()', "true"]
'!!float +.INF': ['inf', 'inf()', '.inf']
'!!float +.Inf': ['inf', 'inf()', '.inf']
'!!float +.inf': ['inf', 'inf()', '.inf']
'!!float +0.3e+3': ['float', '300.0', '300.0']
'!!float -.INF': ['inf', 'inf-neg()', '-.inf']
'!!float -.Inf': ['inf', 'inf-neg()', '-.inf']
'!!float -.inf': ['inf', 'inf-neg()', '-.inf']
'!!float -3.14': ['float', '-3.14', '-3.14']
'!!float .0': ['float', '0.0', '0.0']
'!!float .14': ['float', '0.14', '0.14']
'!!float .1_4': ['float', '0.14', '0.14']
'!!float .3E-1': ['float', '0.03', '0.03']
'!!float .3e+3': ['float', '300.0', '300.0']
'!!float .INF': ['inf', 'inf()', '.inf']
'!!float .Inf': ['inf', 'inf()', '.inf']
'!!float .NAN': ['nan', 'nan()', '.nan']
'!!float .NaN': ['nan', 'nan()', '.nan']
'!!float .inf': ['inf', 'inf()', '.inf']
'!!float .nan': ['nan', 'nan()', '.nan']
'!!float 0.0': ['float', '0.0', '0.0']
'!!float 001.23': ['float', '1.23', '1.23']
'!!float 190:20:30.15': ['float', '685230.15', '685230.15']
'!!float 3.': ['float', '3.0', '3.0']
'!!float 3.14': ['float', '3.14', '3.14']
'!!float 3.3e+3': ['float', '3300.0', '3300.0']
'!!float 85.230_15e+03': ['float', '85230.15', '85230.15']
'!!float 85_230.15': ['float', '85230.15', '85230.15']
'!!int +0': ['int', '0', '0']
'!!int +0100_200': ['int', '32896', '32896']
'!!int +0b100': ['int', '4', '4']
'!!int +190:20:30': ['int', '685230', '685230']
'!!int +23': ['int', '23', '23']
'!!int -0': ['int', '0', '0']
'!!int -0100_200': ['int', '-32896', '-32896']
'!!int -0b101': ['int', '-5', '-5']
'!!int -0x30': ['int', '-48', '-48']
'!!int -190:20:30': ['int', '-685230', '-685230']
'!!int -23': ['int', '-23', '-23']
'!!int 0': ['int', '0', '0']
'!!int 00': ['int', '0', '0']
'!!int 0011': ['int', '9', '9']
'!!int 010': ['int', '8', '8']
'!!int 02_0': ['int', '16', '16']
'!!int 07': ['int', '7', '7']
'!!int 0b0': ['int', '0', '0']
'!!int 0b100_101': ['int', '37', '37']
'!!int 0x0': ['int', '0', '0']
'!!int 0x10': ['int', '16', '16']
'!!int 0x2_0': ['int', '32', '32']
'!!int 0x42': ['int', '66', '66']
'!!int 0xa': ['int', '10', '10']
'!!int 100_000': ['int', '100000', '100000']
'!!int 190:20:30': ['int', '685230', '685230']
'!!int 23': ['int', '23', '23']
'!!null #empty': ['null', 'null()', "null"]
'!!null NULL': ['null', 'null()', "null"]
'!!null Null': ['null', 'null()', "null"]
'!!null null': ['null', 'null()', 'null']
'!!null ~': ['null', 'null()', 'null']
'!!str #empty': ['str', '', "''"]
'!!str +.INF': ['str', '+.INF', "'+.INF'"]
'!!str +.Inf': ['str', '+.Inf', "'+.Inf'"]
'!!str +.inf': ['str', '+.inf', "'+.inf'"]
'!!str +0': ['str', '+0', "'+0'"]
'!!str +0.3e+3': ['str', '+0.3e+3', "'+0.3e+3'"]
'!!str +0.3e3': ['str', '+0.3e3', "+0.3e3"]
'!!str +0100_200': ['str', '+0100_200', "'+0100_200'"]
'!!str +0b100': ['str', '+0b100', "'+0b100'"]
'!!str +190:20:30': ['str', '+190:20:30', "'+190:20:30'"]
'!!str +23': ['str', '+23', "'+23'"]
'!!str -.INF': ['str', '-.INF', "'-.INF'"]
'!!str -.Inf': ['str', '-.Inf', "'-.Inf'"]
'!!str -.inf': ['str', '-.inf', "'-.inf'"]
'!!str -0': ['str', '-0', "'-0'"]
'!!str -0100_200': ['str', '-0100_200', "'-0100_200'"]
'!!str -0b101': ['str', '-0b101', "'-0b101'"]
'!!str -0x30': ['str', '-0x30', "'-0x30'"]
'!!str -190:20:30': ['str', '-190:20:30', "'-190:20:30'"]
'!!str -23': ['str', '-23', "'-23'"]
'!!str -3.14': ['str', '-3.14', "'-3.14'"]
'!!str .': ['str', '.', '.']
'!!str .0': ['str', '.0', "'.0'"]
'!!str .14': ['str', '.14', "'.14'"]
'!!str .1_4': ['str', '.1_4', "'.1_4'"]
'!!str .3E-1': ['str', '.3E-1', "'.3E-1'"]
'!!str .3e+3': ['str', '.3e+3', "'.3e+3'"]
'!!str .3e3': ['str', '.3e3', ".3e3"]
'!!str .INF': ['str', '.INF', "'.INF'"]
'!!str .Inf': ['str', '.Inf', "'.Inf'"]
'!!str .NAN': ['str', '.NAN', "'.NAN'"]
'!!str .NaN': ['str', '.NaN', "'.NaN'"]
'!!str ._': ['str', '._', '._']
'!!str ._14': ['str', '._14', '._14']
'!!str .inf': ['str', '.inf', "'.inf'"]
'!!str .nan': ['str', '.nan', "'.nan'"]
'!!str 0': ['str', '0', "'0'"]
'!!str 0.0': ['str', '0.0', "'0.0'"]
'!!str 0.3e3': ['str', '0.3e3', "0.3e3"]
'!!str 00': ['str', '00', "'00'"]
'!!str 001.23': ['str', '001.23', "'001.23'"]
'!!str 0011': ['str', '0011', "'0011'"]
'!!str 010': ['str', '010', "'010'"]
'!!str 02_0': ['str', '02_0', "'02_0'"]
'!!str 07': ['str', '07', "'07'"]
'!!str 0b0': ['str', '0b0', "'0b0'"]
'!!str 0b100_101': ['str', '0b100_101', "'0b100_101'"]
'!!str 0o0': ['str', '0o0', "0o0"]
'!!str 0o10': ['str', '0o10', "0o10"]
'!!str 0o7': ['str', '0o7', "0o7"]
'!!str 0x0': ['str', '0x0', "'0x0'"]
'!!str 0x2_0': ['str', '0x2_0', "'0x2_0'"]
'!!str 0xa': ['str', '0xa', "'0xa'"]
'!!str 100_000': ['str', '100_000', "'100_000'"]
'!!str 190:20:30': ['str', '190:20:30', "'190:20:30'"]
'!!str 190:20:30.15': ['str', '190:20:30.15', "'190:20:30.15'"]
'!!str 23': ['str', '23', "'23'"]
'!!str 3.': ['str', '3.', "'3.'"]
'!!str 3.14': ['str', '3.14', "'3.14'"]
'!!str 3.3e+3': ['str', '3.3e+3', "'3.3e+3'"]
'!!str 85.230_15e+03': ['str', '85.230_15e+03', "'85.230_15e+03'"]
'!!str 85_230.15': ['str', '85_230.15', "'85_230.15'"]
'!!str FALSE': ['str', 'FALSE', "'FALSE'"]
'!!str False': ['str', 'False', "'False'"]
'!!str N': ['str', 'N', "'N'"]
'!!str NO': ['str', 'NO', "'NO'"]
'!!str NULL': ['str', 'NULL', "'NULL'"]
'!!str Null': ['str', 'Null', "'Null'"]
'!!str OFF': ['str', 'OFF', "'OFF'"]
'!!str ON': ['str', 'ON', "'ON'"]
'!!str Off': ['str', 'Off', "'Off'"]
'!!str On': ['str', 'On', "'On'"]
'!!str TRUE': ['str', 'TRUE', "'TRUE'"]
'!!str True': ['str', 'True', "'True'"]
'!!str Y': ['str', 'Y', "'Y'"]
'!!str YES': ['str', 'YES', "'YES'"]
'!!str Yes': ['str', 'Yes', "'Yes'"]
'!!str _._': ['str', '_._', '_._']
'!!str false': ['str', 'false', "'false'"]
'!!str n': ['str', 'n', "'n'"]
'!!str no': ['str', 'no', "'no'"]
'!!str null': ['str', 'null', "'null'"]
'!!str off': ['str', 'off', "'off'"]
'!!str on': ['str', 'on', "'on'"]
'!!str true': ['str', 'true', "'true'"]
'!!str y': ['str', 'y', "'y'"]
'!!str yes': ['str', 'yes', "'yes'"]
'!!str ~': ['str', '~', "'~'"]
'#empty': ['null', 'null()', "null"]
'+.INF': ['inf', 'inf()', '.inf']
'+.Inf': ['inf', 'inf()', '.inf']
'+.inf': ['inf', 'inf()', '.inf']
'+0': ['int', '0', '0']
'+0.3e+3': ['float', '300.0', '300.0']
'+0.3e3': ['str', '+0.3e3', '+0.3e3']
'+0100_200': ['int', '32896', '32896']
'+0b100': ['int', '4', '4']
'+190:20:30': ['int', '685230', '685230']
'+23': ['int', '23', '23']
'+3.14': ['float', '3.14', '3.14']
'-.INF': ['inf', 'inf-neg()', '-.inf']
'-.Inf': ['inf', 'inf-neg()', '-.inf']
'-.inf': ['inf', 'inf-neg()', '-.inf']
'-0': ['int', '0', '0']
'-0100_200': ['int', '-32896', '-32896']
'-0b101': ['int', '-5', '-5']
'-0x30': ['int', '-48', '-48']
'-190:20:30': ['int', '-685230', '-685230']
'-23': ['int', '-23', '-23']
'-3.14': ['float', '-3.14', '-3.14']
'.': ['str', '.', '.']
'.0': ['float', '0.0', '0.0']
'.14': ['float', '0.14', '0.14']
'.1_4': ['float', '0.14', '0.14']
'.3E-1': ['float', '0.03', '0.03']
'.3e+3': ['float', '300.0', '300.0']
'.3e3': ['str', '.3e3', '.3e3']
'.INF': ['inf', 'inf()', '.inf']
'.Inf': ['inf', 'inf()', '.inf']
'.NAN': ['nan', 'nan()', '.nan']
'.NaN': ['nan', 'nan()', '.nan']
'._': ['str', '._', '._']
'._14': ['str', '._14', '._14']
'.inf': ['inf', 'inf()', '.inf']
'.nan': ['nan', 'nan()', '.nan']
'0': ['int', '0', '0']
'0.0': ['float', '0.0', '0.0']
'0.3e3': ['str', '0.3e3', '0.3e3']
'00': ['int', '0', '0']
'001.23': ['float', '1.23', '1.23']
'0011': ['int', '9', '9']
'010': ['int', '8', '8']
'02_0': ['int', '16', '16']
'07': ['int', '7', '7']
'08': ['str', '08', '08']
'0b0': ['int', '0', '0']
'0b100_101': ['int', '37', '37']
'0o0': ['str', '0o0', '0o0']
'0o10': ['str', '0o10', '0o10']
'0o7': ['str', '0o7', '0o7']
'0x0': ['int', '0', '0']
'0x10': ['int', '16', '16']
'0x2_0': ['int', '32', '32']
'0x42': ['int', '66', '66']
'0xa': ['int', '10', '10']
'100_000': ['int', '100000', '100000']
'190:20:30': ['int', '685230', '685230']
'190:20:30.15': ['float', '685230.15', '685230.15']
'23': ['int', '23', '23']
'3.': ['float', '3.0', '3.0']
'3.14': ['float', '3.14', '3.14']
'3.3e+3': ['float', '3300', '3300.0']
'3e3': ['str', '3e3', '3e3']
'85.230_15e+03': ['float', '85230.15', '85230.15']
'85_230.15': ['float', '85230.15', '85230.15']
'FALSE': ['bool', 'false()', 'false']
'False': ['bool', 'false()', 'false']
'N': ['bool', 'false()', "false"]
'NO': ['bool', 'false()', "false"]
'NULL': ['null', 'null()', "null"]
'Null': ['null', 'null()', "null"]
'OFF': ['bool', 'false()', "false"]
'ON': ['bool', 'true()', "true"]
'Off': ['bool', 'false()', "false"]
'On': ['bool', 'true()', "true"]
'TRUE': ['bool', 'true()', 'true']
'True': ['bool', 'true()', 'true']
'Y': ['bool', 'true()', "true"]
'YES': ['bool', 'true()', "true"]
'Yes': ['bool', 'true()', "true"]
'_._': ['str', '_._', '_._']
'false': ['bool', 'false()', 'false']
'n': ['bool', 'false()', "false"]
'no': ['bool', 'false()', "false"]
'null': ['null', 'null()', "null"]
'off': ['bool', 'false()', "false"]
'on': ['bool', 'true()', "true"]
'true': ['bool', 'true()', 'true']
'y': ['bool', 'true()', "true"]
'yes': ['bool', 'true()', "true"]
'~': ['null', 'null()', "null"]
9 changes: 9 additions & 0 deletions tests/data/yaml11.schema-skip
@@ -0,0 +1,9 @@
load: {
'Y': 1, 'y': 1, 'N': 1, 'n': 1,
'!!bool Y': 1, '!!bool N': 1, '!!bool n': 1, '!!bool y': 1,
'._', '!!str ._',
'._14', '!!str ._14'
}
dump: {
'!!str N': 1, '!!str Y': 1, '!!str n': 1, '!!str y': 1,
}