Files
impakt/tests/__pycache__/test_integration.cpython-312-pytest-9.0.3.pyc

242 lines
43 KiB
Plaintext
Raw Normal View History

2026-04-10 14:37:34 -04:00
<EFBFBD>
F4<46>i<EFBFBD><00><00><<00>dZddlZddlmcmZddlmZddl Z
ddl Z ddl m Z mZmZmZmZmZddlmZddlmZmZmZddlmZee<1B>j8dz d z Ze j<d
<EFBFBD> <0B>d <0C><00>ZGd <0A>d<0E>Z Gd<0F>d<10>Z!Gd<11>d<12>Z"Gd<13>d<14>Z#y)z<>Integration tests using the synthetic MME fixture.
Tests the full pipeline: read MME -> transform -> criteria -> protocol scoring.
<EFBFBD>N)<01>Path)<06>chest_deflection<6F>clip_3ms<6D>
femur_load<EFBFBD>hic15<31>nij<69> tibia_index)<01> MMEReader)<03> euro_ncap<61>iihs<68>us_ncap)<01>
cfc_filter<EFBFBD>fixtures<65>
sample_mme<EFBFBD>module)<01>scopec<00>b<00>t<00>}|j}|t<00>}|s<>tjdt<00><00><02>dzdt j <00>vstj|<00>rtj|<00>ndtj|<01>dt j <00>vstjt<00>rtjt<00>ndtj|<02>d<05>z}ttj|<03><00><00>dx}}|jt<00>S)zLoad the synthetic MME fixture.zMME reader should support zL
>assert %(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.supports
}(%(py3)s)
}<7D>reader<65> FIXTURE_DIR)<04>py0<79>py2<79>py3<79>py5N) r
<00>supportsr<00>
@pytest_ar<61>_format_assertmsg<73> @py_builtins<6E>locals<6C>_should_repr_global_name<6D> _saferepr<70>AssertionError<6F>_format_explanation<6F>read)r<00> @py_assert1<74> @py_assert4<74> @py_format6s <20>2/Users/noise/Code/impakt/tests/test_integration.py<70> test_datar(s<><00><00><17>[<5B>F<EFBFBD> <11>?<3F>?<3F>S<>?<3F>;<3B> '<27>S<> '<27>S<>S<>+E<>k<EFBFBD>]<5D>)S<>S<>S<>S<>S<>S<>S<>6<EFBFBD>S<>S<>S<>6<EFBFBD>S<>S<>S<>?<3F>S<>S<>S<>S<>S<>S<>;<3B>S<>S<>S<>;<3B>S<>S<>S<> '<27>S<>S<>S<>S<>S<>S<> <11>;<3B>;<3B>{<7B> #<23>#<23>c<00>0<00>eZdZd<01>Zd<02>Zd<03>Zd<04>Zd<05>Zd<06>Zy)<08>TestMMEFixtureLoadingc<00> <00>|j}d}||k(}|s<>tjd|fd||f<02>dtj<00>vstj
|<01>rtj |<01>ndtj |<02>tj |<03>d<05>z}dd|iz}ttj|<06><00><00>dx}x}}|j}|j}|j}d}||k(} | s<>tjd| fd ||f<02>dtj<00>vstj
|<01>rtj |<01>ndtj |<02>tj |<04>tj |<07>tj |<08>d
<EFBFBD>z}
d d |
iz} ttj| <0B><00><00>dx}x}x}x} }|j}|j}|j}d }||k(} | s<>tjd| fd||f<02>dtj<00>vstj
|<01>rtj |<01>ndtj |<02>tj |<04>tj |<07>tj |<08>d
<EFBFBD>z}
d d |
iz} ttj| <0B><00><00>dx}x}x}x} }|j}|j}|j}d}||k(} | s<>tjd| fd||f<02>dtj<00>vstj
|<01>rtj |<01>ndtj |<02>tj |<04>tj |<07>tj |<08>d
<EFBFBD>z}
d d |
iz} ttj| <0B><00><00>dx}x}x}x} }|j}|j}|j }d}||k(} | s<>tjd| fd||f<02>dtj<00>vstj
|<01>rtj |<01>ndtj |<02>tj |<04>tj |<07>tj |<08>d
<EFBFBD>z}
d d |
iz} ttj| <0B><00><00>dx}x}x}x} }|j}|j}|j"}d}||k(} | s<>tjd| fd||f<02>dtj<00>vstj
|<01>rtj |<01>ndtj |<02>tj |<04>tj |<07>tj |<08>d
<EFBFBD>z}
d d |
iz} ttj| <0B><00><00>dx}x}x}x} }y)N<>IMPAKT_SYNTH_001<30><01>==)z/%(py2)s
{%(py2)s = %(py0)s.test_id
} == %(py5)sr(<00>rrr<00>assert %(py7)s<>py7<79> Synthetic)zg%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.metadata
}.vehicle
}.make
} == %(py9)s)rr<00>py4<79>py6<79>py9zassert %(py11)s<>py11<31>TestCar)zh%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.metadata
}.vehicle
}.model
} == %(py9)szHybrid III 50th Percentile Male)zk%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.metadata
}.dummy
}.dummy_type
} == %(py9)szFull Frontal Rigid Barrier)zk%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.metadata
}.impact
}.test_type
} == %(py9)sgfffff&L@)zk%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.metadata
}.impact
}.speed_kmh
} == %(py9)s)<12>test_idr<00>_call_reprcomparerrrr r!r"<00>metadata<74>vehicle<6C>make<6B>model<65>dummy<6D>
dummy_type<EFBFBD>impact<63> test_type<70> speed_kmh) <0C>selfr(r$r%<00> @py_assert3r&<00> @py_format8<74> @py_assert5<74> @py_assert8<74> @py_assert7<74> @py_format10<31> @py_format12s r'<00> test_metadataz#TestMMEFixtureLoading.test_metadatas<><00><00><18> <20> <20>6<>$6<>6<> <20>$6<>6<>6<>6<>6<> <20>$6<>6<>6<>6<>6<>6<>6<>y<EFBFBD>6<>6<>6<>y<EFBFBD>6<>6<>6<> <20>6<>6<>6<>$6<>6<>6<>6<>6<>6<>6<>6<><18>!<21>!<21>=<3D>!<21>)<29>)<29>=<3D>)<29>.<2E>.<2E>=<3D>+<2B>=<3D>.<2E>+<2B>=<3D>=<3D>=<3D>=<3D>.<2E>+<2B>=<3D>=<3D>=<3D>=<3D>=<3D>=<3D>y<EFBFBD>=<3D>=<3D>=<3D>y<EFBFBD>=<3D>=<3D>=<3D>!<21>=<3D>=<3D>=<3D>)<29>=<3D>=<3D>=<3D>.<2E>=<3D>=<3D>=<3D>+<2B>=<3D>=<3D>=<3D>=<3D>=<3D>=<3D>=<3D><18>!<21>!<21><<3C>!<21>)<29>)<29><<3C>)<29>/<2F>/<2F><<3C>9<EFBFBD><<3C>/<2F>9<EFBFBD><<3C><<3C><<3C><<3C>/<2F>9<EFBFBD><<3C><<3C><<3C><<3C><<3C><<3C>y<EFBFBD><<3C><<3C><<3C>y<EFBFBD><<3C><<3C><<3C>!<21><<3C><<3C><<3C>)<29><<3C><<3C><<3C>/<2F><<3C><<3C><<3C>9<EFBFBD><<3C><<3C><<3C><<3C><<3C><<3C><<3C><18>!<21>!<21>W<>!<21>'<27>'<27>W<>'<27>2<>2<>W<>6W<36>W<>2<>6W<36>W<>W<>W<>W<>2<>6W<36>W<>W<>W<>W<>W<>W<>y<EFBFBD>W<>W<>W<>y<EFBFBD>W<>W<>W<>!<21>W<>W<>W<>'<27>W<>W<>W<>2<>W<>W<>W<>6W<36>W<>W<>W<>W<>W<>W<>W<><18>!<21>!<21>R<>!<21>(<28>(<28>R<>(<28>2<>2<>R<>6R<36>R<>2<>6R<36>R<>R<>R<>R<>2<>6R<36>R<>R<>R<>R<>R<>R<>y<EFBFBD>R<>R<>R<>y<EFBFBD>R<>R<>R<>!<21>R<>R<>R<>(<28>R<>R<>R<>2<>R<>R<>R<>6R<36>R<>R<>R<>R<>R<>R<>R<><18>!<21>!<21>:<3A>!<21>(<28>(<28>:<3A>(<28>2<>2<>:<3A>d<EFBFBD>:<3A>2<>d<EFBFBD>:<3A>:<3A>:<3A>:<3A>2<>d<EFBFBD>:<3A>:<3A>:<3A>:<3A>:<3A>:<3A>y<EFBFBD>:<3A>:<3A>:<3A>y<EFBFBD>:<3A>:<3A>:<3A>!<21>:<3A>:<3A>:<3A>(<28>:<3A>:<3A>:<3A>2<>:<3A>:<3A>:<3A>d<EFBFBD>:<3A>:<3A>:<3A>:<3A>:<3A>:<3A>:<3A>:r)c<00>$<00>t|<01>}d}||k(}|s<>tjd|fd||f<02>dtj<00>vstj
t<00>rtj t<00>nddtj<00>vstj
|<01>rtj |<01>ndtj |<02>tj |<03>d<06>z}dd|iz}ttj|<06><00><00>dx}x}}y) N<>r.<00>z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)s<>lenr(<00>r<00>py1rr5<00>assert %(py8)s<>py8) rPrr:rrrr r!r")rDr(<00> @py_assert2rGr%<00> @py_format7<74> @py_format9s r'<00>test_channel_countz(TestMMEFixtureLoading.test_channel_count$s<><00><00><12>9<EFBFBD>~<7E>#<23><12>#<23>~<7E><12>#<23>#<23>#<23>#<23>~<7E><12>#<23>#<23>#<23>#<23>#<23>#<23>s<EFBFBD>#<23>#<23>#<23>s<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>9<EFBFBD>#<23>#<23>#<23>9<EFBFBD>#<23>#<23>#<23>~<7E>#<23>#<23>#<23><12>#<23>#<23>#<23>#<23>#<23>#<23>#r)c<00>F<00>|jd<01>}t|<02>}d}||k(}|s<>tjd|fd||f<02>dt j
<00>vstj t<00>rtjt<00>nddt j
<00>vstj |<02>rtj|<02>ndtj|<03>tj|<04>d<07>z}dd |iz}ttj|<07><00><00>dx}x}}y)
Nz 11HEAD0000AC*<2A>r.rOrP<00>
head_accelrQrSrT)
<EFBFBD>findrPrr:rrrr r!r")rDr(r[rUrGr%rVrWs r'<00>test_head_channels_foundz.TestMMEFixtureLoading.test_head_channels_found's<><00><00><1E>^<5E>^<5E>O<EFBFBD>4<>
<EFBFBD><12>:<3A><EFBFBD>#<23>!<21>#<23><EFBFBD>!<21>#<23>#<23>#<23>#<23><EFBFBD>!<21>#<23>#<23>#<23>#<23>#<23>#<23>s<EFBFBD>#<23>#<23>#<23>s<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>:<3A>#<23>#<23>#<23>:<3A>#<23>#<23>#<23><EFBFBD>#<23>#<23>#<23>!<21>#<23>#<23>#<23>#<23>#<23>#<23>#r)c<00>f<00>|jd<01>}|j}d}||k(}|s<>tjd|fd||f<02>dt j
<00>vstj |<02>rtj|<02>ndtj|<03>tj|<04>d<06>z}dd|iz}ttj|<07><00><00>dx}x}}|j}d }||k(}|s<>tjd|fd
||f<02>dt j
<00>vstj |<02>rtj|<02>ndtj|<03>tj|<04>d<06>z}dd|iz}ttj|<07><00><00>dx}x}}|j}d }||k(}|s<>tjd|fd ||f<02>dt j
<00>vstj |<02>rtj|<02>ndtj|<03>tj|<04>d<06>z}dd|iz}ttj|<07><00><00>dx}x}}|j}d }||k(}|s<>tjd|fd||f<02>dt j
<00>vstj |<02>rtj|<02>ndtj|<03>tj|<04>d<06>z}dd|iz}ttj|<07><00><00>dx}x}}y)N<>11HEAD0000ACXA<58>gr.<00>z,%(py2)s
{%(py2)s = %(py0)s.unit
} == %(py5)s<>chr0r1r2g<00><>@)z3%(py2)s
{%(py2)s = %(py0)s.sample_rate
} == %(py5)sih)z1%(py2)s
{%(py2)s = %(py0)s.n_samples
} == %(py5)si<73><00>z1%(py2)s
{%(py2)s = %(py0)s.cfc_class
} == %(py5)s) <0A>get<65>unitrr:rrrr r!r"<00> sample_rate<74> n_samples<65> cfc_class)rDr(rbr$r%rEr&rFs r'<00>test_channel_propertiesz-TestMMEFixtureLoading.test_channel_properties+s<><00><00> <16>]<5D>]<5D>+<2B> ,<2C><02><11>w<EFBFBD>w<EFBFBD><1D>#<23><1D>w<EFBFBD>#<23>~<7E><1D><1D><1D>w<EFBFBD>#<23><1D><1D><1D><1D><1D><1D>r<EFBFBD><1D><1D><1D>r<EFBFBD><1D><1D><1D>w<EFBFBD><1D><1D><1D>#<23><1D><1D><1D><1D><1D><1D><1D><11>~<7E>~<7E>(<28><17>(<28>~<7E><17>(<28>(<28>(<28>(<28>~<7E><17>(<28>(<28>(<28>(<28>(<28>(<28>r<EFBFBD>(<28>(<28>(<28>r<EFBFBD>(<28>(<28>(<28>~<7E>(<28>(<28>(<28><17>(<28>(<28>(<28>(<28>(<28>(<28>(<28><11>|<7C>|<7C>#<23>t<EFBFBD>#<23>|<7C>t<EFBFBD>#<23>#<23>#<23>#<23>|<7C>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>r<EFBFBD>#<23>#<23>#<23>r<EFBFBD>#<23>#<23>#<23>|<7C>#<23>#<23>#<23>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>#<23><11>|<7C>|<7C>#<23>t<EFBFBD>#<23>|<7C>t<EFBFBD>#<23>#<23>#<23>#<23>|<7C>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>r<EFBFBD>#<23>#<23>#<23>r<EFBFBD>#<23>#<23>#<23>|<7C>#<23>#<23>#<23>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>#r)c<00><><00>|j<00>}t|j<00><00>}|D<00>cgc]}d|vs<01>d|vs<01> |<04><02>}}t|<05>}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst jt<00>rt jt<00>nddt j<00>vst j|<05>rt j|<05>ndt j|<06>t j|<07>d<08>z} d d
| iz}
tt j|
<EFBFBD><00><00>dx}x}}ycc}w) N<>HEAD<41>AC<41>r.rOrP<00> head_groupsrQrSrT) <0C>groups<70>list<73>keysrPrr:rrrr r!r") rDr(ro<00>
group_keys<EFBFBD>krnrUrGr%rVrWs r'<00>test_auto_groupingz(TestMMEFixtureLoading.test_auto_grouping2s<><00><00><1A>!<21>!<21>#<23><06><19>&<26>+<2B>+<2B>-<2D>(<28>
<EFBFBD>",<2C>J<>*<2A>Q<EFBFBD><06>!<21> <0B><04><01> <09>q<EFBFBD>*<2A> <0B>J<><12>;<3B><1F>$<24>1<EFBFBD>$<24><1F>1<EFBFBD>$<24>$<24>$<24>$<24><1F>1<EFBFBD>$<24>$<24>$<24>$<24>$<24>$<24>s<EFBFBD>$<24>$<24>$<24>s<EFBFBD>$<24>$<24>$<24>$<24>$<24>$<24>;<3B>$<24>$<24>$<24>;<3B>$<24>$<24>$<24><1F>$<24>$<24>$<24>1<EFBFBD>$<24>$<24>$<24>$<24>$<24>$<24>$<24><>Ks<00> E<04>E<04>Ec<00><><00>|j<00>}d}||v}|s<>tjd|fd||f<02>tj|<03>dt j
<00>vstj |<02>rtj|<02>ndd<05>z}dd|iz}ttj|<06><00><00>dx}}d}||v}|s<>tjd|fd||f<02>tj|<03>dt j
<00>vstj |<02>rtj|<02>ndd<05>z}dd|iz}ttj|<06><00><00>dx}}y) NzDriver (1st Row Left)<29><01>in)z%(py1)s in %(py3)s<>tree)rRrzassert %(py5)srzVehicle Structure) <09> channel_treerr:r rrrr!r")rDr(rx<00> @py_assert0rU<00> @py_format4r&s r'<00>test_channel_treez'TestMMEFixtureLoading.test_channel_tree9s<><00><00><18>%<25>%<25>'<27><04>&<26>.<2E>&<26>$<24>.<2E>.<2E>.<2E>.<2E>&<26>$<24>.<2E>.<2E>.<2E>&<26>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>$<24>.<2E>.<2E>.<2E>$<24>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>"<22>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>"<22>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>d<EFBFBD>*<2A>*<2A>*<2A>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*r)N) <09>__name__<5F>
__module__<EFBFBD> __qualname__rLrXr]rirtr|<00>r)r'r+r+s <00><00>;<3B>$<24>$<24>$<24>%<25>+r)r+c<00><00>eZdZd<01>Zd<02>Zy)<04>TestTransformPipelinec<00><><00>|jd<01>}t|d<02>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}|j}|j} || k}|s<>tjd |fd
|| f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>d t j <00>vstj|<02>rtj|<02>nd tj| <09>d <0C>z}
d d|
iz} ttj| <0B><00><00>dx}x}} |j}d}||kD}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}y)Nr_iXr.rc<00>filteredr0r1r2)<01><=)zF%(py2)s
{%(py2)s = %(py0)s.peak
} <= %(py6)s
{%(py6)s = %(py4)s.peak
}rb)rrr4r5rSrT<00>>@<40><01>>)z+%(py2)s
{%(py2)s = %(py0)s.peak
} > %(py5)s) rdrrhrr:rrrr r!r"<00>peak) rDr(rbr<>r$r%rEr&rFrGrVrWs r'<00>test_cfc_filter_on_fixturez0TestTransformPipeline.test_cfc_filter_on_fixture@s<><00><00> <16>]<5D>]<5D>+<2B> ,<2C><02><1D>b<EFBFBD>#<23>&<26><08><17>!<21>!<21>(<28>S<EFBFBD>(<28>!<21>S<EFBFBD>(<28>(<28>(<28>(<28>!<21>S<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>x<EFBFBD>(<28>(<28>(<28>x<EFBFBD>(<28>(<28>(<28>!<21>(<28>(<28>(<28>S<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>(<28><17>}<7D>}<7D>'<27><02><07><07>'<27>}<7D><07>'<27>'<27>'<27>'<27>}<7D><07>'<27>'<27>'<27>'<27>'<27>'<27>x<EFBFBD>'<27>'<27>'<27>x<EFBFBD>'<27>'<27>'<27>}<7D>'<27>'<27>'<27>'<27>'<27>'<27><02>'<27>'<27>'<27><02>'<27>'<27>'<27><07>'<27>'<27>'<27>'<27>'<27>'<27>'<27><17>}<7D>}<7D>#<23>t<EFBFBD>#<23>}<7D>t<EFBFBD>#<23>#<23>#<23>#<23>}<7D>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>x<EFBFBD>#<23>#<23>#<23>x<EFBFBD>#<23>#<23>#<23>}<7D>#<23>#<23>#<23>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>#r)c
<00><><00>|jd<01>}|j<00>}|j}|j}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>t j|<06>d<06>z}dd|iz} tt j| <09><00><00>dx}x}x}}|j}|j}d }
||
<EFBFBD>} | j} || k\}|<05>s*t j
d
|fd || f<02>dt j<00>vst j|<03>rt j|<03>ndt j|<04>d t j<00>vst j|<01>rt j|<01>nd t j|<07>t j|
<EFBFBD>t j| <0B>t j| <0C>d <0A>z} dd| iz}tt j|<0E><00><00>dx}x}x}x}
x} } y)N<>
HEAD0000AC<EFBFBD>Rr.)zK%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.direction
} == %(py7)s<> resultant)rrr4r2zassert %(py9)sr6r_)<01>>=)z<>%(py2)s
{%(py2)s = %(py0)s.peak
} >= %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py6)s
{%(py6)s = %(py4)s.get
}(%(py8)s)
}.peak
}r()rrr4r5rT<00>py10<31>py12zassert %(py14)s<>py14)<0E>groupr<70><00>code<64> directionrr:rrrr r!r"r<>rd)rDr(r<>r<>r$rE<00> @py_assert6rGrFrJrI<00> @py_assert9<74> @py_assert11<31> @py_format13<31> @py_format15s r'<00>test_resultant_from_groupz/TestTransformPipeline.test_resultant_from_groupGsx<00><00><19><0F><0F> <0C>-<2D><05><19>O<EFBFBD>O<EFBFBD>%<25> <09><18>~<7E>~<7E>.<2E>~<7E>'<27>'<27>.<2E>3<EFBFBD>.<2E>'<27>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>'<27>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>y<EFBFBD>.<2E>.<2E>.<2E>y<EFBFBD>.<2E>.<2E>.<2E>~<7E>.<2E>.<2E>.<2E>'<27>.<2E>.<2E>.<2E>3<EFBFBD>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><18>~<7E>~<7E>E<><19><1D><1D>E<>/?<3F>E<><1D>/?<3F>!@<40>E<>!@<40>!E<>!E<>E<>~<7E>!E<>E<>E<>E<>E<>~<7E>!E<>E<>E<>E<>E<>E<>E<>y<EFBFBD>E<>E<>E<>y<EFBFBD>E<>E<>E<>~<7E>E<>E<>E<>E<>E<>E<><19>E<>E<>E<><19>E<>E<>E<><1D>E<>E<>E<>/?<3F>E<>E<>E<>!@<40>E<>E<>E<>!E<>E<>E<>E<>E<>E<>E<>E<>Er)N)r}r~rr<>r<>r<>r)r'r<>r<>?s <00><00>$<24>Fr)r<>c<00>0<00>eZdZd<01>Zd<02>Zd<03>Zd<04>Zd<05>Zd<06>Zy)<08>TestInjuryCriteriaPipelinec<00> <00>|jd<01>}t|<02>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}|j}d }||kD}|s<>tjd
|fd ||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}|j}d }||k(}|s<>tjd|fd ||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}|j}d}||kD}|s<>tjd
|fd ||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}|j}d}||k}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}y)Nr<4E><00>HIC15r.<00>z1%(py2)s
{%(py2)s = %(py0)s.criterion
} == %(py5)s<>resultr0r1r2rr<><00>z,%(py2)s
{%(py2)s = %(py0)s.value
} > %(py5)s<>Head)z3%(py2)s
{%(py2)s = %(py0)s.body_region
} == %(py5)s<>2i<><00><01><<3C>z,%(py2)s
{%(py2)s = %(py0)s.value
} < %(py5)s) r<>r<00> criterionrr:rrrr r!r"<00>value<75> body_region<6F> rDr(r<>r<>r$r%rEr&rFs r'<00>
test_hic15z%TestInjuryCriteriaPipeline.test_hic15PsD<00><00><19><0F><0F> <0C>-<2D><05><16>u<EFBFBD><1C><06><15><1F><1F>*<2A>7<EFBFBD>*<2A><1F>7<EFBFBD>*<2A>*<2A>*<2A>*<2A><1F>7<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>v<EFBFBD>*<2A>*<2A>*<2A>v<EFBFBD>*<2A>*<2A>*<2A><1F>*<2A>*<2A>*<2A>7<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A><15>|<7C>|<7C><1F>a<EFBFBD><1F>|<7C>a<EFBFBD><1F><1F><1F><1F>|<7C>a<EFBFBD><1F><1F><1F><1F><1F><1F>v<EFBFBD><1F><1F><1F>v<EFBFBD><1F><1F><1F>|<7C><1F><1F><1F>a<EFBFBD><1F><1F><1F><1F><1F><1F><1F><15>!<21>!<21>+<2B>V<EFBFBD>+<2B>!<21>V<EFBFBD>+<2B>+<2B>+<2B>+<2B>!<21>V<EFBFBD>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>v<EFBFBD>+<2B>+<2B>+<2B>v<EFBFBD>+<2B>+<2B>+<2B>!<21>+<2B>+<2B>+<2B>V<EFBFBD>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B><15>|<7C>|<7C> <20>b<EFBFBD> <20>|<7C>b<EFBFBD> <20> <20> <20> <20>|<7C>b<EFBFBD> <20> <20> <20> <20> <20> <20>v<EFBFBD> <20> <20> <20>v<EFBFBD> <20> <20> <20>|<7C> <20> <20> <20>b<EFBFBD> <20> <20> <20> <20> <20> <20> <20><15>|<7C>|<7C>"<22>d<EFBFBD>"<22>|<7C>d<EFBFBD>"<22>"<22>"<22>"<22>|<7C>d<EFBFBD>"<22>"<22>"<22>"<22>"<22>"<22>v<EFBFBD>"<22>"<22>"<22>v<EFBFBD>"<22>"<22>"<22>|<7C>"<22>"<22>"<22>d<EFBFBD>"<22>"<22>"<22>"<22>"<22>"<22>"r)c<00><><00>|jd<01>}t|<02>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}|j}d }||kD}|s<>tjd
|fd ||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}|j}d }||k}|s<>tjd |fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<06>z}dd|iz}ttj|<08><00><00>dx}x}}y)N<>
CHST0000AC<EFBFBD>3ms Clipr.r<>r<>r0r1r2rr<>r<><00>dr<>r<>) r<>rr<>rr:rrrr r!r"r<>r<>s r'<00> test_3ms_clipz(TestInjuryCriteriaPipeline.test_3ms_clipZse<00><00><19><0F><0F> <0C>-<2D><05><19>%<25><1F><06><15><1F><1F>-<2D>:<3A>-<2D><1F>:<3A>-<2D>-<2D>-<2D>-<2D><1F>:<3A>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D><1F>-<2D>-<2D>-<2D>:<3A>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D><15>|<7C>|<7C><1F>a<EFBFBD><1F>|<7C>a<EFBFBD><1F><1F><1F><1F>|<7C>a<EFBFBD><1F><1F><1F><1F><1F><1F>v<EFBFBD><1F><1F><1F>v<EFBFBD><1F><1F><1F>|<7C><1F><1F><1F>a<EFBFBD><1F><1F><1F><1F><1F><1F><1F><15>|<7C>|<7C>!<21>c<EFBFBD>!<21>|<7C>c<EFBFBD>!<21>!<21>!<21>!<21>|<7C>c<EFBFBD>!<21>!<21>!<21>!<21>!<21>!<21>v<EFBFBD>!<21>!<21>!<21>v<EFBFBD>!<21>!<21>!<21>|<7C>!<21>!<21>!<21>c<EFBFBD>!<21>!<21>!<21>!<21>!<21>!<21>!r)c<00><<00>|jd<01>}|jd<02>}t|||jj<00><03>}|j}d}||k(}|s<>t j d|fd||f<02>dtj<00>vst j|<04>rt j|<04>ndt j|<05>t j|<06>d<08>z}d d
|iz} tt j| <09><00><00>dx}x}}|j}d }||kD}|s<>t j d |fd ||f<02>dtj<00>vst j|<04>rt j|<04>ndt j|<05>t j|<06>d<08>z}d d
|iz} tt j| <09><00><00>dx}x}}|j}d}||k}|s<>t j d|fd||f<02>dtj<00>vst j|<04>rt j|<04>ndt j|<05>t j|<06>d<08>z}d d
|iz} tt j| <09><00><00>dx}x}}y)N<>11NECKUP00FOZA<5A>11NECKUP00MOYA<59><03>
fz_channel<EFBFBD>
my_channelr?<00>Nijr.r<>r<>r0r1r2rr<>r<>g@r<>r<>)rdrr;r?r<>rr:rrrr r!r"r<>)
rDr(<00>fz<66>myr<79>r$r%rEr&rFs
r'<00>test_nijz#TestInjuryCriteriaPipeline.test_nijas<><00><00> <16>]<5D>]<5D>+<2B> ,<2C><02> <16>]<5D>]<5D>+<2B> ,<2C><02><14><02>r<EFBFBD><19>9K<39>9K<39>9Q<39>9Q<39>R<><06><15><1F><1F>(<28>5<EFBFBD>(<28><1F>5<EFBFBD>(<28>(<28>(<28>(<28><1F>5<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>v<EFBFBD>(<28>(<28>(<28>v<EFBFBD>(<28>(<28>(<28><1F>(<28>(<28>(<28>5<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>(<28><15>|<7C>|<7C><1F>a<EFBFBD><1F>|<7C>a<EFBFBD><1F><1F><1F><1F>|<7C>a<EFBFBD><1F><1F><1F><1F><1F><1F>v<EFBFBD><1F><1F><1F>v<EFBFBD><1F><1F><1F>|<7C><1F><1F><1F>a<EFBFBD><1F><1F><1F><1F><1F><1F><1F><15>|<7C>|<7C>!<21>c<EFBFBD>!<21>|<7C>c<EFBFBD>!<21>!<21>!<21>!<21>|<7C>c<EFBFBD>!<21>!<21>!<21>!<21>!<21>!<21>v<EFBFBD>!<21>!<21>!<21>v<EFBFBD>!<21>!<21>!<21>|<7C>!<21>!<21>!<21>c<EFBFBD>!<21>!<21>!<21>!<21>!<21>!<21>!r)c<00>4<00>|jd<01>}t|<02><02>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<07>z}dd |iz}ttj|<08><00><00>dx}x}}|j}d
}||k(}|s<>tjd|fd ||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<07>z}dd |iz}ttj|<08><00><00>dx}x}}d } |j}
| |
k} d } |
| k}| r|s<>tjd| |fd| |
| f<03>tj| <09>dt j <00>vstj|<03>rtj|<03>ndtj|
<EFBFBD>tj| <0C>d<10>z} dd| iz}ttj|<0E><00><00>dx} x} x}x}
} y)N<>11CHST0000DCXA<58><01>channel<65>Chest Deflectionr.r<>r<>r0r1r2<00>mmrar<>g<00>F@<40>r<>r<><00>z,%(py1)s < %(py6)s
{%(py6)s = %(py4)s.value
}z,%(py6)s
{%(py6)s = %(py4)s.value
} < %(py8)s<>rRr4r5rT<00>assert %(py10)sr<73>) rdrr<>rr:rrrr r!r"rer<>)rDr(rbr<>r$r%rEr&rFrzrGrUrIrW<00> @py_format11s r'<00>test_chest_deflectionz0TestInjuryCriteriaPipeline.test_chest_deflectionis<><00><00> <16>]<5D>]<5D>+<2B> ,<2C><02>!<21>"<22>-<2D><06><15><1F><1F>5<>#5<>5<><1F>#5<>5<>5<>5<>5<><1F>#5<>5<>5<>5<>5<>5<>5<>v<EFBFBD>5<>5<>5<>v<EFBFBD>5<>5<>5<><1F>5<>5<>5<>#5<>5<>5<>5<>5<>5<>5<>5<><15>{<7B>{<7B>"<22>d<EFBFBD>"<22>{<7B>d<EFBFBD>"<22>"<22>"<22>"<22>{<7B>d<EFBFBD>"<22>"<22>"<22>"<22>"<22>"<22>v<EFBFBD>"<22>"<22>"<22>v<EFBFBD>"<22>"<22>"<22>{<7B>"<22>"<22>"<22>d<EFBFBD>"<22>"<22>"<22>"<22>"<22>"<22>"<22><13>)<29>f<EFBFBD>l<EFBFBD>l<EFBFBD>)<29>t<EFBFBD>l<EFBFBD>)<29>)<29>T<EFBFBD>)<29>l<EFBFBD>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>t<EFBFBD>l<EFBFBD>T<EFBFBD>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>f<EFBFBD>)<29>)<29>)<29>f<EFBFBD>)<29>)<29>)<29>l<EFBFBD>)<29>)<29>)<29>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29>)r)c<00>6<00>|jd<01>}t|d<02><03>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<08>z}d d
|iz}ttj|<08><00><00>dx}x}}|j}d }||k(}|s<>tjd|fd ||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<08>z}d d
|iz}ttj|<08><00><00>dx}x}}d } |j}
| |
k} d} |
| k}| r|s<>tjd| |fd| |
| f<03>tj| <09>dt j <00>vstj|<03>rtj|<03>ndtj|
<EFBFBD>tj| <0C>d<11>z} dd| iz}ttj|<0E><00><00>dx} x} x}x}
} y)N<>11FEMRLE00FOZA<5A>left<66>r<><00>side<64>Femur Load Leftr.r<>r<>r0r1r2<00>kNrag@g@r<>r<>r<>r<>r<>) rdrr<>rr:rrrr r!r"rer<>)rDr(<00>ch_leftr<74>r$r%rEr&rFrzrGrUrIrWr<>s r'<00>test_femur_loadz*TestInjuryCriteriaPipeline.test_femur_loadps<><00><00><1B>-<2D>-<2D> 0<>1<><07><1B>G<EFBFBD>&<26>9<><06><15><1F><1F>4<>#4<>4<><1F>#4<>4<>4<>4<>4<><1F>#4<>4<>4<>4<>4<>4<>4<>v<EFBFBD>4<>4<>4<>v<EFBFBD>4<>4<>4<><1F>4<>4<>4<>#4<>4<>4<>4<>4<>4<>4<>4<><15>{<7B>{<7B>"<22>d<EFBFBD>"<22>{<7B>d<EFBFBD>"<22>"<22>"<22>"<22>{<7B>d<EFBFBD>"<22>"<22>"<22>"<22>"<22>"<22>v<EFBFBD>"<22>"<22>"<22>v<EFBFBD>"<22>"<22>"<22>{<7B>"<22>"<22>"<22>d<EFBFBD>"<22>"<22>"<22>"<22>"<22>"<22>"<22><12>'<27>V<EFBFBD>\<5C>\<5C>'<27>s<EFBFBD>\<5C>'<27>'<27>C<EFBFBD>'<27>\<5C>C<EFBFBD>'<27>'<27>'<27>'<27>'<27>s<EFBFBD>\<5C>C<EFBFBD>'<27>'<27>'<27>s<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>V<EFBFBD>'<27>'<27>'<27>V<EFBFBD>'<27>'<27>'<27>\<5C>'<27>'<27>'<27>C<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'r)c<00><00>|jd<01>}|jd<02>}|jd<03>}t|||<04><04>}|j}d}||kD}|s<>tjd|fd||f<02>dt j <00>vstj|<05>rtj|<05>ndtj|<06>tj|<07>d <09>z} d
d | iz}
ttj|
<EFBFBD><00><00>dx}x}}y) N<>11TIBILEUOFOZA<5A>11TIBILEUOMOXA<58>11TIBILEUOMOYA<59>r<><00>
mx_channelr<EFBFBD>rr<>r<>r<>r0r1r2) rdr r<>rr:rrrr r!r") rDr(r<><00>mxr<78>r<>r$r%rEr&rFs r'<00>test_tibia_indexz+TestInjuryCriteriaPipeline.test_tibia_indexws<><00><00> <16>]<5D>]<5D>+<2B> ,<2C><02> <16>]<5D>]<5D>+<2B> ,<2C><02> <16>]<5D>]<5D>+<2B> ,<2C><02><1C><02>r<EFBFBD>b<EFBFBD>I<><06><15>|<7C>|<7C><1F>a<EFBFBD><1F>|<7C>a<EFBFBD><1F><1F><1F><1F>|<7C>a<EFBFBD><1F><1F><1F><1F><1F><1F>v<EFBFBD><1F><1F><1F>v<EFBFBD><1F><1F><1F>|<7C><1F><1F><1F>a<EFBFBD><1F><1F><1F><1F><1F><1F>r)N) r}r~rr<>r<>r<>r<>r<>r<>r<>r)r'r<>r<>Os <00><00>#<23>"<22>"<22>*<2A>(<28> r)r<>c<00>H<00>eZdZejd<01><00>Zd<02>Zd<03>Zd<04>Zd<05>Z y)<07>TestProtocolScoringPipelinec<00>@<00>|jd<01>}|jd<02>}i}t|<02>|d<t|<03>|d<t|j d<05>|j d<06>|j
j <00><07>|d<t|j d <09><00>
<EFBFBD>|d <t|j d <0C>d <0A><0E>|d<t|j d<10>d<11><0E>|d<t|j d<13>|j d<14>|j d<15><00><16>|d<|S)z+Compute all criteria from the fixture data.r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00>11FEMRRI00FOZA<5A>rightzFemur Load Rightr<74>r<>r<>r<>z Tibia Index)
r<EFBFBD>rrrrdr;r?rrr )rDr(<00>
head_group<EFBFBD> chest_group<75>resultss r'<00> all_criteriaz(TestProtocolScoringPipeline.all_criteria<69>s<00><00><1F>_<EFBFBD>_<EFBFBD>\<5C>2<>
<EFBFBD><1F>o<EFBFBD>o<EFBFBD>l<EFBFBD>3<> <0B><14><07> <20><1A>,<2C><07><07><18>&<26>{<7B>3<><07>
<EFBFBD><1B><1C> <20>}<7D>}<7D>%5<>6<> <20>}<7D>}<7D>%5<>6<><1B>$<24>$<24>*<2A>*<2A>
<EFBFBD><07><05><0E>
'7<>y<EFBFBD>}<7D>}<7D>M]<5D>?^<5E>&_<><07>"<22>#<23>%/<2F><1D>M<EFBFBD>M<EFBFBD>"2<>3<>&<26>&
<EFBFBD><07>!<21>"<22>'1<><1D>M<EFBFBD>M<EFBFBD>"2<>3<>'<27>'
<EFBFBD><07>"<22>#<23>"-<2D> <20>}<7D>}<7D>%5<>6<> <20>}<7D>}<7D>%5<>6<> <20>}<7D>}<7D>%5<>6<>"
<EFBFBD><07> <0A><1E>
<17>r)c<00>8 <00>tj|<01>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<02>rtj|<02>ndtj|<03>tj|<04>d<05>z}dd|iz}ttj|<07><00><00>dx}x}}|j}d}||u}|s<>tjd|fd ||f<02>dt j <00>vstj|<02>rtj|<02>ndtj|<03>tj|<04>d<05>z}dd|iz}ttj|<07><00><00>dx}x}}d
}|j} || k}
d } | | k}|
r|s<>tjd |
|fd || | f<03>tj|<08>dt j <00>vstj|<02>rtj|<02>ndtj| <09>tj| <0B>d<0E>z} dd| iz} ttj| <0A><00><00>dx}x}
x}x} } |j}
t|
<EFBFBD>}d
} || kD}|<0E>s
tjd|fd|| f<02>dt j <00>vstjt<00>rtjt<00>nddt j <00>vstj|<02>rtj|<02>ndtj|
<EFBFBD>tj|<04>tj| <0B>d<14>z} dd| iz} ttj| <0A><00><00>dx}
x}x}} |jD]<5D>}|j}d}||u}|s<>tjd|fd||f<02>dt j <00>vstj|<0F>rtj|<0F>ndtj|<03>tj|<04>d<05>z}dd|iz}ttj|<07><00><00>dx}x}}<04><>y)Nz Euro NCAPr.<00>z0%(py2)s
{%(py2)s = %(py0)s.protocol
} == %(py5)sr<73>r0r1r2<00><01>is not<6F>z1%(py2)s
{%(py2)s = %(py0)s.stars
} is not %(py5)sr<00><00>r<>r<><00>z-%(py1)s <= %(py6)s
{%(py6)s = %(py4)s.stars
}z-%(py6)s
{%(py6)s = %(py4)s.stars
} <= %(py8)sr<73>r<>r<>r<><00>zR%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.region_scores
})
} > %(py8)srP<00>rrRrrrT)z1%(py2)s
{%(py2)s = %(py0)s.color
} is not %(py5)s<>rs)r <00>evaluate<74>protocolrr:rrrr r!r"<00>stars<72> region_scoresrP<00>color)rDr<>r<>r$r%rEr&rFrzrGrUrIrWr<>r<>r<>s r'<00>test_euro_ncap_scoringz2TestProtocolScoringPipeline.test_euro_ncap_scoring<6E>s<><00><00><1A>#<23>#<23>L<EFBFBD>1<><06><15><EFBFBD><EFBFBD>-<2D>+<2B>-<2D><EFBFBD>+<2B>-<2D>-<2D>-<2D>-<2D><EFBFBD>+<2B>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D><EFBFBD>-<2D>-<2D>-<2D>+<2B>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D><15>|<7C>|<7C>'<27>4<EFBFBD>'<27>|<7C>4<EFBFBD>'<27>'<27>'<27>'<27>|<7C>4<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>v<EFBFBD>'<27>'<27>'<27>v<EFBFBD>'<27>'<27>'<27>|<7C>'<27>'<27>'<27>4<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>'<27><10>%<25>F<EFBFBD>L<EFBFBD>L<EFBFBD>%<25>q<EFBFBD>L<EFBFBD>%<25>%<25>A<EFBFBD>%<25>L<EFBFBD>A<EFBFBD>%<25>%<25>%<25>%<25>%<25>q<EFBFBD>L<EFBFBD>A<EFBFBD>%<25>%<25>%<25>q<EFBFBD>%<25>%<25>%<25>%<25>%<25>%<25>F<EFBFBD>%<25>%<25>%<25>F<EFBFBD>%<25>%<25>%<25>L<EFBFBD>%<25>%<25>%<25>A<EFBFBD>%<25>%<25>%<25>%<25>%<25>%<25>%<25><19>'<27>'<27>,<2C>s<EFBFBD>'<27>(<28>,<2C>1<EFBFBD>,<2C>(<28>1<EFBFBD>,<2C>,<2C>,<2C>,<2C>(<28>1<EFBFBD>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>s<EFBFBD>,<2C>,<2C>,<2C>s<EFBFBD>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>6<EFBFBD>,<2C>,<2C>,<2C>6<EFBFBD>,<2C>,<2C>,<2C>'<27>,<2C>,<2C>,<2C>(<28>,<2C>,<2C>,<2C>1<EFBFBD>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C><18>&<26>&<26>B<EFBFBD><15>8<EFBFBD>8<EFBFBD> '<27>4<EFBFBD> '<27>8<EFBFBD>4<EFBFBD>'<27> '<27> '<27> '<27>8<EFBFBD>4<EFBFBD> '<27> '<27> '<27> '<27> '<27> '<27>2<EFBFBD> '<27> '<27> '<27>2<EFBFBD> '<27> '<27> '<27>8<EFBFBD> '<27> '<27> '<27>4<EFBFBD> '<27> '<27> '<27> '<27> '<27> '<27> '<27>'r)c<00>"<00>tj|<01>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<02>rtj|<02>ndtj|<03>tj|<04>d<05>z}dd|iz}ttj|<07><00><00>dx}x}}|j}d}||u}|s<>tjd|fd ||f<02>dt j <00>vstj|<02>rtj|<02>ndtj|<03>tj|<04>d<05>z}dd|iz}ttj|<07><00><00>dx}x}}d
}|j} || k}
d } | | k}|
r|s<>tjd |
|fd || | f<03>tj|<08>dt j <00>vstj|<02>rtj|<02>ndtj| <09>tj| <0B>d<0E>z} dd| iz} ttj| <0A><00><00>dx}x}
x}x} } y)NzUS NCAPr.r<>r<>r0r1r2r<>r<>rmr<>r<>r<>r<>r<>r<>) r r<>r<>rr:rrrr r!r"r<>)rDr<>r<>r$r%rEr&rFrzrGrUrIrWr<>s r'<00>test_us_ncap_scoringz0TestProtocolScoringPipeline.test_us_ncap_scoring<6E>s{<00><00><18>!<21>!<21>,<2C>/<2F><06><15><EFBFBD><EFBFBD>+<2B>)<29>+<2B><EFBFBD>)<29>+<2B>+<2B>+<2B>+<2B><EFBFBD>)<29>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>v<EFBFBD>+<2B>+<2B>+<2B>v<EFBFBD>+<2B>+<2B>+<2B><EFBFBD>+<2B>+<2B>+<2B>)<29>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B><15>|<7C>|<7C>'<27>4<EFBFBD>'<27>|<7C>4<EFBFBD>'<27>'<27>'<27>'<27>|<7C>4<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>v<EFBFBD>'<27>'<27>'<27>v<EFBFBD>'<27>'<27>'<27>|<7C>'<27>'<27>'<27>4<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>'<27><10>%<25>F<EFBFBD>L<EFBFBD>L<EFBFBD>%<25>q<EFBFBD>L<EFBFBD>%<25>%<25>A<EFBFBD>%<25>L<EFBFBD>A<EFBFBD>%<25>%<25>%<25>%<25>%<25>q<EFBFBD>L<EFBFBD>A<EFBFBD>%<25>%<25>%<25>q<EFBFBD>%<25>%<25>%<25>%<25>%<25>%<25>F<EFBFBD>%<25>%<25>%<25>F<EFBFBD>%<25>%<25>%<25>L<EFBFBD>%<25>%<25>%<25>A<EFBFBD>%<25>%<25>%<25>%<25>%<25>%<25>%<25>%r)c<00><><00>tj|<01>}|j}d}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<02>rtj|<02>ndtj|<03>tj|<04>d<05>z}dd|iz}ttj|<07><00><00>dx}x}}|j}d}||v}|s<>tjd |fd
||f<02>dt j <00>vstj|<02>rtj|<02>ndtj|<03>tj|<04>d<05>z}dd|iz}ttj|<07><00><00>dx}x}}|j}t|<08>}d } || kD}
|
<EFBFBD>s
tjd |
fd || f<02>dt j <00>vstjt<00>rtjt<00>nddt j <00>vstj|<02>rtj|<02>ndtj|<08>tj|<04>tj| <09>d<0F>z} dd| iz} ttj| <0C><00><00>dx}x}x}
} y)N<>IIHSr.r<>r<>r0r1r2)<04>GOOD<4F>
ACCEPTABLE<EFBFBD>MARGINAL<41>POORrv)z6%(py2)s
{%(py2)s = %(py0)s.overall_rating
} in %(py5)srr<>r<>rPr<>r<>r<>)r r<>r<>rr:rrrr r!r"<00>overall_ratingr<67>rP) rDr<>r<>r$r%rEr&rFrUrIr<>rWr<>s r'<00>test_iihs_scoringz-TestProtocolScoringPipeline.test_iihs_scoring<6E>s<><00><00><15><1D><1D>|<7C>,<2C><06><15><EFBFBD><EFBFBD>(<28>&<26>(<28><EFBFBD>&<26>(<28>(<28>(<28>(<28><EFBFBD>&<26>(<28>(<28>(<28>(<28>(<28>(<28>v<EFBFBD>(<28>(<28>(<28>v<EFBFBD>(<28>(<28>(<28><EFBFBD>(<28>(<28>(<28>&<26>(<28>(<28>(<28>(<28>(<28>(<28>(<28><15>$<24>$<24>R<>(R<>R<>$<24>(R<>R<>R<>R<>R<>$<24>(R<>R<>R<>R<>R<>R<>R<>v<EFBFBD>R<>R<>R<>v<EFBFBD>R<>R<>R<>$<24>R<>R<>R<>(R<>R<>R<>R<>R<>R<>R<>R<><19>'<27>'<27>,<2C>s<EFBFBD>'<27>(<28>,<2C>1<EFBFBD>,<2C>(<28>1<EFBFBD>,<2C>,<2C>,<2C>,<2C>(<28>1<EFBFBD>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>s<EFBFBD>,<2C>,<2C>,<2C>s<EFBFBD>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>6<EFBFBD>,<2C>,<2C>,<2C>6<EFBFBD>,<2C>,<2C>,<2C>'<27>,<2C>,<2C>,<2C>(<28>,<2C>,<2C>,<2C>1<EFBFBD>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,r)c<00>v<00>tttfD<00>]$}|j|<01>}|j <00>}t |<04>}d}||kD}|s<>t jd|fd||f<02>dtj<00>vst jt
<00>rt jt
<00>nddtj<00>vst j|<04>rt j|<04>ndt j|<05>t j|<06>d<06>z}dd|iz} tt j| <09><00><00>dx}x}}|j}
|
|v} | s<>t jd | fd
|
|f<02>d tj<00>vst j|<03>rt j|<03>nd t j|
<EFBFBD>dtj<00>vst j|<04>rt j|<04>ndd <0C>z} d d| iz}tt j|<08><00><00>dx}
} <0B><02>'y)Nrr<>)z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)srP<00>summaryrQrSrTrv)z0%(py2)s
{%(py2)s = %(py0)s.protocol
} in %(py4)sr<73>)rrr4zassert %(py6)sr5)r r r r<>r<>rPrr:rrrr r!r"r<>) rDr<><00>scorerr<72>r<>rUrGr%rVrWr$rE<00> @py_format5s r'<00>test_protocol_summary_printablez;TestProtocolScoringPipeline.test_protocol_summary_printable<6C>s5<00><00> <20>'<27>4<EFBFBD>0<>F<EFBFBD><1B>_<EFBFBD>_<EFBFBD>\<5C>2<>F<EFBFBD><1C>n<EFBFBD>n<EFBFBD>&<26>G<EFBFBD><16>w<EFBFBD><<3C> #<23>!<21> #<23><<3C>!<21>#<23> #<23> #<23> #<23><<3C>!<21> #<23> #<23> #<23> #<23> #<23> #<23>3<EFBFBD> #<23> #<23> #<23>3<EFBFBD> #<23> #<23> #<23> #<23> #<23> #<23>w<EFBFBD> #<23> #<23> #<23>w<EFBFBD> #<23> #<23> #<23><<3C> #<23> #<23> #<23>!<21> #<23> #<23> #<23> #<23> #<23> #<23> #<23><19>?<3F>?<3F> -<2D>?<3F>g<EFBFBD>-<2D> -<2D> -<2D> -<2D>?<3F>g<EFBFBD> -<2D> -<2D> -<2D> -<2D> -<2D> -<2D>6<EFBFBD> -<2D> -<2D> -<2D>6<EFBFBD> -<2D> -<2D> -<2D>?<3F> -<2D> -<2D> -<2D> -<2D> -<2D> -<2D>g<EFBFBD> -<2D> -<2D> -<2D>g<EFBFBD> -<2D> -<2D> -<2D> -<2D> -<2D> -<2D> -<2D> 1r)N)
r}r~r<00>pytest<73>fixturer<65>r<>r<>r<>rr<>r)r'r<>r<>s,<00><00> <0B>^<5E>^<5E><17><14><17>6(<28>&<26> -<2D> .r)r<>)$<24>__doc__<5F>builtinsr<00>_pytest.assertion.rewrite<74> assertion<6F>rewriter<00>pathlibr<00>numpy<70>npr<00>impakt.criteriarrrrrr <00> impakt.io.mmer
<00>impakt.protocolr r r <00>impakt.transform.cfcr<00>__file__<5F>parentrrr(r+r<>r<>r<>r<>r)r'<00><module>rs<><00><01><04>
<01><00><18><12> <0A>[<5B>[<5B>#<23>4<>4<>+<2B><12>8<EFBFBD>n<EFBFBD>#<23>#<23>j<EFBFBD>0<><<3C>?<3F> <0B><10><16><1E><1E>h<EFBFBD><1F>$<24> <20>$<24>!+<2B>!+<2B>H F<01> F<01> - <20>- <20>`8.<2E>8.r)