{%- import "generator_macros.j2" as macros with context -%}
{%- macro test_call(case) %}
            {{ case["property"] | to_snake }}(
                {% for arg in case["input"].values() -%}
                {{ arg }}{{- "," if not loop.last }}
                {% endfor %}
            )
{% endmacro -%}
{{ macros.header() }}

class {{ exercise | camel_case }}Test(unittest.TestCase):
    {% for case in cases -%}
    def test_{{ case["description"] | to_snake }}(self):
        self.assertEqual(
            {{- test_call(case) }},
            "{{ case["expected"] }}"
        )
    {% endfor %}

{{ macros.footer() }}
