json: don't use c++20 designated initializers

This commit is contained in:
ochafik 2024-03-15 10:03:57 +00:00
parent 3b3ad949f5
commit 235ff6858d

View file

@ -82,8 +82,8 @@ static void run_all(const TestCase& tc) {
int main() { int main() {
run_all({ run_all({
.name = "exotic formats", "exotic formats",
.schema = R"""({ R"""({
"items": [ "items": [
{ "format": "date" }, { "format": "date" },
{ "format": "uuid" }, { "format": "uuid" },
@ -91,7 +91,7 @@ int main() {
{ "format": "date-time" } { "format": "date-time" }
] ]
})""", })""",
.expected = R"""( R"""(
date ::= [0-9] [0-9] [0-9] [0-9] "-" ( "0" [1-9] | "1" [0-2] ) "-" ( [0-2] [0-9] | "3" [0-1] ) date ::= [0-9] [0-9] [0-9] [0-9] "-" ( "0" [1-9] | "1" [0-2] ) "-" ( [0-2] [0-9] | "3" [0-1] )
date-string ::= "\"" date "\"" space date-string ::= "\"" date "\"" space
date-time ::= date "T" time date-time ::= date "T" time
@ -105,11 +105,11 @@ int main() {
}); });
run_all({ run_all({
.name = "string", "string",
.schema = R"""({ R"""({
"type": "string" "type": "string"
})""", })""",
.expected = R"""( R"""(
root ::= "\"" ( root ::= "\"" (
[^"\\] | [^"\\] |
"\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]) "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F])
@ -119,33 +119,33 @@ int main() {
}); });
run_all({ run_all({
.name = "boolean", "boolean",
.schema = R"""({ R"""({
"type": "boolean" "type": "boolean"
})""", })""",
.expected = R"""( R"""(
root ::= ("true" | "false") space root ::= ("true" | "false") space
space ::= " "? space ::= " "?
)""" )"""
}); });
run_all({ run_all({
.name = "integer", "integer",
.schema = R"""({ R"""({
"type": "integer" "type": "integer"
})""", })""",
.expected = R"""( R"""(
root ::= ("-"? ([0-9] | [1-9] [0-9]*)) space root ::= ("-"? ([0-9] | [1-9] [0-9]*)) space
space ::= " "? space ::= " "?
)""" )"""
}); });
run_all({ run_all({
.name = "tuple1", "tuple1",
.schema = R"""({ R"""({
"prefixItems": [{ "type": "string" }] "prefixItems": [{ "type": "string" }]
})""", })""",
.expected = R"""( R"""(
root ::= "[" space string "]" space root ::= "[" space string "]" space
space ::= " "? space ::= " "?
string ::= "\"" ( string ::= "\"" (
@ -156,11 +156,11 @@ int main() {
}); });
run_all({ run_all({
.name = "tuple2", "tuple2",
.schema = R"""({ R"""({
"prefixItems": [{ "type": "string" }, { "type": "number" }] "prefixItems": [{ "type": "string" }, { "type": "number" }]
})""", })""",
.expected = R"""( R"""(
number ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? space number ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? space
root ::= "[" space string "," space number "]" space root ::= "[" space string "," space number "]" space
space ::= " "? space ::= " "?
@ -172,25 +172,25 @@ int main() {
}); });
run_all({ run_all({
.name = "number", "number",
.schema = R"""({ R"""({
"type": "number" "type": "number"
})""", })""",
.expected = R"""( R"""(
root ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? space root ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? space
space ::= " "? space ::= " "?
)""" )"""
}); });
run_all({ run_all({
.name = "minItems", "minItems",
.schema = R"""({ R"""({
"items": { "items": {
"type": "boolean" "type": "boolean"
}, },
"minItems": 2 "minItems": 2
})""", })""",
.expected = R"""( R"""(
boolean ::= ("true" | "false") space boolean ::= ("true" | "false") space
root ::= "[" space boolean ( "," space boolean )( "," space boolean )* "]" space root ::= "[" space boolean ( "," space boolean )( "," space boolean )* "]" space
space ::= " "? space ::= " "?
@ -198,14 +198,14 @@ int main() {
}); });
run_all({ run_all({
.name = "maxItems 1", "maxItems 1",
.schema = R"""({ R"""({
"items": { "items": {
"type": "boolean" "type": "boolean"
}, },
"maxItems": 1 "maxItems": 1
})""", })""",
.expected = R"""( R"""(
boolean ::= ("true" | "false") space boolean ::= ("true" | "false") space
root ::= "[" space ( boolean )? "]" space root ::= "[" space ( boolean )? "]" space
space ::= " "? space ::= " "?
@ -213,14 +213,14 @@ int main() {
}); });
run_all({ run_all({
.name = "maxItems 2", "maxItems 2",
.schema = R"""({ R"""({
"items": { "items": {
"type": "boolean" "type": "boolean"
}, },
"maxItems": 2 "maxItems": 2
})""", })""",
.expected = R"""( R"""(
boolean ::= ("true" | "false") space boolean ::= ("true" | "false") space
root ::= "[" space ( boolean ( "," space boolean )? )? "]" space root ::= "[" space ( boolean ( "," space boolean )? )? "]" space
space ::= " "? space ::= " "?
@ -228,15 +228,15 @@ int main() {
}); });
run_all({ run_all({
.name = "min + maxItems", "min + maxItems",
.schema = R"""({ R"""({
"items": { "items": {
"type": ["number", "integer"] "type": ["number", "integer"]
}, },
"minItems": 3, "minItems": 3,
"maxItems": 5 "maxItems": 5
})""", })""",
.expected = R"""( R"""(
integer ::= ("-"? ([0-9] | [1-9] [0-9]*)) space integer ::= ("-"? ([0-9] | [1-9] [0-9]*)) space
item ::= number | integer item ::= number | integer
number ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? space number ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? space
@ -246,12 +246,12 @@ int main() {
}); });
run_all({ run_all({
.name = "regexp", "regexp",
.schema = R"""({ R"""({
"type": "string", "type": "string",
"pattern": "^(\\([0-9]{1,3}\\))?[0-9]{3}-[0-9]{4} and...$" "pattern": "^(\\([0-9]{1,3}\\))?[0-9]{3}-[0-9]{4} and...$"
})""", })""",
.expected = R"""( R"""(
dot ::= [\U00000000-\x09\x0B\x0C\x0E-\U0010FFFF] dot ::= [\U00000000-\x09\x0B\x0C\x0E-\U0010FFFF]
root ::= ("(" root-1 root-1? root-1? ")")? root-1 root-1 root-1 "-" root-1 root-1 root-1 root-1 " and" dot dot dot root ::= ("(" root-1 root-1? root-1? ")")? root-1 root-1 root-1 "-" root-1 root-1 root-1 root-1 " and" dot dot dot
root-1 ::= [0-9] root-1 ::= [0-9]
@ -260,8 +260,8 @@ int main() {
}); });
run_all({ run_all({
.name = "optionals", "optionals",
.schema = R"""({ R"""({
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"type": "object", "type": "object",
"properties": { "properties": {
@ -307,7 +307,7 @@ int main() {
"additionalProperties": false, "additionalProperties": false,
"definitions": {} "definitions": {}
})""", })""",
.expected = R"""( R"""(
a-kv ::= "\"a\"" space ":" space string a-kv ::= "\"a\"" space ":" space string
b-kv ::= "\"b\"" space ":" space string b-kv ::= "\"b\"" space ":" space string
c ::= number | string c ::= number | string
@ -331,8 +331,8 @@ int main() {
}); });
run_all({ run_all({
.name = "top-level $ref", "top-level $ref",
.schema = R"""({ R"""({
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$ref": "#/definitions/MyType", "$ref": "#/definitions/MyType",
"definitions": { "definitions": {
@ -350,7 +350,7 @@ int main() {
} }
} }
})""", })""",
.expected = R"""( R"""(
MyType ::= "{" space MyType-a-kv "}" space MyType ::= "{" space MyType-a-kv "}" space
MyType-a-kv ::= "\"a\"" space ":" space string MyType-a-kv ::= "\"a\"" space ":" space string
root ::= MyType root ::= MyType