github.com/kaptinlin/jsonschema@v0.4.6/testdata/JSON-Schema-Test-Suite/tests/draft3/type.json (about)

     1  [
     2      {
     3          "description": "integer type matches integers",
     4          "schema": {"type": "integer"},
     5          "tests": [
     6              {
     7                  "description": "an integer is an integer",
     8                  "data": 1,
     9                  "valid": true
    10              },
    11              {
    12                  "description": "a float is not an integer",
    13                  "data": 1.1,
    14                  "valid": false
    15              },
    16              {
    17                  "description": "a string is not an integer",
    18                  "data": "foo",
    19                  "valid": false
    20              },
    21              {
    22                  "description": "a string is still not an integer, even if it looks like one",
    23                  "data": "1",
    24                  "valid": false
    25              },
    26              {
    27                  "description": "an object is not an integer",
    28                  "data": {},
    29                  "valid": false
    30              },
    31              {
    32                  "description": "an array is not an integer",
    33                  "data": [],
    34                  "valid": false
    35              },
    36              {
    37                  "description": "a boolean is not an integer",
    38                  "data": true,
    39                  "valid": false
    40              },
    41              {
    42                  "description": "null is not an integer",
    43                  "data": null,
    44                  "valid": false
    45              }
    46          ]
    47      },
    48      {
    49          "description": "number type matches numbers",
    50          "schema": {"type": "number"},
    51          "tests": [
    52              {
    53                  "description": "an integer is a number",
    54                  "data": 1,
    55                  "valid": true
    56              },
    57              {
    58                  "description": "a float with zero fractional part is a number",
    59                  "data": 1.0,
    60                  "valid": true
    61              },
    62              {
    63                  "description": "a float is a number",
    64                  "data": 1.1,
    65                  "valid": true
    66              },
    67              {
    68                  "description": "a string is not a number",
    69                  "data": "foo",
    70                  "valid": false
    71              },
    72              {
    73                  "description": "a string is still not a number, even if it looks like one",
    74                  "data": "1",
    75                  "valid": false
    76              },
    77              {
    78                  "description": "an object is not a number",
    79                  "data": {},
    80                  "valid": false
    81              },
    82              {
    83                  "description": "an array is not a number",
    84                  "data": [],
    85                  "valid": false
    86              },
    87              {
    88                  "description": "a boolean is not a number",
    89                  "data": true,
    90                  "valid": false
    91              },
    92              {
    93                  "description": "null is not a number",
    94                  "data": null,
    95                  "valid": false
    96              }
    97          ]
    98      },
    99      {
   100          "description": "string type matches strings",
   101          "schema": {"type": "string"},
   102          "tests": [
   103              {
   104                  "description": "1 is not a string",
   105                  "data": 1,
   106                  "valid": false
   107              },
   108              {
   109                  "description": "a float is not a string",
   110                  "data": 1.1,
   111                  "valid": false
   112              },
   113              {
   114                  "description": "a string is a string",
   115                  "data": "foo",
   116                  "valid": true
   117              },
   118              {
   119                  "description": "a string is still a string, even if it looks like a number",
   120                  "data": "1",
   121                  "valid": true
   122              },
   123              {
   124                  "description": "an object is not a string",
   125                  "data": {},
   126                  "valid": false
   127              },
   128              {
   129                  "description": "an array is not a string",
   130                  "data": [],
   131                  "valid": false
   132              },
   133              {
   134                  "description": "a boolean is not a string",
   135                  "data": true,
   136                  "valid": false
   137              },
   138              {
   139                  "description": "null is not a string",
   140                  "data": null,
   141                  "valid": false
   142              }
   143          ]
   144      },
   145      {
   146          "description": "object type matches objects",
   147          "schema": {"type": "object"},
   148          "tests": [
   149              {
   150                  "description": "an integer is not an object",
   151                  "data": 1,
   152                  "valid": false
   153              },
   154              {
   155                  "description": "a float is not an object",
   156                  "data": 1.1,
   157                  "valid": false
   158              },
   159              {
   160                  "description": "a string is not an object",
   161                  "data": "foo",
   162                  "valid": false
   163              },
   164              {
   165                  "description": "an object is an object",
   166                  "data": {},
   167                  "valid": true
   168              },
   169              {
   170                  "description": "an array is not an object",
   171                  "data": [],
   172                  "valid": false
   173              },
   174              {
   175                  "description": "a boolean is not an object",
   176                  "data": true,
   177                  "valid": false
   178              },
   179              {
   180                  "description": "null is not an object",
   181                  "data": null,
   182                  "valid": false
   183              }
   184          ]
   185      },
   186      {
   187          "description": "array type matches arrays",
   188          "schema": {"type": "array"},
   189          "tests": [
   190              {
   191                  "description": "an integer is not an array",
   192                  "data": 1,
   193                  "valid": false
   194              },
   195              {
   196                  "description": "a float is not an array",
   197                  "data": 1.1,
   198                  "valid": false
   199              },
   200              {
   201                  "description": "a string is not an array",
   202                  "data": "foo",
   203                  "valid": false
   204              },
   205              {
   206                  "description": "an object is not an array",
   207                  "data": {},
   208                  "valid": false
   209              },
   210              {
   211                  "description": "an array is an array",
   212                  "data": [],
   213                  "valid": true
   214              },
   215              {
   216                  "description": "a boolean is not an array",
   217                  "data": true,
   218                  "valid": false
   219              },
   220              {
   221                  "description": "null is not an array",
   222                  "data": null,
   223                  "valid": false
   224              }
   225          ]
   226      },
   227      {
   228          "description": "boolean type matches booleans",
   229          "schema": {"type": "boolean"},
   230          "tests": [
   231              {
   232                  "description": "an integer is not a boolean",
   233                  "data": 1,
   234                  "valid": false
   235              },
   236              {
   237                  "description": "a float is not a boolean",
   238                  "data": 1.1,
   239                  "valid": false
   240              },
   241              {
   242                  "description": "a string is not a boolean",
   243                  "data": "foo",
   244                  "valid": false
   245              },
   246              {
   247                  "description": "an object is not a boolean",
   248                  "data": {},
   249                  "valid": false
   250              },
   251              {
   252                  "description": "an array is not a boolean",
   253                  "data": [],
   254                  "valid": false
   255              },
   256              {
   257                  "description": "a boolean is a boolean",
   258                  "data": true,
   259                  "valid": true
   260              },
   261              {
   262                  "description": "null is not a boolean",
   263                  "data": null,
   264                  "valid": false
   265              }
   266          ]
   267      },
   268      {
   269          "description": "null type matches only the null object",
   270          "schema": {"type": "null"},
   271          "tests": [
   272              {
   273                  "description": "an integer is not null",
   274                  "data": 1,
   275                  "valid": false
   276              },
   277              {
   278                  "description": "a float is not null",
   279                  "data": 1.1,
   280                  "valid": false
   281              },
   282              {
   283                  "description": "a string is not null",
   284                  "data": "foo",
   285                  "valid": false
   286              },
   287              {
   288                  "description": "an object is not null",
   289                  "data": {},
   290                  "valid": false
   291              },
   292              {
   293                  "description": "an array is not null",
   294                  "data": [],
   295                  "valid": false
   296              },
   297              {
   298                  "description": "a boolean is not null",
   299                  "data": true,
   300                  "valid": false
   301              },
   302              {
   303                  "description": "null is null",
   304                  "data": null,
   305                  "valid": true
   306              }
   307          ]
   308      },
   309      {
   310          "description": "any type matches any type",
   311          "schema": {"type": "any"},
   312          "tests": [
   313              {
   314                  "description": "any type includes integers",
   315                  "data": 1,
   316                  "valid": true
   317              },
   318              {
   319                  "description": "any type includes float",
   320                  "data": 1.1,
   321                  "valid": true
   322              },
   323              {
   324                  "description": "any type includes string",
   325                  "data": "foo",
   326                  "valid": true
   327              },
   328              {
   329                  "description": "any type includes object",
   330                  "data": {},
   331                  "valid": true
   332              },
   333              {
   334                  "description": "any type includes array",
   335                  "data": [],
   336                  "valid": true
   337              },
   338              {
   339                  "description": "any type includes boolean",
   340                  "data": true,
   341                  "valid": true
   342              },
   343              {
   344                  "description": "any type includes null",
   345                  "data": null,
   346                  "valid": true
   347              }
   348          ]
   349      },
   350      {
   351          "description": "multiple types can be specified in an array",
   352          "schema": {"type": ["integer", "string"]},
   353          "tests": [
   354              {
   355                  "description": "an integer is valid",
   356                  "data": 1,
   357                  "valid": true
   358              },
   359              {
   360                  "description": "a string is valid",
   361                  "data": "foo",
   362                  "valid": true
   363              },
   364              {
   365                  "description": "a float is invalid",
   366                  "data": 1.1,
   367                  "valid": false
   368              },
   369              {
   370                  "description": "an object is invalid",
   371                  "data": {},
   372                  "valid": false
   373              },
   374              {
   375                  "description": "an array is invalid",
   376                  "data": [],
   377                  "valid": false
   378              },
   379              {
   380                  "description": "a boolean is invalid",
   381                  "data": true,
   382                  "valid": false
   383              },
   384              {
   385                  "description": "null is invalid",
   386                  "data": null,
   387                  "valid": false
   388              }
   389          ]
   390      },
   391      {
   392          "description": "types can include schemas",
   393          "schema": {
   394              "type": [
   395                  "array",
   396                  {"type": "object"}
   397              ]
   398          },
   399          "tests": [
   400              {
   401                  "description": "an integer is invalid",
   402                  "data": 1,
   403                  "valid": false
   404              },
   405              {
   406                  "description": "a string is invalid",
   407                  "data": "foo",
   408                  "valid": false
   409              },
   410              {
   411                  "description": "a float is invalid",
   412                  "data": 1.1,
   413                  "valid": false
   414              },
   415              {
   416                  "description": "an object is valid",
   417                  "data": {},
   418                  "valid": true
   419              },
   420              {
   421                  "description": "an array is valid",
   422                  "data": [],
   423                  "valid": true
   424              },
   425              {
   426                  "description": "a boolean is invalid",
   427                  "data": true,
   428                  "valid": false
   429              },
   430              {
   431                  "description": "null is invalid",
   432                  "data": null,
   433                  "valid": false
   434              }
   435          ]
   436      },
   437      {
   438          "description": "applies a nested schema",
   439          "schema": {
   440              "type": [
   441                  "integer",
   442                  {
   443                      "properties": {
   444                          "foo": {"type": "null"}
   445                      }
   446                  }
   447              ]
   448          },
   449          "tests": [
   450              {
   451                  "description": "an integer is valid",
   452                  "data": 1,
   453                  "valid": true
   454              },
   455              {
   456                  "description": "an object is valid only if it is fully valid",
   457                  "data": {"foo": null},
   458                  "valid": true
   459              },
   460              {
   461                  "description": "an object is invalid otherwise",
   462                  "data": {"foo": "bar"},
   463                  "valid": false
   464              }
   465          ]
   466      },
   467      {
   468          "description": "types from separate schemas are merged",
   469          "schema": {
   470              "type": [
   471                  {"type": ["string"]},
   472                  {"type": ["array", "null"]}
   473              ]
   474          },
   475          "tests": [
   476              {
   477                  "description": "an integer is invalid",
   478                  "data": 1,
   479                  "valid": false
   480              },
   481              {
   482                  "description": "a string is valid",
   483                  "data": "foo",
   484                  "valid": true
   485              },
   486              {
   487                  "description": "an array is valid",
   488                  "data": [1, 2, 3],
   489                  "valid": true
   490              }
   491          ]
   492      }
   493  ]