48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from worlds.alttp.ItemPool import difficulties
|
|
from test.TestBase import TestBase
|
|
|
|
base_items = 41
|
|
extra_counts = (15, 15, 10, 5, 25)
|
|
|
|
|
|
class TestDifficulty(TestBase):
|
|
pass
|
|
|
|
|
|
def build_difficulty_test(difficulty):
|
|
# binds difficulty to definition local scope
|
|
def build_for(function):
|
|
def wrapped(self, *args):
|
|
return function(self, difficulty, *args)
|
|
|
|
return wrapped
|
|
|
|
return build_for
|
|
|
|
|
|
def build_dynamic_tests():
|
|
for name, difficulty in difficulties.items():
|
|
|
|
@build_difficulty_test(difficulty)
|
|
def test_dyn_difficulty(self, difficulty):
|
|
base = len(difficulty.baseitems)
|
|
self.assertEqual(base, base_items)
|
|
|
|
setattr(TestDifficulty, f"testCountBase{name}", test_dyn_difficulty)
|
|
|
|
@build_difficulty_test(difficulty)
|
|
def test_dyn_difficulty(self, difficulty):
|
|
self.assertEqual(len(extra_counts), len(difficulty.extras))
|
|
|
|
setattr(TestDifficulty, f"testCountExtra{name}", test_dyn_difficulty)
|
|
|
|
@build_difficulty_test(difficulty)
|
|
def test_dyn_difficulty(self, difficulty):
|
|
for i, extras in enumerate(extra_counts):
|
|
self.assertEqual(extras, len(difficulty.extras[i]))
|
|
|
|
setattr(TestDifficulty, f"testCountExtras{name}", test_dyn_difficulty)
|
|
|
|
|
|
build_dynamic_tests()
|