bookmark - Refactor
This commit is contained in:
68
tests/test_protocol/test_iihs_usncap.py
Normal file
68
tests/test_protocol/test_iihs_usncap.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""Tests for IIHS and US NCAP scoring."""
|
||||
|
||||
import pytest
|
||||
|
||||
from impakt.criteria.base import CriterionResult
|
||||
from impakt.protocol.iihs import IIHS, evaluate as iihs_evaluate
|
||||
from impakt.protocol.us_ncap import USNCAP, evaluate as us_evaluate
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_criteria():
|
||||
return {
|
||||
"HIC15": CriterionResult(criterion="HIC15", value=400, body_region="Head"),
|
||||
"Nij": CriterionResult(criterion="Nij", value=0.4, body_region="Neck"),
|
||||
"Chest Deflection": CriterionResult(
|
||||
criterion="Chest Deflection", value=35, unit="mm", body_region="Chest"
|
||||
),
|
||||
"Femur Load Left": CriterionResult(
|
||||
criterion="Femur Load Left", value=4.0, unit="kN", body_region="Femur Left"
|
||||
),
|
||||
"Femur Load Right": CriterionResult(
|
||||
criterion="Femur Load Right", value=4.5, unit="kN", body_region="Femur Right"
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
class TestIIHS:
|
||||
def test_good_results(self, sample_criteria):
|
||||
result = iihs_evaluate(sample_criteria)
|
||||
assert result.protocol == "IIHS"
|
||||
assert result.overall_rating in ("GOOD", "ACCEPTABLE", "MARGINAL", "POOR")
|
||||
|
||||
def test_region_scores(self, sample_criteria):
|
||||
result = iihs_evaluate(sample_criteria)
|
||||
assert len(result.region_scores) > 0
|
||||
for rs in result.region_scores:
|
||||
assert rs.rating is not None
|
||||
|
||||
def test_poor_hic(self):
|
||||
result = iihs_evaluate(
|
||||
{
|
||||
"HIC15": CriterionResult(criterion="HIC15", value=1500, body_region="Head"),
|
||||
}
|
||||
)
|
||||
assert result.overall_rating == "POOR"
|
||||
|
||||
def test_summary(self, sample_criteria):
|
||||
result = iihs_evaluate(sample_criteria)
|
||||
summary = result.summary()
|
||||
assert "IIHS" in summary
|
||||
|
||||
|
||||
class TestUSNCAP:
|
||||
def test_basic(self, sample_criteria):
|
||||
result = us_evaluate(sample_criteria)
|
||||
assert result.protocol == "US NCAP"
|
||||
assert result.stars is not None
|
||||
assert 1 <= result.stars <= 5
|
||||
|
||||
def test_injury_probabilities(self, sample_criteria):
|
||||
result = us_evaluate(sample_criteria)
|
||||
assert "combined_injury_probability" in result.details
|
||||
p = result.details["combined_injury_probability"]
|
||||
assert 0.0 <= p <= 1.0
|
||||
|
||||
def test_region_scores(self, sample_criteria):
|
||||
result = us_evaluate(sample_criteria)
|
||||
assert len(result.region_scores) > 0
|
||||
Reference in New Issue
Block a user