added default values to Rule functions
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import numpy as np
|
||||
import pytest
|
||||
|
||||
from scgenerator.evaluator import Evaluator, Rule
|
||||
from scgenerator import math, units
|
||||
from scgenerator.evaluator import Evaluator, EvaluatorError, Rule
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -16,7 +17,7 @@ def disk_rules() -> list[Rule]:
|
||||
]
|
||||
|
||||
|
||||
def test_simple(disk_rules: list[Rule]):
|
||||
def test_trivial(disk_rules: list[Rule]):
|
||||
evaluator = Evaluator(*disk_rules)
|
||||
evaluator.set(radius=5)
|
||||
|
||||
@@ -25,3 +26,28 @@ def test_simple(disk_rules: list[Rule]):
|
||||
evaluator.set(area=5)
|
||||
assert evaluator.compute("area") == 5
|
||||
assert evaluator.compute("radius") == 5
|
||||
|
||||
|
||||
def test_simple():
|
||||
evaluator = Evaluator.default()
|
||||
evaluator.set(wavelength=800e-9, t_num=1024, dt=5e-15)
|
||||
|
||||
assert evaluator.compute("t") == pytest.approx(math.tspace(t_num=1024, dt=5e-15))
|
||||
assert evaluator.compute("w0") == pytest.approx(units.nm(800))
|
||||
|
||||
|
||||
def test_default_args():
|
||||
def some_function(a: int, b: int, c: int = 5):
|
||||
return a + b + c
|
||||
|
||||
evaluator = Evaluator(Rule("d", some_function))
|
||||
evaluator.set(a=1, b=3)
|
||||
|
||||
with pytest.raises(EvaluatorError):
|
||||
evaluator.compute("c")
|
||||
assert evaluator.compute("d") == 9
|
||||
|
||||
evaluator.clear_computed()
|
||||
evaluator.set(c=10)
|
||||
assert evaluator.compute("c") == 10
|
||||
assert evaluator.compute("d") == 14
|
||||
|
||||
Reference in New Issue
Block a user