{
    "exercise": "palindrome-products",
    "version": "1.0.0",
    "cases": [{
            "description": "finds the smallest palindrome from single digit factors",
            "property": "smallest",
            "input_min": 1,
            "input_max": 9,
            "expected": {
                "value": 1,
                "factors": [
                    [1, 1]
                ]
            }
        },
        {
            "description": "finds the largest palindrome from single digit factors",
            "property": "largest",
            "input_min": 1,
            "input_max": 9,
            "expected": {
                "value": 9,
                "factors": [
                    [1, 9],
                    [3, 3]
                ]
            }
        },
        {
            "description": "find the smallest palindrome from double digit factors",
            "property": "smallest",
            "input_min": 10,
            "input_max": 99,
            "expected": {
                "value": 121,
                "factors": [
                    [11, 11]
                ]
            }
        },
        {
            "description": "find the largest palindrome from double digit factors",
            "property": "largest",
            "input_min": 10,
            "input_max": 99,
            "expected": {
                "value": 9009,
                "factors": [
                    [91, 99]
                ]
            }
        },
        {
            "description": "find smallest palindrome from triple digit factors",
            "property": "smallest",
            "input_min": 100,
            "input_max": 999,
            "expected": {
                "value": 10201,
                "factors": [
                    [101, 101]
                ]
            }
        },
        {
            "description": "find the largest palindrome from triple digit factors",
            "property": "largest",
            "input_min": 100,
            "input_max": 999,
            "expected": {
                "value": 906609,
                "factors": [
                    [913, 993]
                ]
            }
        },
        {
            "description": "find smallest palindrome from four digit factors",
            "property": "smallest",
            "input_min": 1000,
            "input_max": 9999,
            "expected": {
                "value": 1002001,
                "factors": [
                    [1001, 1001]
                ]
            }
        },
        {
            "description": "find the largest palindrome from four digit factors",
            "property": "largest",
            "input_min": 1000,
            "input_max": 9999,
            "expected": {
                "value": 99000099,
                "factors": [
                    [9901, 9999]
                ]
            }
        },
        {
            "description": "empty result for smallest if no palindrome in the range",
            "property": "smallest",
            "input_min": 1002,
            "input_max": 1003,
            "expected": {
                "error": "no palindrome with factors in the range 1002 to 1003"
            }
        },
        {
            "description": "empty result for largest if no palindrome in the range",
            "property": "largest",
            "input_min": 15,
            "input_max": 15,
            "expected": {
                "error": "no palindrome with factors in the range 15 to 15"
            }
        },
        {
            "description": "error result for smallest if min is more than max",
            "property": "smallest",
            "input_min": 10000,
            "input_max": 1,
            "expected": {
                "error": "invalid input: min is 10000 and max is 1"
            }
        },
        {
            "description": "error result for largest if min is more than max",
            "property": "largest",
            "input_min": 2,
            "input_max": 1,
            "expected": {
                "error": "invalid input: min is 2 and max is 1"
            }
        }
    ]
}