mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
53 lines
2.2 KiB
Python
53 lines
2.2 KiB
Python
![]() |
import unittest
|
||
|
|
||
|
from .. import _True
|
||
|
from ..logic import _Received, _Has, _False, _And, _Or
|
||
|
|
||
|
|
||
|
class TestLogicSimplification(unittest.TestCase):
|
||
|
def test_simplify_true_in_and(self):
|
||
|
rules = {
|
||
|
"Wood": _True(),
|
||
|
"Rock": _True(),
|
||
|
}
|
||
|
summer = _Received("Summer", 0, 1)
|
||
|
assert (_Has("Wood", rules) & summer & _Has("Rock", rules)).simplify() == summer
|
||
|
|
||
|
def test_simplify_false_in_or(self):
|
||
|
rules = {
|
||
|
"Wood": _False(),
|
||
|
"Rock": _False(),
|
||
|
}
|
||
|
summer = _Received("Summer", 0, 1)
|
||
|
assert (_Has("Wood", rules) | summer | _Has("Rock", rules)).simplify() == summer
|
||
|
|
||
|
def test_simplify_and_in_and(self):
|
||
|
rule = _And(_And(_Received("Summer", 0, 1), _Received("Fall", 0, 1)),
|
||
|
_And(_Received("Winter", 0, 1), _Received("Spring", 0, 1)))
|
||
|
assert rule.simplify() == _And(_Received("Summer", 0, 1), _Received("Fall", 0, 1), _Received("Winter", 0, 1),
|
||
|
_Received("Spring", 0, 1))
|
||
|
|
||
|
def test_simplify_duplicated_and(self):
|
||
|
rule = _And(_And(_Received("Summer", 0, 1), _Received("Fall", 0, 1)),
|
||
|
_And(_Received("Summer", 0, 1), _Received("Fall", 0, 1)))
|
||
|
assert rule.simplify() == _And(_Received("Summer", 0, 1), _Received("Fall", 0, 1))
|
||
|
|
||
|
def test_simplify_or_in_or(self):
|
||
|
rule = _Or(_Or(_Received("Summer", 0, 1), _Received("Fall", 0, 1)),
|
||
|
_Or(_Received("Winter", 0, 1), _Received("Spring", 0, 1)))
|
||
|
assert rule.simplify() == _Or(_Received("Summer", 0, 1), _Received("Fall", 0, 1), _Received("Winter", 0, 1),
|
||
|
_Received("Spring", 0, 1))
|
||
|
|
||
|
def test_simplify_duplicated_or(self):
|
||
|
rule = _And(_Or(_Received("Summer", 0, 1), _Received("Fall", 0, 1)),
|
||
|
_Or(_Received("Summer", 0, 1), _Received("Fall", 0, 1)))
|
||
|
assert rule.simplify() == _Or(_Received("Summer", 0, 1), _Received("Fall", 0, 1))
|
||
|
|
||
|
def test_simplify_true_in_or(self):
|
||
|
rule = _Or(_True(), _Received("Summer", 0, 1))
|
||
|
assert rule.simplify() == _True()
|
||
|
|
||
|
def test_simplify_false_in_and(self):
|
||
|
rule = _And(_False(), _Received("Summer", 0, 1))
|
||
|
assert rule.simplify() == _False()
|