214 lines
5.7 KiB
JSON
214 lines
5.7 KiB
JSON
[
|
||
{
|
||
"description": "ECMA 262 regex non-compliance",
|
||
"schema": { "format": "regex" },
|
||
"tests": [
|
||
{
|
||
"description": "ECMA 262 has no support for \\Z anchor from .NET",
|
||
"data": "^\\S(|(.|\\n)*\\S)\\Z",
|
||
"valid": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 regex $ does not match trailing newline",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^abc$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "matches in Python, but should not in jsonschema",
|
||
"data": "abc\n",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "should match",
|
||
"data": "abc",
|
||
"valid": true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 regex converts \\t to horizontal tab",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\t$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "does not match",
|
||
"data": "\\t",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "matches",
|
||
"data": "\u0009",
|
||
"valid": true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 regex escapes control codes with \\c and upper letter",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\cC$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "does not match",
|
||
"data": "\\cC",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "matches",
|
||
"data": "\u0003",
|
||
"valid": true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 regex escapes control codes with \\c and lower letter",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\cc$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "does not match",
|
||
"data": "\\cc",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "matches",
|
||
"data": "\u0003",
|
||
"valid": true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 \\d matches ascii digits only",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\d$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "ASCII zero matches",
|
||
"data": "0",
|
||
"valid": true
|
||
},
|
||
{
|
||
"description": "NKO DIGIT ZERO does not match (unlike e.g. Python)",
|
||
"data": "߀",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "NKO DIGIT ZERO (as \\u escape) does not match",
|
||
"data": "\u07c0",
|
||
"valid": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 \\D matches everything but ascii digits",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\D$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "ASCII zero does not match",
|
||
"data": "0",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "NKO DIGIT ZERO matches (unlike e.g. Python)",
|
||
"data": "߀",
|
||
"valid": true
|
||
},
|
||
{
|
||
"description": "NKO DIGIT ZERO (as \\u escape) matches",
|
||
"data": "\u07c0",
|
||
"valid": true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 \\w matches ascii letters only",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\w$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "ASCII 'a' matches",
|
||
"data": "a",
|
||
"valid": true
|
||
},
|
||
{
|
||
"description": "latin-1 e-acute does not match (unlike e.g. Python)",
|
||
"data": "é",
|
||
"valid": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 \\w matches everything but ascii letters",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\W$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "ASCII 'a' does not match",
|
||
"data": "a",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "latin-1 e-acute matches (unlike e.g. Python)",
|
||
"data": "é",
|
||
"valid": true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 \\s matches ascii whitespace only",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\s$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "ASCII space matches",
|
||
"data": " ",
|
||
"valid": true
|
||
},
|
||
{
|
||
"description": "latin-1 non-breaking-space does not match (unlike e.g. Python)",
|
||
"data": "\u00a0",
|
||
"valid": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"description": "ECMA 262 \\S matches everything but ascii whitespace",
|
||
"schema": {
|
||
"type": "string",
|
||
"pattern": "^\\S$"
|
||
},
|
||
"tests": [
|
||
{
|
||
"description": "ASCII space does not match",
|
||
"data": " ",
|
||
"valid": false
|
||
},
|
||
{
|
||
"description": "latin-1 non-breaking-space matches (unlike e.g. Python)",
|
||
"data": "\u00a0",
|
||
"valid": true
|
||
}
|
||
]
|
||
}
|
||
]
|