github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json (about)

     1  [
     2      {
     3          "description": "ignore if without then or else",
     4          "schema": {
     5              "if": {
     6                  "const": 0
     7              }
     8          },
     9          "tests": [
    10              {
    11                  "description": "valid when valid against lone if",
    12                  "data": 0,
    13                  "valid": true
    14              },
    15              {
    16                  "description": "valid when invalid against lone if",
    17                  "data": "hello",
    18                  "valid": true
    19              }
    20          ]
    21      },
    22      {
    23          "description": "ignore then without if",
    24          "schema": {
    25              "then": {
    26                  "const": 0
    27              }
    28          },
    29          "tests": [
    30              {
    31                  "description": "valid when valid against lone then",
    32                  "data": 0,
    33                  "valid": true
    34              },
    35              {
    36                  "description": "valid when invalid against lone then",
    37                  "data": "hello",
    38                  "valid": true
    39              }
    40          ]
    41      },
    42      {
    43          "description": "ignore else without if",
    44          "schema": {
    45              "else": {
    46                  "const": 0
    47              }
    48          },
    49          "tests": [
    50              {
    51                  "description": "valid when valid against lone else",
    52                  "data": 0,
    53                  "valid": true
    54              },
    55              {
    56                  "description": "valid when invalid against lone else",
    57                  "data": "hello",
    58                  "valid": true
    59              }
    60          ]
    61      },
    62      {
    63          "description": "if and then without else",
    64          "schema": {
    65              "if": {
    66                  "exclusiveMaximum": 0
    67              },
    68              "then": {
    69                  "minimum": -10
    70              }
    71          },
    72          "tests": [
    73              {
    74                  "description": "valid through then",
    75                  "data": -1,
    76                  "valid": true
    77              },
    78              {
    79                  "description": "invalid through then",
    80                  "data": -100,
    81                  "valid": false
    82              },
    83              {
    84                  "description": "valid when if test fails",
    85                  "data": 3,
    86                  "valid": true
    87              }
    88          ]
    89      },
    90      {
    91          "description": "if and else without then",
    92          "schema": {
    93              "if": {
    94                  "exclusiveMaximum": 0
    95              },
    96              "else": {
    97                  "multipleOf": 2
    98              }
    99          },
   100          "tests": [
   101              {
   102                  "description": "valid when if test passes",
   103                  "data": -1,
   104                  "valid": true
   105              },
   106              {
   107                  "description": "valid through else",
   108                  "data": 4,
   109                  "valid": true
   110              },
   111              {
   112                  "description": "invalid through else",
   113                  "data": 3,
   114                  "valid": false
   115              }
   116          ]
   117      },
   118      {
   119          "description": "validate against correct branch, then vs else",
   120          "schema": {
   121              "if": {
   122                  "exclusiveMaximum": 0
   123              },
   124              "then": {
   125                  "minimum": -10
   126              },
   127              "else": {
   128                  "multipleOf": 2
   129              }
   130          },
   131          "tests": [
   132              {
   133                  "description": "valid through then",
   134                  "data": -1,
   135                  "valid": true
   136              },
   137              {
   138                  "description": "invalid through then",
   139                  "data": -100,
   140                  "valid": false
   141              },
   142              {
   143                  "description": "valid through else",
   144                  "data": 4,
   145                  "valid": true
   146              },
   147              {
   148                  "description": "invalid through else",
   149                  "data": 3,
   150                  "valid": false
   151              }
   152          ]
   153      },
   154      {
   155          "description": "non-interference across combined schemas",
   156          "schema": {
   157              "allOf": [
   158                  {
   159                      "if": {
   160                          "exclusiveMaximum": 0
   161                      }
   162                  },
   163                  {
   164                      "then": {
   165                          "minimum": -10
   166                      }
   167                  },
   168                  {
   169                      "else": {
   170                          "multipleOf": 2
   171                      }
   172                  }
   173              ]
   174          },
   175          "tests": [
   176              {
   177                  "description": "valid, but would have been invalid through then",
   178                  "data": -100,
   179                  "valid": true
   180              },
   181              {
   182                  "description": "valid, but would have been invalid through else",
   183                  "data": 3,
   184                  "valid": true
   185              }
   186          ]
   187      },
   188      {
   189          "description": "if with boolean schema true",
   190          "schema": {
   191              "if": true,
   192              "then": { "const": "then" },
   193              "else": { "const": "else" }
   194          },
   195          "tests": [
   196              {
   197                  "description": "boolean schema true in if always chooses the then path (valid)",
   198                  "data": "then",
   199                  "valid": true
   200              },
   201              {
   202                  "description": "boolean schema true in if always chooses the then path (invalid)",
   203                  "data": "else",
   204                  "valid": false
   205              }
   206          ]
   207      },
   208      {
   209          "description": "if with boolean schema false",
   210          "schema": {
   211              "if": false,
   212              "then": { "const": "then" },
   213              "else": { "const": "else" }
   214          },
   215          "tests": [
   216              {
   217                  "description": "boolean schema false in if always chooses the else path (invalid)",
   218                  "data": "then",
   219                  "valid": false
   220              },
   221              {
   222                  "description": "boolean schema false in if always chooses the else path (valid)",
   223                  "data": "else",
   224                  "valid": true
   225              }
   226          ]
   227      },
   228      {
   229          "description": "if appears at the end when serialized (keyword processing sequence)",
   230          "schema": {
   231              "then": { "const": "yes" },
   232              "else": { "const": "other" },
   233              "if": { "maxLength": 4 }
   234          },
   235          "tests": [
   236              {
   237                  "description": "yes redirects to then and passes",
   238                  "data": "yes",
   239                  "valid": true
   240              },
   241              {
   242                  "description": "other redirects to else and passes",
   243                  "data": "other",
   244                  "valid": true
   245              },
   246              {
   247                  "description": "no redirects to then and fails",
   248                  "data": "no",
   249                  "valid": false
   250              },
   251              {
   252                  "description": "invalid redirects to else and fails",
   253                  "data": "invalid",
   254                  "valid": false
   255              }
   256          ]
   257      }
   258  ]