diff --git a/library/omikuji.py b/library/omikuji.py index 582404ad98..bc5a489892 100644 --- a/library/omikuji.py +++ b/library/omikuji.py @@ -10,12 +10,16 @@ from functools import reduce from random import choices + class AbstractOmikujiResults(ABC) - """ + + +""" おみくじの結果一覧の抽象クラス """ - pass - +pass + + """ Enumを継承している """ @@ -23,7 +27,6 @@ class AbstractOmikujiResults(ABC) AbstractOmikujiResults.register(Enum) - @dataclass class OmikujiResult: key: AbstractOmikujiResults @@ -55,14 +58,15 @@ def test(self): entry.test assert reduce(lambda acc, cur: acc + cur.rate, self.entries, 0) == 1.0 - assert len(filter(lambda key, value: key != value.key, self.entries)) == 0 + assert len(filter(lambda key, value: key != + value.key, self.entries)) == 0 def draw(self): """ おみくじを引く """ return choices( - population=self.entries, + population=self.entries, weights=map(lambda entry: entry.rate, self.entries) k=1 )[0] @@ -71,6 +75,8 @@ def draw(self): """ おみくじメイン処理 """ + + class OmikujiResults(AbstractOmikujiResults): DaiKichi = auto() ChuKichi = auto() @@ -80,6 +86,7 @@ class OmikujiResults(AbstractOmikujiResults): Kyo = auto() DaiKyo = auto() + omikuji = Omikuji(entries={ OmikujiResults.DaiKichi: OmikujiResult(OmikujiResults.DaiKichi, 0.02, ":tada: 大吉 何でもうまくいく!!気がする!!"), OmikujiResults.ChuKichi: OmikujiResult(OmikujiResults.ChuKichi, 0.2, ":smile: 中吉 そこそこうまくいくかも!?"), @@ -90,8 +97,10 @@ class OmikujiResults(AbstractOmikujiResults): OmikujiResults.DaiKyo: OmikujiResult(OmikujiResults.DaiKyo, 0.0025, ":crying_cat_face: 大凶 そういう時もあります……猫になって耐えましょう"), }) + def test(): omikuji.test() - -def draw(): + + +def draw(): return omikuji.draw().message diff --git a/tests/library/test_omikuji.py b/tests/library/test_omikuji.py index 81cd21981e..f8fa00f39a 100644 --- a/tests/library/test_omikuji.py +++ b/tests/library/test_omikuji.py @@ -4,7 +4,7 @@ import unittest from library.omikuji import AbstractOmikujiResults, OmikujiResult, Omikuji, test - + class TestOmikuji(unittest.TestCase): """ @@ -17,7 +17,6 @@ def test_omikuji_config: """ test() - def test_omikuji_minimum: """ おみくじの実装が正常か