Files
sspai-100-hours-series-python/projects/machine-learning/mock_choosing_watermelon.py

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)