51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
"""Tests for Nij calculation."""
|
|
|
|
import pytest
|
|
|
|
from impakt.channel.model import DummyInfo
|
|
from impakt.criteria.nij import NIJ_INTERCEPTS, nij
|
|
|
|
|
|
class TestNij:
|
|
def test_nij_computation(self, neck_fz_channel, neck_my_channel):
|
|
result = nij(fz_channel=neck_fz_channel, my_channel=neck_my_channel)
|
|
assert result.criterion == "Nij"
|
|
assert result.value > 0
|
|
assert result.body_region == "Neck"
|
|
|
|
def test_nij_with_channels_dict(self, neck_fz_channel, neck_my_channel):
|
|
result = nij(channels={"fz": neck_fz_channel, "my": neck_my_channel})
|
|
assert result.value > 0
|
|
|
|
def test_nij_mode_detail(self, neck_fz_channel, neck_my_channel):
|
|
result = nij(fz_channel=neck_fz_channel, my_channel=neck_my_channel)
|
|
assert "mode" in result.details
|
|
assert result.details["mode"] in ("NTE", "NTF", "NCE", "NCF")
|
|
|
|
def test_nij_with_dummy_info(self, neck_fz_channel, neck_my_channel):
|
|
dummy = DummyInfo(dummy_type="H3-50M")
|
|
result = nij(
|
|
fz_channel=neck_fz_channel,
|
|
my_channel=neck_my_channel,
|
|
dummy=dummy,
|
|
)
|
|
assert result.value > 0
|
|
|
|
def test_nij_different_dummies_give_different_results(self, neck_fz_channel, neck_my_channel):
|
|
result_50m = nij(
|
|
fz_channel=neck_fz_channel,
|
|
my_channel=neck_my_channel,
|
|
dummy=DummyInfo(dummy_type="H3-50M"),
|
|
)
|
|
result_5f = nij(
|
|
fz_channel=neck_fz_channel,
|
|
my_channel=neck_my_channel,
|
|
dummy=DummyInfo(dummy_type="H3-05F"),
|
|
)
|
|
# 5th female has lower intercepts, so Nij should be higher
|
|
assert result_5f.value > result_50m.value
|
|
|
|
def test_nij_requires_both_channels(self):
|
|
with pytest.raises(ValueError, match="required"):
|
|
nij(fz_channel=None, my_channel=None)
|