test: 增加测试
This commit is contained in:
47
tests/test_evalizor.py
Normal file
47
tests/test_evalizor.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""Tests for heurams.kernel.auxiliary.evalizor.Evalizer"""
|
||||
|
||||
from heurams.kernel.auxiliary.evalizor import Evalizer
|
||||
|
||||
|
||||
class TestEvalizer:
|
||||
def test_noop_on_plain_string(self):
|
||||
e = Evalizer({"x": 42})
|
||||
assert e("hello") == "hello"
|
||||
|
||||
def test_eval_expression(self):
|
||||
e = Evalizer({"x": 42})
|
||||
assert e("eval: x") == 42
|
||||
|
||||
def test_eval_arithmetic(self):
|
||||
e = Evalizer({"a": 10, "b": 20})
|
||||
assert e("eval: a + b") == 30
|
||||
|
||||
def test_traverses_dict(self):
|
||||
e = Evalizer({"val": 99})
|
||||
data = {"key_a": "plain", "key_b": "eval: val + 1"}
|
||||
result = e(data)
|
||||
assert result == {"key_a": "plain", "key_b": 100}
|
||||
|
||||
def test_traverses_list(self):
|
||||
e = Evalizer({"val": 5})
|
||||
data = ["eval: val", "plain", "eval: val * 2"]
|
||||
result = e(data)
|
||||
assert result == [5, "plain", 10]
|
||||
|
||||
def test_traverses_nested(self):
|
||||
e = Evalizer({"val": 3})
|
||||
data = {"outer": {"inner": "eval: val ** 2"}}
|
||||
result = e(data)
|
||||
assert result == {"outer": {"inner": 9}}
|
||||
|
||||
def test_traverses_tuple(self):
|
||||
e = Evalizer({"val": 7})
|
||||
data = ("eval: val", "other")
|
||||
result = e(data)
|
||||
assert result == (7, "other")
|
||||
|
||||
def test_non_string_passthrough(self):
|
||||
e = Evalizer({})
|
||||
assert e(42) == 42
|
||||
assert e(None) is None
|
||||
assert e([1, 2, 3]) == [1, 2, 3]
|
||||
Reference in New Issue
Block a user