diff --git a/exercises/practice/space-age/.meta/example.gd b/exercises/practice/space-age/.meta/example.gd index b2cf53b..873dcd2 100644 --- a/exercises/practice/space-age/.meta/example.gd +++ b/exercises/practice/space-age/.meta/example.gd @@ -14,5 +14,7 @@ var orbital_periods = { func on_planet(planet, seconds): - var ratio = orbital_periods.get(planet) + if planet not in orbital_periods: + return null + var ratio = orbital_periods[planet] return seconds / EARTH_SECONDS / ratio diff --git a/exercises/practice/space-age/.meta/template.j2 b/exercises/practice/space-age/.meta/template.j2 index ca6c79f..bf9c387 100644 --- a/exercises/practice/space-age/.meta/template.j2 +++ b/exercises/practice/space-age/.meta/template.j2 @@ -5,8 +5,13 @@ func _round(value): {% for case in cases %} func test_{{ case.func_name }}(solution_script): var got = solution_script.on_planet({{ case.input.planet | togdscript }}, {{ case.input.seconds }}) +{%- if not case.expect_error %} var want = {{ case.expected }} return [_round(got), _round(want)] +{%- else %} + var want = null + return [got, want] +{%- endif %} {% endfor %} diff --git a/exercises/practice/space-age/.meta/tests.toml b/exercises/practice/space-age/.meta/tests.toml index a62017e..7957bb7 100644 --- a/exercises/practice/space-age/.meta/tests.toml +++ b/exercises/practice/space-age/.meta/tests.toml @@ -35,4 +35,3 @@ description = "age on Neptune" [57b96e2a-1178-40b7-b34d-f3c9c34e4bf4] description = "invalid planet causes error" -include = false diff --git a/exercises/practice/space-age/space_age_test.gd b/exercises/practice/space-age/space_age_test.gd index 884ff1a..b638b31 100644 --- a/exercises/practice/space-age/space_age_test.gd +++ b/exercises/practice/space-age/space_age_test.gd @@ -49,3 +49,9 @@ func test_age_on_neptune(solution_script): var got = solution_script.on_planet("Neptune", 1821023456) var want = 0.35 return [_round(got), _round(want)] + + +func test_invalid_planet_causes_error(solution_script): + var got = solution_script.on_planet("Sun", 680804807) + var want = null + return [got, want]