2019-11-11 13:23:38 +01:00
|
|
|
{%- extends "master_template.j2" -%}
|
|
|
|
|
{% set imports = ["Board", "WHITE", "BLACK", "NONE"] %}
|
|
|
|
|
|
|
|
|
|
{% macro tuplify(territory_list) -%}
|
|
|
|
|
{%- if territory_list %}
|
|
|
|
|
{
|
|
|
|
|
{%- for v in territory_list %}
|
2019-12-25 02:28:38 +00:00
|
|
|
({{ v | join(', ') }}){{ "," if not loop.last }}
|
2019-11-11 13:23:38 +01:00
|
|
|
{%- endfor %}
|
|
|
|
|
}
|
|
|
|
|
{%- else %}
|
|
|
|
|
set()
|
|
|
|
|
{%- endif %}
|
|
|
|
|
{%- endmacro %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{% macro test_case(case) -%}
|
|
|
|
|
def test_{{ case["description"] | to_snake }}(self):
|
|
|
|
|
board = Board({{ case["input"]["board"] }})
|
|
|
|
|
{%- if case is error_case %}
|
|
|
|
|
with self.assertRaisesWithMessage(ValueError):
|
|
|
|
|
board.territory(x={{ case["input"]["x"] }}, y={{ case["input"]["y"] }})
|
|
|
|
|
{%- else %}
|
|
|
|
|
{%- if "owner" in case["expected"] %}
|
|
|
|
|
stone, territory = board.territory(x={{ case["input"]["x"] }}, y={{ case["input"]["y"] }})
|
|
|
|
|
self.assertEqual(stone, {{ case["expected"]["owner"] }})
|
|
|
|
|
self.assertSetEqual(territory, {{ tuplify(case["expected"]["territory"]) }})
|
|
|
|
|
{%- else %}
|
|
|
|
|
territories = board.territories()
|
|
|
|
|
{%- for (k, v) in case["expected"].items() %}
|
|
|
|
|
self.assertSetEqual(territories[{{k.replace("territory", "") | upper }}], {{tuplify(v)}})
|
|
|
|
|
{%- endfor %}
|
|
|
|
|
{%- endif %}
|
|
|
|
|
{%- endif %}
|
|
|
|
|
{%- endmacro %}
|