[
    {
        "description": "validation of duration strings",
        "schema": {"format": "duration"},
        "comment": "see https://en.wikipedia.org/wiki/ISO_8601#Durations for examples and clarifications",
        "tests": [
            {
                "description": "years and months can appear without days",
                "data": "P1Y2M",
                "valid": true
            },
            {
                "description": "years and days cannot appear without months",
                "data": "P1Y2D",
                "valid": false
            },
            {
                "description": "months and days can appear without years",
                "data": "P1M2D",
                "valid": true
            },
            {
                "description": "hours and minutes can appear without seconds",
                "data": "PT1H2M",
                "valid": true
            },
            {
                "description": "hours and seconds cannot appear without minutes",
                "data": "PT1H2S",
                "valid": false
            },
            {
                "description": "minutes and seconds can appear without hour",
                "data": "PT1M2S",
                "valid": true
            },
            {
                "description": "half a year duration, with full stop decimal point",
                "comment": "ISO 8601 revision in year 2000 added decimals",
                "data": "P0.5Y",
                "valid": false
            },
            {
                "description": "half a year duration, with comma decimal point",
                "data": "P0,5Y",
                "valid": false
            },
            {
                "description": "only one (now zero) units can have a non-integer quantity",
                "data": "P0.5Y2.1M",
                "valid": false
            },
            {
                "description": "only the smallest unit can have a non-integer quantity",
                "data": "P0.5Y2M",
                "valid": false
            }
        ]
    }
]