24 lines
715 B
Python
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)
|