[
    {
        "description": "validation of date strings",
        "schema": { "format": "date" },
        "tests": [
            {
                "description": "all string formats ignore integers",
                "data": 12,
                "valid": true
            },
            {
                "description": "all string formats ignore floats",
                "data": 13.7,
                "valid": true
            },
            {
                "description": "all string formats ignore objects",
                "data": {},
                "valid": true
            },
            {
                "description": "all string formats ignore arrays",
                "data": [],
                "valid": true
            },
            {
                "description": "all string formats ignore booleans",
                "data": false,
                "valid": true
            },
            {
                "description": "all string formats ignore nulls",
                "data": null,
                "valid": true
            },
            {
                "description": "a valid date string",
                "data": "1963-06-19",
                "valid": true
            },
            {
                "description": "a valid date string with 31 days in January",
                "data": "2020-01-31",
                "valid": true
            },
            {
                "description": "a invalid date string with 32 days in January",
                "data": "2020-01-32",
                "valid": false
            },
            {
                "description": "a valid date string with 28 days in February (normal)",
                "data": "2021-02-28",
                "valid": true
            },
            {
                "description": "a invalid date string with 29 days in February (normal)",
                "data": "2021-02-29",
                "valid": false
            },
            {
                "description": "a valid date string with 29 days in February (leap)",
                "data": "2020-02-29",
                "valid": true
            },
            {
                "description": "a invalid date string with 30 days in February (leap)",
                "data": "2020-02-30",
                "valid": false
            },
            {
                "description": "a valid date string with 31 days in March",
                "data": "2020-03-31",
                "valid": true
            },
            {
                "description": "a invalid date string with 32 days in March",
                "data": "2020-03-32",
                "valid": false
            },
            {
                "description": "a valid date string with 30 days in April",
                "data": "2020-04-30",
                "valid": true
            },
            {
                "description": "a invalid date string with 31 days in April",
                "data": "2020-04-31",
                "valid": false
            },
            {
                "description": "a valid date string with 31 days in May",
                "data": "2020-05-31",
                "valid": true
            },
            {
                "description": "a invalid date string with 32 days in May",
                "data": "2020-05-32",
                "valid": false
            },
            {
                "description": "a valid date string with 30 days in June",
                "data": "2020-06-30",
                "valid": true
            },
            {
                "description": "a invalid date string with 31 days in June",
                "data": "2020-06-31",
                "valid": false
            },
            {
                "description": "a valid date string with 31 days in July",
                "data": "2020-07-31",
                "valid": true
            },
            {
                "description": "a invalid date string with 32 days in July",
                "data": "2020-07-32",
                "valid": false
            },
            {
                "description": "a valid date string with 31 days in August",
                "data": "2020-08-31",
                "valid": true
            },
            {
                "description": "a invalid date string with 32 days in August",
                "data": "2020-08-32",
                "valid": false
            },
            {
                "description": "a valid date string with 30 days in September",
                "data": "2020-09-30",
                "valid": true
            },
            {
                "description": "a invalid date string with 31 days in September",
                "data": "2020-09-31",
                "valid": false
            },
            {
                "description": "a valid date string with 31 days in October",
                "data": "2020-10-31",
                "valid": true
            },
            {
                "description": "a invalid date string with 32 days in October",
                "data": "2020-10-32",
                "valid": false
            },
            {
                "description": "a valid date string with 30 days in November",
                "data": "2020-11-30",
                "valid": true
            },
            {
                "description": "a invalid date string with 31 days in November",
                "data": "2020-11-31",
                "valid": false
            },
            {
                "description": "a valid date string with 31 days in December",
                "data": "2020-12-31",
                "valid": true
            },
            {
                "description": "a invalid date string with 32 days in December",
                "data": "2020-12-32",
                "valid": false
            },
            {
                "description": "a invalid date string with invalid month",
                "data": "2020-13-01",
                "valid": false
            },
            {
                "description": "an invalid date string",
                "data": "06/19/1963",
                "valid": false
            },
            {
                "description": "only RFC3339 not all of ISO 8601 are valid",
                "data": "2013-350",
                "valid": false
            },
            {
                "description": "non-padded month dates are not valid",
                "data": "1998-1-20",
                "valid": false
            },
            {
                "description": "non-padded day dates are not valid",
                "data": "1998-01-1",
                "valid": false
            },
            {
                "description": "invalid month",
                "data": "1998-13-01",
                "valid": false
            },
            {
                "description": "invalid month-day combination",
                "data": "1998-04-31",
                "valid": false
            },
            {
                "description": "2021 is not a leap year",
                "data": "2021-02-29",
                "valid": false
            },
            {
                "description": "2020 is a leap year",
                "data": "2020-02-29",
                "valid": true
            },
            {
                "description": "invalid non-ASCII '৪' (a Bengali 4)",
                "data": "1963-06-1৪",
                "valid": false
            }
        ]
    }
]
