Files
scgenerator/tests/test_evaluator.py
Benoît Sierro 04806ff814 Update evaluator
2023-08-02 12:50:34 +02:00

24 lines
715 B
Python

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)