{ "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" } } ] }