Update evaluator

This commit is contained in:
Benoît Sierro
2023-08-02 12:50:34 +02:00
parent a8f0379c38
commit 04806ff814
5 changed files with 255 additions and 141 deletions

23
tests/test_evaluator.py Normal file
View File

@@ -0,0 +1,23 @@
import numpy as np
import pytest
from scgenerator.evaluator import Evaluator, Rule
@pytest.fixture
def disk_rules() -> list[Rule]:
return [
Rule("radius", lambda diameter: diameter / 2),
Rule("diameter", lambda radius: radius * 2),
Rule("diameter", lambda perimeter: perimeter / np.pi),
Rule("perimeter", lambda diameter: diameter * np.pi),
Rule("area", lambda radius: np.pi * radius**2),
Rule("radius", lambda area: np.sqrt(area / np.pi)),
]
def test_simple(disk_rules: list[Rule]):
evaluator = Evaluator(*disk_rules, Rule("radius", lambda lol: lol * 3))
evaluator.set()
assert evaluator.compute("area") == pytest.approx(78.53981633974483)