42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import unittest
|
|
|
|
|
|
def get_answer_by_feature(feature, answer):
|
|
if feature in answer:
|
|
return True
|
|
return False
|
|
|
|
|
|
def is_better_watermelon(appearance, pattern, spot_range, echo):
|
|
features = [
|
|
get_answer_by_feature(appearance, {"round", "oval"}),
|
|
get_answer_by_feature(pattern, {"clear", "bright"}),
|
|
get_answer_by_feature(spot_range, {"middle", "big"}),
|
|
get_answer_by_feature(echo, {"clear", "pleasant"}),
|
|
]
|
|
|
|
if features.count(True) >= 3:
|
|
return True
|
|
return False
|
|
|
|
|
|
class TestChooseBetterWatermelon(unittest.TestCase):
|
|
|
|
samples = [
|
|
dict(appearance="broken", pattern="clear", spot_range="big", echo="depressing"),
|
|
dict(appearance="round", pattern="clear", spot_range="big", echo="pleasant"),
|
|
dict(appearance="oval", pattern="bright", spot_range="middle", echo="clear"),
|
|
dict(
|
|
appearance="round", pattern="blured", spot_range="small", echo="depressing"
|
|
),
|
|
]
|
|
|
|
def test_is_better_watermelon(self):
|
|
for sample in self.samples:
|
|
with self.subTest(**sample):
|
|
self.assertTrue(is_better_watermelon(**sample))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main(verbosity=2)
|