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

327 lines
53 KiB
Plaintext
Raw Normal View History

2026-04-10 14:37:34 -04:00
<EFBFBD>
7<>i<EFBFBD>&<00><00>P<00>dZddlZddlmcmZddlmZddl Z
ddl Z ddl m Z ddlmZee<10>j"dz Ze j&j)ej+<00> d<07><08>ZGd <09>d
<EFBFBD>ZGd <0B>d <0C>ZGd <0A>d<0E>ZGd<0F>d<10>ZGd<11>d<12>ZGd<13>d<14>Zy)z<>Tests against real ISO 13499 MME data.
These tests validate the reader against actual crash test data from
multiple labs (NHTSA/Calspan, BASt, UTAC, Volkswagen).
<EFBFBD>N)<01>Path)<01> ChannelCode)<01> MMEReader<65>mme_dataz Real MME test data not available)<01>reasonc<00>\<00>eZdZdZedz Zd<03>Zd<04>Zd<05>Zd<06>Z d<07>Z
d<08>Z d <09>Z d
<EFBFBD>Z d <0B>Zd <0C>Zd <0A>Zy)<0F> TestNHTSA3239zFNHTSA test 3239: 2000 Volkswagen Passat frontal barrier, 133 channels.<2E>3239c<00>,<00>t<00>}|j}|j}||<03>}|s<>ddtj<00>vst j |<01>rt j|<01>ndt j|<02>dtj<00>vst j |<00>rt j|<00>ndt j|<03>t j|<04>d<04>z}tt j|<05><00><00>dx}x}}y<00>N<>hassert %(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.supports
}(%(py5)s
{%(py5)s = %(py3)s.TEST_DIR
})
}<7D>reader<65>self<6C><05>py0<79>py2<79>py3<79>py5<79>py7<79>
r<00>supports<74>TEST_DIR<49> @py_builtins<6E>locals<6C>
@pytest_ar<61>_should_repr_global_name<6D> _saferepr<70>AssertionError<6F>_format_explanation<6F>rr<00> @py_assert1<74> @py_assert4<74> @py_assert6<74> @py_format8s <20>//Users/noise/Code/impakt/tests/test_real_mme.py<70> test_supportszTestNHTSA3239.test_supports<00><><00><00><1A><1B><06><15><EFBFBD><EFBFBD>-<2D>t<EFBFBD>}<7D>}<7D>-<2D><EFBFBD>}<7D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D><EFBFBD>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>t<EFBFBD>-<2D>-<2D>-<2D>t<EFBFBD>-<2D>-<2D>-<2D>}<7D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>c<00>L<00>t<00>}|j|j<00>}|j}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<05>z}dd|iz}tt j|<07><00><00>dx}x}}d}|j}|j} | <09>}
||
v} | s<>t j
d | fd
||
f<02>t j|<08>dt j<00>vst j|<02>rt j|<02>ndt j|<04>t j| <09>t j|
<EFBFBD>d <0B>z} d d | iz} tt j| <0A><00><00>dx}x} x}x} }
|j}d}||u}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<05>z}dd|iz}tt j|<07><00><00>dx}x}}|j}|j}d} || k(}|s<>t j
d|fd|| f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<05>t j| <09>d<12>z}dd|iz} tt j| <0C><00><00>dx}x}x}} y)Nr
<00><01>==<3D>z3%(py2)s
{%(py2)s = %(py0)s.test_number
} == %(py5)s<>meta<74>rrr<00>assert %(py7)sr<00>CALSPAN<41><01>in)zg%(py1)s in %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.test_facility
}.upper
}()
})<05>py1rrr<00>py9zassert %(py11)s<>py11<31><01>is not<6F>z5%(py2)s
{%(py2)s = %(py0)s.test_date
} is not %(py5)si<73><00>zK%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.test_date
}.year
} == %(py7)s<>rr<00>py4r<00>assert %(py9)sr4)r<00>metadatar<00> test_numberr<00>_call_reprcomparerrrrrr<00> test_facility<74>upper<65> test_date<74>year)rrr-r!r"<00> @py_assert3<74> @py_format6r$<00> @py_assert0r#<00> @py_assert8<74> @py_assert2<74> @py_format10<31> @py_format12<31> @py_assert5s r%<00> test_metadatazTestNHTSA3239.test_metadata!s<00><00><1A><1B><06><15><EFBFBD><EFBFBD>t<EFBFBD>}<7D>}<7D>-<2D><04><13><1F><1F>)<29>6<EFBFBD>)<29><1F>6<EFBFBD>)<29>)<29>)<29>)<29><1F>6<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29><1F>)<29>)<29>)<29>6<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29><18>6<>D<EFBFBD>.<2E>.<2E>6<>.<2E>4<>4<>6<>4<>6<>6<>y<EFBFBD>6<>6<>6<>6<>6<>y<EFBFBD>6<>6<>6<>6<>y<EFBFBD>6<>6<>6<>6<>6<>6<>D<EFBFBD>6<>6<>6<>D<EFBFBD>6<>6<>6<>.<2E>6<>6<>6<>4<>6<>6<>6<>6<>6<>6<>6<>6<>6<>6<>6<><13>~<7E>~<7E>)<29>T<EFBFBD>)<29>~<7E>T<EFBFBD>)<29>)<29>)<29>)<29>~<7E>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>~<7E>)<29>)<29>)<29>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29><13>~<7E>~<7E>*<2A>~<7E>"<22>"<22>*<2A>d<EFBFBD>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>t<EFBFBD>*<2A>*<2A>*<2A>t<EFBFBD>*<2A>*<2A>*<2A>~<7E>*<2A>*<2A>*<2A>"<22>*<2A>*<2A>*<2A>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*r(c<00><><00>t<00>}|j|j<00>}|j}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<05>z}dd|iz}tt j|<07><00><00>dx}x}}t|<02>}d} || k(}|s<>t j
d|fd || f<02>d
t j<00>vst jt<00>rt jt<00>nd
dt j<00>vst j|<02>rt j|<02>ndt j|<08>t j| <09>d <0B>z}
d d |
iz} tt j| <0B><00><00>dx}x}} y)Nr
r*<00>z/%(py2)s
{%(py2)s = %(py0)s.test_id
} == %(py5)s<>datar.r/r<00><><00>z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)s<>len<65>rr3r<00>py6<79>assert %(py8)s<>py8<79> r<00>readr<00>test_idrr?rrrrrrrR<00> rrrOr!r"rDrEr$rHrK<00> @py_format7<74> @py_format9s r%<00>test_read_all_channelsz$TestNHTSA3239.test_read_all_channels)s<00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><13>|<7C>|<7C>%<25>v<EFBFBD>%<25>|<7C>v<EFBFBD>%<25>%<25>%<25>%<25>|<7C>v<EFBFBD>%<25>%<25>%<25>%<25>%<25>%<25>t<EFBFBD>%<25>%<25>%<25>t<EFBFBD>%<25>%<25>%<25>|<7C>%<25>%<25>%<25>v<EFBFBD>%<25>%<25>%<25>%<25>%<25>%<25>%<25><12>4<EFBFBD>y<EFBFBD><1F>C<EFBFBD><1F>y<EFBFBD>C<EFBFBD><1F><1F><1F><1F>y<EFBFBD>C<EFBFBD><1F><1F><1F><1F><1F><1F>s<EFBFBD><1F><1F><1F>s<EFBFBD><1F><1F><1F><1F><1F><1F>4<EFBFBD><1F><1F><1F>4<EFBFBD><1F><1F><1F>y<EFBFBD><1F><1F><1F>C<EFBFBD><1F><1F><1F><1F><1F><1F>r(c<00><><00>t<00>}|j|j<00>}|jd<01>}|j}|j
}|s<>ddt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>d<04>z}ttj|<06><00><00>dx}}|j}|j}d}||k(}|s<>tjd|fd||f<02>dt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}x}}|j}|j}d }||k(}|s<>tjd|fd ||f<02>dt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}x}}|j}|j }d }||k(}|s<>tjd|fd||f<02>dt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}x}}|j}|j"}d}||k(}|s<>tjd|fd||f<02>dt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}x}}|j}|j$}d}||k(}|s<>tjd|fd||f<02>dt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}x}}|j}|j&}d}||k(}|s<>tjd|fd||f<02>dt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}x}}|j}|j(}d}||k(}|s<>tjd|fd||f<02>dt j<00>vstj|<03>rtj|<03>ndtj|<04>tj|<05>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}x}}y)N<>11HEAD0000H3ACXPzFassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.is_valid
}<7D>ch<63>rrr;<00>11r*<00>zM%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.test_object
} == %(py7)sr:r<r4<00>HEAD)zO%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.main_location
} == %(py7)s<>0000)zO%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.fine_location
} == %(py7)s<>H3)zL%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.dummy_type
} == %(py7)s<>AC)zM%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.measurement
} == %(py7)s<>X<>zK%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.direction
} == %(py7)s<>P)zG%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.code
}.sense
} == %(py7)s)rrXr<00>get<65>code<64>is_validrrrrrrr<00> test_objectr?<00> main_location<6F> fine_location<6F>
dummy_type<EFBFBD> measurement<6E> direction<6F>sense) rrrOr`r!rD<00> @py_format5r#rKr$rIs r%<00>test_channel_code_parsingz'TestNHTSA3239.test_channel_code_parsing/s,<00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04> <11>X<EFBFBD>X<EFBFBD>(<28> )<29><02><11>w<EFBFBD>w<EFBFBD><1F>w<EFBFBD><1F><1F><1F><1F><1F><1F><1F><1F><1F>r<EFBFBD><1F><1F><1F>r<EFBFBD><1F><1F><1F>w<EFBFBD><1F><1F><1F><1F><1F><1F><1F><1F><1F><1F><11>w<EFBFBD>w<EFBFBD>*<2A>w<EFBFBD>"<22>"<22>*<2A>d<EFBFBD>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>r<EFBFBD>*<2A>*<2A>*<2A>r<EFBFBD>*<2A>*<2A>*<2A>w<EFBFBD>*<2A>*<2A>*<2A>"<22>*<2A>*<2A>*<2A>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A><11>w<EFBFBD>w<EFBFBD>.<2E>w<EFBFBD>$<24>$<24>.<2E><06>.<2E>$<24><06>.<2E>.<2E>.<2E>.<2E>$<24><06>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>r<EFBFBD>.<2E>.<2E>.<2E>r<EFBFBD>.<2E>.<2E>.<2E>w<EFBFBD>.<2E>.<2E>.<2E>$<24>.<2E>.<2E>.<2E><06>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><11>w<EFBFBD>w<EFBFBD>.<2E>w<EFBFBD>$<24>$<24>.<2E><06>.<2E>$<24><06>.<2E>.<2E>.<2E>.<2E>$<24><06>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>r<EFBFBD>.<2E>.<2E>.<2E>r<EFBFBD>.<2E>.<2E>.<2E>w<EFBFBD>.<2E>.<2E>.<2E>$<24>.<2E>.<2E>.<2E><06>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E>.<2E><11>w<EFBFBD>w<EFBFBD>)<29>w<EFBFBD>!<21>!<21>)<29>T<EFBFBD>)<29>!<21>T<EFBFBD>)<29>)<29>)<29>)<29>!<21>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>r<EFBFBD>)<29>)<29>)<29>r<EFBFBD>)<29>)<29>)<29>w<EFBFBD>)<29>)<29>)<29>!<21>)<29>)<29>)<29>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29><11>w<EFBFBD>w<EFBFBD>*<2A>w<EFBFBD>"<22>"<22>*<2A>d<EFBFBD>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>r<EFBFBD>*<2A>*<2A>*<2A>r<EFBFBD>*<2A>*<2A>*<2A>w<EFBFBD>*<2A>*<2A>*<2A>"<22>*<2A>*<2A>*<2A>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A><11>w<EFBFBD>w<EFBFBD>'<27>w<EFBFBD> <20> <20>'<27>C<EFBFBD>'<27> <20>C<EFBFBD>'<27>'<27>'<27>'<27> <20>C<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>r<EFBFBD>'<27>'<27>'<27>r<EFBFBD>'<27>'<27>'<27>w<EFBFBD>'<27>'<27>'<27> <20>'<27>'<27>'<27>C<EFBFBD>'<27>'<27>'<27>'<27>'<27>'<27>'<27><11>w<EFBFBD>w<EFBFBD>#<23>w<EFBFBD>}<7D>}<7D>#<23><03>#<23>}<7D><03>#<23>#<23>#<23>#<23>}<7D><03>#<23>#<23>#<23>#<23>#<23>#<23>r<EFBFBD>#<23>#<23>#<23>r<EFBFBD>#<23>#<23>#<23>w<EFBFBD>#<23>#<23>#<23>}<7D>#<23>#<23>#<23><03>#<23>#<23>#<23>#<23>#<23>#<23>#r(c<00><><00>t<00>}|j|j<00>}|jd<01>}|j}d}||k(}|s<>t j d|fd||f<02>dtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>d<06>z}dd|iz}tt j|<08><00><00>dx}x}}|j}d }||k(}|s<>t j d|fd
||f<02>dtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>d<06>z}dd|iz}tt j|<08><00><00>dx}x}}|j}d }||k(}|s<>t j d|fd ||f<02>dtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>d<06>z}dd|iz}tt j|<08><00><00>dx}x}}|j} t!| <09>}d }
||
k(} | <0B>s
t j d| fd ||
f<02>dtj<00>vst jt <00>rt jt <00>nddtj<00>vst j|<03>rt j|<03>ndt j| <09>t j|<05>t j|
<EFBFBD>d<0F>z} dd| iz} tt j| <0A><00><00>dx} x}x} }
|jd}d}||k} | slt j d| fd||f<02>t j|<0E>t j|<06>d<15>z}dd|iz}tt j|<10><00><00>dx}x} }y)Nr_um/s²r*)z,%(py2)s
{%(py2)s = %(py0)s.unit
} == %(py5)sr`r.r/rg<00><>@)z3%(py2)s
{%(py2)s = %(py0)s.sample_rate
} == %(py5)si<73> )z1%(py2)s
{%(py2)s = %(py0)s.n_samples
} == %(py5)s)zJ%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.time
})
} == %(py8)srR)rr3rrrVzassert %(py10)s<>py10r)<01><)z%(py1)s < %(py4)s)r3r;<00>assert %(py6)srT)rrXrrk<00>unitrr?rrrrrr<00> sample_rate<74> n_samples<65>timerR)rrrOr`r!r"rDrEr$rH<00> @py_assert7r#r\<00> @py_format11rFrur[s r%<00>test_channel_data_propertiesz*TestNHTSA3239.test_channel_data_properties=sb<00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04> <11>X<EFBFBD>X<EFBFBD>(<28> )<29><02><11>w<EFBFBD>w<EFBFBD>!<21>'<27>!<21>w<EFBFBD>'<27>!<21>!<21>!<21>!<21>w<EFBFBD>'<27>!<21>!<21>!<21>!<21>!<21>!<21>r<EFBFBD>!<21>!<21>!<21>r<EFBFBD>!<21>!<21>!<21>w<EFBFBD>!<21>!<21>!<21>'<27>!<21>!<21>!<21>!<21>!<21>!<21>!<21><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><15>7<EFBFBD>7<EFBFBD>#<23>s<EFBFBD>7<EFBFBD>|<7C>#<23>t<EFBFBD>#<23>|<7C>t<EFBFBD>#<23>#<23>#<23>#<23>|<7C>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>s<EFBFBD>#<23>#<23>#<23>s<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>2<EFBFBD>#<23>#<23>#<23>2<EFBFBD>#<23>#<23>#<23>7<EFBFBD>#<23>#<23>#<23>|<7C>#<23>#<23>#<23>t<EFBFBD>#<23>#<23>#<23>#<23>#<23>#<23>#<23><11>w<EFBFBD>w<EFBFBD>q<EFBFBD>z<EFBFBD><1D>A<EFBFBD><1D>z<EFBFBD>A<EFBFBD>~<7E><1D><1D><1D>z<EFBFBD>A<EFBFBD><1D><1D><1D>z<EFBFBD><1D><1D><1D>A<EFBFBD><1D><1D><1D><1D><1D><1D>r(c<00><00>t<00>}|j|j<00>}|jd<01>}|j}d}||kD}|s<>t j d|fd||f<02>dtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>d<06>z}dd|iz}tt j|<08><00><00>dx}x}}y) Nr_gY@<40><01>><3E>z+%(py2)s
{%(py2)s = %(py0)s.peak
} > %(py5)sr`r.r/r) rrXrrk<00>peakrr?rrrrrr) rrrOr`r!r"rDrEr$s r%<00>test_channel_data_realisticz)TestNHTSA3239.test_channel_data_realisticHs<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04> <11>X<EFBFBD>X<EFBFBD>(<28> )<29><02><12>w<EFBFBD>w<EFBFBD><1E><15><1E>w<EFBFBD><15><EFBFBD><1E><1E><1E>w<EFBFBD><15><1E><1E><1E><1E><1E><1E>r<EFBFBD><1E><1E><1E>r<EFBFBD><1E><1E><1E>w<EFBFBD><1E><1E><1E><15><1E><1E><1E><1E><1E><1E>r(c<00><><00>t<00>}|j|j<00>}|j<00>}|D<00>cgc]}d|vs<01>d|vs<01> |<04><02>}}t |<05>}d}||k\}|s<>t j d|fd||f<02>dtj<00>vst jt<00>rt jt<00>nddtj<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) Nrdrg<00><00><01>>=<3D>z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} >= %(py6)srR<00> head_groupsrSrUrV) rrXr<00>groupsrRrr?rrrrrr) rrrOr<><00>kr<6B>rHrKr"r[r\s r%<00>test_auto_groupingz TestNHTSA3239.test_auto_groupingPs<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><15><1B><1B><1D><06>"(<28>F<>&<26>Q<EFBFBD>F<EFBFBD>a<EFBFBD>K<EFBFBD>D<EFBFBD>A<EFBFBD>I<EFBFBD>q<EFBFBD>&<26> <0B>F<><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><>Gs<00> E <04>E <04> E c<00><><00>t<00>}|j|j<00>}|jd<01>}t |<03>}d}||k(}|s<>t j d|fd||f<02>dtj<00>vst jt<00>rt jt<00>nddtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>d<07>z}dd |iz}tt j|<08><00><00>dx}x}}y)
N<EFBFBD>11HEAD0000H3AC*<2A>r*rQrR<00> head_channelsrSrUrV<00> rrXr<00>findrRrr?rrrrrr) rrrOr<>rHrKr"r[r\s r%<00>test_find_driver_head_channelsz,TestNHTSA3239.test_find_driver_head_channelsXs<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><1C> <09> <09>"3<>4<> <0A><12>=<3D>!<21>&<26>Q<EFBFBD>&<26>!<21>Q<EFBFBD>&<26>&<26>&<26>&<26>!<21>Q<EFBFBD>&<26>&<26>&<26>&<26>&<26>&<26>s<EFBFBD>&<26>&<26>&<26>s<EFBFBD>&<26>&<26>&<26>&<26>&<26>&<26>=<3D>&<26>&<26>&<26>=<3D>&<26>&<26>&<26>!<21>&<26>&<26>&<26>Q<EFBFBD>&<26>&<26>&<26>&<26>&<26>&<26>&r(c<00>
<00>t<00>}|j|j<00>}|jd<01>}t |<03>}d}||k(}|s<>t j d|fd||f<02>dtj<00>vst jt<00>rt jt<00>nddtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>d<07>z}dd |iz}tt j|<08><00><00>dx}x}}d
d l m} | |<03>}
|
j} | j } d } | | k(}|s<>t j d|fd | | f<02>dtj<00>vst j|
<EFBFBD>rt j|
<EFBFBD>ndt j| <0B>t j| <0C>t j| <0A>d<0F>z}dd|iz}tt j|<0F><00><00>dx} x} x}} |
j"} d
}| |kD} | s<>t j d| fd| |f<02>dtj<00>vst j|
<EFBFBD>rt j|
<EFBFBD>ndt j| <0B>t j|<06>d<14>z}dd|iz}tt j|<0E><00><00>dx} x} }y)Nr<4E>r<>r*rQrRr<>rSrUrVr)<01>resultant_from_channels<6C>Rri<00>resr:r<r4r<>r<>r.r/r)rrXrr<>rRrr?rrrrrr<00>impakt.transform.resultantr<74>rlrsr<>)rrrOr<>rHrKr"r[r\r<>r<>r!rDr#r$rIrEs r%<00>test_resultant_computationz(TestNHTSA3239.test_resultant_computation^s<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><1C> <09> <09>"3<>4<> <0A><12>=<3D>!<21>&<26>Q<EFBFBD>&<26>!<21>Q<EFBFBD>&<26>&<26>&<26>&<26>!<21>Q<EFBFBD>&<26>&<26>&<26>&<26>&<26>&<26>s<EFBFBD>&<26>&<26>&<26>s<EFBFBD>&<26>&<26>&<26>&<26>&<26>&<26>=<3D>&<26>&<26>&<26>=<3D>&<26>&<26>&<26>!<21>&<26>&<26>&<26>Q<EFBFBD>&<26>&<26>&<26>&<26>&<26>&<26>&<26>F<>%<25>}<7D>5<><03><12>x<EFBFBD>x<EFBFBD>(<28>x<EFBFBD>!<21>!<21>(<28>S<EFBFBD>(<28>!<21>S<EFBFBD>(<28>(<28>(<28>(<28>!<21>S<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>s<EFBFBD>(<28>(<28>(<28>s<EFBFBD>(<28>(<28>(<28>x<EFBFBD>(<28>(<28>(<28>!<21>(<28>(<28>(<28>S<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>(<28><12>x<EFBFBD>x<EFBFBD><1B>!<21><1B>x<EFBFBD>!<21>|<7C><1B><1B><1B>x<EFBFBD>!<21><1B><1B><1B><1B><1B><1B>s<EFBFBD><1B><1B><1B>s<EFBFBD><1B><1B><1B>x<EFBFBD><1B><1B><1B>!<21><1B><1B><1B><1B><1B><1B>r(c<00><><00>t<00>}|j|j<00>}|jd<01>}t |<03>}d}||kD}|s<>t j d|fd||f<02>dtj<00>vst jt<00>rt jt<00>nddtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>d<07>z}dd |iz}tt j|<08><00><00>dx}x}}y)
NzB0FBAR*rr<><00>z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)srR<00>barrier_channelsrSrUrVr<>) rrrOr<>rHrKr"r[r\s r%<00>test_barrier_load_cellsz%TestNHTSA3239.test_barrier_load_cellsjs<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><1F>9<EFBFBD>9<EFBFBD>Y<EFBFBD>/<2F><18><12>#<23>$<24>(<28>q<EFBFBD>(<28>$<24>q<EFBFBD>(<28>(<28>(<28>(<28>$<24>q<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>s<EFBFBD>(<28>(<28>(<28>s<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>#<23>(<28>(<28>(<28>#<23>(<28>(<28>(<28>$<24>(<28>(<28>(<28>q<EFBFBD>(<28>(<28>(<28>(<28>(<28>(<28>(r(c<00>D<00>ddlm}t<00>}|j|j<00>}|j d<03>}||d<04>}|j }d}||k(}|s<>tjd|fd||f<02>dtj<00>vstj|<05>rtj|<05>ndtj|<06>tj|<07>d<08>z} d d
| iz}
ttj|
<EFBFBD><00><00>dx}x}}|j}|j} || k}|s<>tjd |fd || f<02>dtj<00>vstj|<05>rtj|<05>ndtj|<06>d tj<00>vstj|<04>rtj|<04>nd tj| <0B>d<0E>z} dd| iz} ttj| <0A><00><00>dx}x}} y)Nr)<01>
cfc_filterr_i<>r*)z1%(py2)s
{%(py2)s = %(py0)s.cfc_class
} == %(py5)s<>filteredr.r/r)<01><=)zF%(py2)s
{%(py2)s = %(py0)s.peak
} <= %(py6)s
{%(py6)s = %(py4)s.peak
}r`)rrr;rTrUrV)<10>impakt.transform.cfcr<63>rrXrrk<00> cfc_classrr?rrrrrrr<>)rr<>rrOr`r<>r!r"rDrEr$rKr[r\s r%<00>test_cfc_filter_on_real_dataz*TestNHTSA3239.test_cfc_filter_on_real_dataps;<00><00>3<><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04> <11>X<EFBFBD>X<EFBFBD>(<28> )<29><02><1D>b<EFBFBD>$<24>'<27><08><17>!<21>!<21>)<29>T<EFBFBD>)<29>!<21>T<EFBFBD>)<29>)<29>)<29>)<29>!<21>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>x<EFBFBD>)<29>)<29>)<29>x<EFBFBD>)<29>)<29>)<29>!<21>)<29>)<29>)<29>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29><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>'r(N)<11>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F> MME_DATA_DIRrr&rLr]rvr<>r<>r<>r<>r<>r<>r<><00>r(r%r r sF<00><00>P<><1B>f<EFBFBD>$<24>H<EFBFBD>.<2E>+<2B> <20> $<24> <1E><1F>%<25>'<27>
<1C>)<29> (r(r c<00>2<00>eZdZdZedz Zd<03>Zd<04>Zd<05>Zd<06>Z y)<08>TestBASt_AK3T02FOzGBASt test AK3T02FO: Frontal offset 40% deformable barrier, 97 channels.<2E>AK3T02FOc<00>,<00>t<00>}|j}|j}||<03>}|s<>ddtj<00>vst j |<01>rt j|<01>ndt j|<02>dtj<00>vst j |<00>rt j|<00>ndt j|<03>t j|<04>d<04>z}tt j|<05><00><00>dx}x}}yr rr s r%r&zTestBASt_AK3T02FO.test_supports<74>r'r(c<00>l<00>t<00>}|j|j<00>}|j}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<05>z}dd|iz}tt j|<07><00><00>dx}x}}d}|j}||v} | s<>t j
d | fd
||f<02>t j|<08>dt j<00>vst j|<02>rt j|<02>ndt j|<04>d <0B>z}dd|iz}tt j|<07><00><00>dx}x} }y) Nr<4E>r*r,r-r.r/r<00>BAStr1)z5%(py1)s in %(py5)s
{%(py5)s = %(py3)s.test_facility
})r3rr) rr=rr>rr?rrrrrrr@)
rrr-r!r"rDrEr$rFrHs
r%rLzTestBASt_AK3T02FO.test_metadata<74>s<><00><00><1A><1B><06><15><EFBFBD><EFBFBD>t<EFBFBD>}<7D>}<7D>-<2D><04><13><1F><1F>-<2D>:<3A>-<2D><1F>:<3A>-<2D>-<2D>-<2D>-<2D><1F>:<3A>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>t<EFBFBD>-<2D>-<2D>-<2D>t<EFBFBD>-<2D>-<2D>-<2D><1F>-<2D>-<2D>-<2D>:<3A>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D><15>+<2B><14>+<2B>+<2B>+<2B>v<EFBFBD>+<2B>+<2B>+<2B>+<2B>+<2B>v<EFBFBD>+<2B>+<2B>+<2B>+<2B>v<EFBFBD>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B><14>+<2B>+<2B>+<2B><14>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>+r(c<00><><00>t<00>}|j|j<00>}|j}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<05>z}dd|iz}tt j|<07><00><00>dx}x}}t|<02>}d} || k(}|s<>t j
d|fd || f<02>d
t j<00>vst jt<00>rt jt<00>nd
dt j<00>vst j|<02>rt j|<02>ndt j|<08>t j| <09>d <0B>z}
d d |
iz} tt j| <0B><00><00>dx}x}} y)Nr<4E>r*rNrOr.r/r<00>arQrRrSrUrVrWrZs r%r]z(TestBASt_AK3T02FO.test_read_all_channels<6C>s<00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><13>|<7C>|<7C>)<29>z<EFBFBD>)<29>|<7C>z<EFBFBD>)<29>)<29>)<29>)<29>|<7C>z<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>|<7C>)<29>)<29>)<29>z<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29><12>4<EFBFBD>y<EFBFBD><1E>B<EFBFBD><1E>y<EFBFBD>B<EFBFBD><EFBFBD><1E><1E><1E>y<EFBFBD>B<EFBFBD><1E><1E><1E><1E><1E><1E>s<EFBFBD><1E><1E><1E>s<EFBFBD><1E><1E><1E><1E><1E><1E>4<EFBFBD><1E><1E><1E>4<EFBFBD><1E><1E><1E>y<EFBFBD><1E><1E><1E>B<EFBFBD><1E><1E><1E><1E><1E><1E>r(c<00><><00>t<00>}|j|j<00>}|jd<01>}|jd<02>}t |<03>}d}||kD}|s<>t j d|fd||f<02>dtj<00>vst jt<00>rt jt<00>nddtj<00>vst j|<03>rt j|<03>ndt j|<05>t j|<06>d<08>z}d d
|iz} tt j| <09><00><00>d x}x}}t |<04>}d}||kD}|s<>t j d|fd||f<02>dtj<00>vst jt<00>rt jt<00>ndd tj<00>vst j|<04>rt j|<04>nd t j|<05>t j|<06>d<08>z}d d
|iz} tt j| <09><00><00>d x}x}}y ) z?This test has driver (11), rear passenger (13), and child (14).z11*z13*rr<>r<>rR<00>
driver_chsrSrUrVN<>rear_chsr<73>)
rrrOr<>r<>rHrKr"r[r\s
r%<00>test_multiple_occupantsz)TestBASt_AK3T02FO.test_multiple_occupants<74>sO<00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><19>Y<EFBFBD>Y<EFBFBD>u<EFBFBD>%<25>
<EFBFBD><17>9<EFBFBD>9<EFBFBD>U<EFBFBD>#<23><08><12>:<3A><EFBFBD>"<22><11>"<22><EFBFBD><11>"<22>"<22>"<22>"<22><EFBFBD><11>"<22>"<22>"<22>"<22>"<22>"<22>s<EFBFBD>"<22>"<22>"<22>s<EFBFBD>"<22>"<22>"<22>"<22>"<22>"<22>:<3A>"<22>"<22>"<22>:<3A>"<22>"<22>"<22><EFBFBD>"<22>"<22>"<22><11>"<22>"<22>"<22>"<22>"<22>"<22>"<22><12>8<EFBFBD>}<7D> <20>q<EFBFBD> <20>}<7D>q<EFBFBD> <20> <20> <20> <20>}<7D>q<EFBFBD> <20> <20> <20> <20> <20> <20>s<EFBFBD> <20> <20> <20>s<EFBFBD> <20> <20> <20> <20> <20> <20>8<EFBFBD> <20> <20> <20>8<EFBFBD> <20> <20> <20>}<7D> <20> <20> <20>q<EFBFBD> <20> <20> <20> <20> <20> <20> r(N)
r<EFBFBD>r<>r<>r<>r<>rr&rLr]r<>r<>r(r%r<>r<>{s#<00><00>Q<><1B>j<EFBFBD>(<28>H<EFBFBD>.<2E>,<2C> <1F> !r(r<>c<00>&<00>eZdZdZedz Zd<03>Zd<04>Zy)<06>TestBASt_AK3T02SIz-BASt test AK3T02SI: Side impact, 97 channels.<2E>AK3T02SIc<00>,<00>t<00>}|j}|j}||<03>}|s<>ddtj<00>vst j |<01>rt j|<01>ndt j|<02>dtj<00>vst j |<00>rt j|<00>ndt j|<03>t j|<04>d<04>z}tt j|<05><00><00>dx}x}}yr rr s r%r&zTestBASt_AK3T02SI.test_supports<74>r'r(c<00>n<00>t<00>}|j|j<00>}t|<02>}d}||kD}|s<>t j
d|fd||f<02>dt j<00>vst jt<00>rt jt<00>nddt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<06>z}dd|iz}tt j|<07><00><00>dx}x}}y) Nrr<>r<>rRrOrSrUrV<00> rrXrrRrr?rrrrrr<00>rrrOrHrKr"r[r\s r%r]z(TestBASt_AK3T02SI.test_read_all_channels<6C>s<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><12>4<EFBFBD>y<EFBFBD><1C>1<EFBFBD><1C>y<EFBFBD>1<EFBFBD>}<7D><1C><1C><1C>y<EFBFBD>1<EFBFBD><1C><1C><1C><1C><1C><1C>s<EFBFBD><1C><1C><1C>s<EFBFBD><1C><1C><1C><1C><1C><1C>4<EFBFBD><1C><1C><1C>4<EFBFBD><1C><1C><1C>y<EFBFBD><1C><1C><1C>1<EFBFBD><1C><1C><1C><1C><1C><1C>r(N)r<>r<>r<>r<>r<>rr&r]r<>r(r%r<>r<><00>s<00><00>7<><1B>j<EFBFBD>(<28>H<EFBFBD>.<2E>r(r<>c<00>8<00>eZdZdZedz Zd<03>Zd<04>Zd<05>Zd<06>Z d<07>Z
y) <09>TestVW_PedestrianzDVolkswagen test VW1FGS15: Pedestrian headform impactor, 10 channels.<2E>VW1FGS15c<00>,<00>t<00>}|j}|j}||<03>}|s<>ddtj<00>vst j |<01>rt j|<01>ndt j|<02>dtj<00>vst j |<00>rt j|<00>ndt j|<03>t j|<04>d<04>z}tt j|<05><00><00>dx}x}}yr rr s r%r&zTestVW_Pedestrian.test_supports<74>r'r(c<00><><00>t<00>}|j|j<00>}|j}d}||u}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<04>z}dd|iz}tt j|<07><00><00>dx}x}}|j}|j}d}||k(} | s<>t j
d| fd ||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<05>t j|<08>d
<EFBFBD>z}d d |iz}
tt j|
<EFBFBD><00><00>dx}x}x} }y) Nr6r8r-r.r/ri<>r*r9r:r<r4) rr=rrBrr?rrrrrrrC) rrr-r!r"rDrEr$r#rKrIs r%rLzTestVW_Pedestrian.test_metadata<74>s<00><00><1A><1B><06><15><EFBFBD><EFBFBD>t<EFBFBD>}<7D>}<7D>-<2D><04><13>~<7E>~<7E>)<29>T<EFBFBD>)<29>~<7E>T<EFBFBD>)<29>)<29>)<29>)<29>~<7E>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>~<7E>)<29>)<29>)<29>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29><13>~<7E>~<7E>*<2A>~<7E>"<22>"<22>*<2A>d<EFBFBD>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>t<EFBFBD>*<2A>*<2A>*<2A>t<EFBFBD>*<2A>*<2A>*<2A>~<7E>*<2A>*<2A>*<2A>"<22>*<2A>*<2A>*<2A>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*r(c<00>n<00>t<00>}|j|j<00>}t|<02>}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst jt<00>rt jt<00>nddt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<06>z}dd|iz}tt j|<07><00><00>dx}x}}y) N<>
r*rQrRrOrSrUrVr<>r<>s r%r]z(TestVW_Pedestrian.test_read_all_channels<6C>s<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><12>4<EFBFBD>y<EFBFBD><1E>B<EFBFBD><1E>y<EFBFBD>B<EFBFBD><EFBFBD><1E><1E><1E>y<EFBFBD>B<EFBFBD><1E><1E><1E><1E><1E><1E>s<EFBFBD><1E><1E><1E>s<EFBFBD><1E><1E><1E><1E><1E><1E>4<EFBFBD><1E><1E><1E>4<EFBFBD><1E><1E><1E>y<EFBFBD><1E><1E><1E>B<EFBFBD><1E><1E><1E><1E><1E><1E>r(c<00>0<00>t<00>}|j|j<00>}|D]<5D>}|j}|j}d}||k(}|s<>t j d|fd||f<02>dtj<00>vst j|<03>rt j|<03>ndt j|<04>t j|<05>t j|<06>d<05>z}dd|iz} tt j| <09><00><00>dx}x}x}}<06><>y) z0This test uses D0 (impactor) test object prefix.<2E>D0r*rcr`r:r<r4N) rrXrrlrnrr?rrrrrr)
rrrOr`r!rDr#rKr$rIs
r%<00>test_pedestrian_channel_codesz/TestVW_Pedestrian.test_pedestrian_channel_codes<65>s<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><16>B<EFBFBD><15>7<EFBFBD>7<EFBFBD> .<2E>7<EFBFBD>&<26>&<26> .<2E>$<24> .<2E>&<26>$<24>.<2E> .<2E> .<2E> .<2E>&<26>$<24> .<2E> .<2E> .<2E> .<2E> .<2E> .<2E>2<EFBFBD> .<2E> .<2E> .<2E>2<EFBFBD> .<2E> .<2E> .<2E>7<EFBFBD> .<2E> .<2E> .<2E>&<26> .<2E> .<2E> .<2E>$<24> .<2E> .<2E> .<2E> .<2E> .<2E> .<2E> .<2E>r(c<00><><00>t<00>}|j|j<00>}|D<00>cgc]}|jjdk(s<01>|<03><02> }}t |<04>}d}||k\}|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<07>z}dd |iz} tt j| <09><00><00>d
x}x}}y
cc}w) z:This test includes a pre-computed resultant (direction=R).r<><00>r<>r<>rR<00>
resultantsrSrUrVN)rrXrrlrsrRrr?rrrrrr)
rrrOr`r<>rHrKr"r[r\s
r%<00>test_has_resultant_channelz,TestVW_Pedestrian.test_has_resultant_channel<65>s<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04>#'<27>D<>4<EFBFBD>R<EFBFBD>2<EFBFBD>7<EFBFBD>7<EFBFBD>+<<3C>+<<3C><03>+C<>b<EFBFBD>4<EFBFBD>
<EFBFBD>D<><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>#<23><>Es <00>E <04> E N) r<>r<>r<>r<>r<>rr&rLr]r<>r<>r<>r(r%r<>r<><00>s(<00><00>N<><1B>j<EFBFBD>(<28>H<EFBFBD>.<2E>+<2B> <1F>
/<2F>$r(r<>c<00>,<00>eZdZdZedz Zd<03>Zd<04>Zd<05>Zy)<07>TestUTAC_98_7707z?UTAC test 98/7707: Vehicle-to-vehicle frontal, no channel data.<2E>98_7707c<00>,<00>t<00>}|j}|j}||<03>}|s<>ddtj<00>vst j |<01>rt j|<01>ndt j|<02>dtj<00>vst j |<00>rt j|<00>ndt j|<03>t j|<04>d<04>z}tt j|<05><00><00>dx}x}}y)z;Has .mme file so should be supported even without channels.r rrrNrr s r%r&zTestUTAC_98_7707.test_supports<74>s<><00><00><1A><1B><06><15><EFBFBD><EFBFBD>-<2D>t<EFBFBD>}<7D>}<7D>-<2D><EFBFBD>}<7D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D>v<EFBFBD>-<2D>-<2D>-<2D><EFBFBD>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>t<EFBFBD>-<2D>-<2D>-<2D>t<EFBFBD>-<2D>-<2D>-<2D>}<7D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-r(c<00>2<00>t<00>}|j|j<00>}g}|j}d}||k(}|}|s|j}d} || k(}
|
}|<07>s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<04>t j|<05>d<06>z} dd| iz} |j| <0C>|s<>t j
d
fd  f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<08>t j| <09>d
<EFBFBD>z} d d | iz}|j|<0E>t j|d <0A>iz}dd|iz}tt j|<10><00><00>dx}x}x}x}x}x}x}
} |j}d}||u}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<11>d<12>z}dd|iz} tt j| <0B><00><00>dx}x}}|j}|j}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>t j|<05>d<17>z} dd| iz} tt j| <0C><00><00>dx}x}x}}y)N<>M5533z98/7707r*)z3%(py4)s
{%(py4)s = %(py2)s.test_number
} == %(py7)sr-)rr;rz%(py9)sr4)z7%(py13)s
{%(py13)s = %(py11)s.test_number
} == %(py16)s)r5<00>py13<31>py16z%(py18)s<>py18r<38>zassert %(py21)s<>py21r6r8r.r/ri<>r9r:r<)rr=rr>rr?rrrr<00>append<6E>_format_booloprrrBrC)rrr-r!rDr#rKrF<00> @py_assert12<31> @py_assert15<31> @py_assert14r$rI<00> @py_format17<31> @py_format19<31> @py_format20<32> @py_format22r"rEs r%rLzTestUTAC_98_7707.test_metadata<74>s<00><00><1A><1B><06><15><EFBFBD><EFBFBD>t<EFBFBD>}<7D>}<7D>-<2D><04>K<>t<EFBFBD><1F><1F>K<>7<EFBFBD>K<><1F>7<EFBFBD>*<2A>K<>d<EFBFBD>.><3E>.><3E>K<>)<29>K<>.><3E>)<29>.K<>K<>K<>K<>K<><1F>7<EFBFBD>K<>K<>K<>K<>K<>K<>t<EFBFBD>K<>K<>K<>t<EFBFBD>K<>K<>K<><1F>K<>K<>K<>7<EFBFBD>K<>K<>K<>K<>K<>K<>K<>.><3E>)<29>K<>K<>K<>K<>K<>K<>d<EFBFBD>K<>K<>K<>d<EFBFBD>K<>K<>K<>.><3E>K<>K<>K<>)<29>K<>K<>K<>K<>K<>K<>K<>K<>K<>K<>K<>K<>K<>K<><13>~<7E>~<7E>)<29>T<EFBFBD>)<29>~<7E>T<EFBFBD>)<29>)<29>)<29>)<29>~<7E>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>t<EFBFBD>)<29>)<29>)<29>~<7E>)<29>)<29>)<29>T<EFBFBD>)<29>)<29>)<29>)<29>)<29>)<29>)<29><13>~<7E>~<7E>*<2A>~<7E>"<22>"<22>*<2A>d<EFBFBD>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>"<22>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>t<EFBFBD>*<2A>*<2A>*<2A>t<EFBFBD>*<2A>*<2A>*<2A>~<7E>*<2A>*<2A>*<2A>"<22>*<2A>*<2A>*<2A>d<EFBFBD>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>*r(c<00>n<00>t<00>}|j|j<00>}t|<02>}d}||k(}|s<>t j
d|fd||f<02>dt j<00>vst jt<00>rt jt<00>nddt j<00>vst j|<02>rt j|<02>ndt j|<03>t j|<04>d<06>z}dd|iz}tt j|<07><00><00>d x}x}}y )
uDThis test has no Channel/ directory — should load with 0 channels.rr*rQrRrOrSrUrVNr<4E>r<>s r%<00>test_read_empty_channelsz)TestUTAC_98_7707.test_read_empty_channels<6C>s<><00><00><1A><1B><06><15>{<7B>{<7B>4<EFBFBD>=<3D>=<3D>)<29><04><12>4<EFBFBD>y<EFBFBD><1D>A<EFBFBD><1D>y<EFBFBD>A<EFBFBD>~<7E><1D><1D><1D>y<EFBFBD>A<EFBFBD><1D><1D><1D><1D><1D><1D>s<EFBFBD><1D><1D><1D>s<EFBFBD><1D><1D><1D><1D><1D><1D>4<EFBFBD><1D><1D><1D>4<EFBFBD><1D><1D><1D>y<EFBFBD><1D><1D><1D>A<EFBFBD><1D><1D><1D><1D><1D><1D>r(N) r<>r<>r<>r<>r<>rr&rLr<>r<>r(r%r<>r<><00>s<00><00>I<><1B>i<EFBFBD>'<27>H<EFBFBD>.<2E>
+<2B>r(r<>c<00><><00>eZdZdZej
j dgd<03><01>d<04><00>Zej
j dgd<06><01>d<07><00>Zd<08>Z d <09>Z
d
<EFBFBD>Z y ) <0C>TestChannelCodeRealWorldz>Test ChannelCode parsing against all codes found in real data.zcode,expected_meas,expected_dir))r_rgrh)<03>11HEAD0000H3ACYPrg<00>Y)<03>11HEAD0000H3ACZPrg<00>Z)<03>11NECKUP00H3FOXP<58>FOrh)<03>11NECKUP00H3FOZPr<50>r<>)<03>11NECKUP00H3MOYP<59>MOr<4F>)<03>11CHST0000H3DSXP<58>DSrh)<03>11FEMRLE00H3FOZPr<50>r<>)<03>11TIBILEUPH3MOXPr<50>rh)<03>B0FBAR010100FOXPr<50>rh)<03>D0HEAD0000PCACXArgrh)<03>D0HEAD0000PCACRArgr<>)<03>D0HEAD0000PCDSXVr<56>rh)<03>D0HEAD0000PCANXV<58>ANrh)<03>14HEAD0000P3ACXPrgrhc<00><><00>tj|<01>}|j}|s<>tjd|<01><00><02>dzdt j <00>vstj|<04>rtj|<04>ndtj|<05>d<04>z}ttj|<06><00><00>d}|j}||k(}|<07>stjd|fd||f<02>dt j <00>vstj|<04>rtj|<04>ndtj|<05>dt j <00>vstj|<02>rtj|<02>ndd<08>z}tj|<01>d |<02>d
|j<00><00><05>d zd |iz} ttj| <09><00><00>dx}}|j}||k(}|<07>stjd|fd ||f<02>dt j <00>vstj|<04>rtj|<04>ndtj|<05>dt j <00>vstj|<03>rtj|<03>ndd<08>z}tj|<01>d|<03>d
|j<00><00><05>d zd |iz} ttj| <09><00><00>dx}}y)NzFailed to parse: z.
>assert %(py2)s
{%(py2)s = %(py0)s.is_valid
}<7D>parsed)rrr*)z3%(py2)s
{%(py2)s = %(py0)s.measurement
} == %(py4)s<> expected_measraz: expected meas=z, got z
>assert %(py6)srT)z1%(py2)s
{%(py2)s = %(py0)s.direction
} == %(py4)s<> expected_dirz: expected dir=)r<00>parsermr<00>_format_assertmsgrrrrrrrrr?rs)
rrlr<>r<>r<>r!<00> @py_format3rDrur[s
r%<00>test_parse_real_codesz.TestChannelCodeRealWorld.test_parse_real_codes<65>s[<00><00>*<1D>"<22>"<22>4<EFBFBD>(<28><06><15><EFBFBD><EFBFBD>:<3A><EFBFBD>:<3A>:<3A>"3<>D<EFBFBD>6<EFBFBD> :<3A>:<3A>:<3A>:<3A>:<3A>:<3A>:<3A>v<EFBFBD>:<3A>:<3A>:<3A>v<EFBFBD>:<3A>:<3A>:<3A><EFBFBD>:<3A>:<3A>:<3A>:<3A>:<3A>:<3A><15>!<21>!<21>
<EFBFBD>!<21>]<5D>2<>
<EFBFBD>
<EFBFBD><04><00>
<EFBFBD>!<21>]<5D>
<EFBFBD>
<EFBFBD> <09>6<EFBFBD>
<EFBFBD>
<EFBFBD><04><00><16>
<EFBFBD>
<EFBFBD> <09> <09><16>
<EFBFBD>
<EFBFBD> <09> <09>"<22>
<EFBFBD>
<EFBFBD> <09>6<EFBFBD>
<EFBFBD>
<EFBFBD><04><00>&3<>
<EFBFBD>
<EFBFBD> <09> <09>&3<>
<EFBFBD>
<EFBFBD><04><00><14>f<EFBFBD>$<24>]<5D>O<EFBFBD>6<EFBFBD>&<26>:L<>:L<>9M<39> N<>
<EFBFBD>
<EFBFBD>
<EFBFBD><04><00>
<EFBFBD>
<EFBFBD><16><1F><1F>
<EFBFBD><1F><<3C>/<2F>
<EFBFBD>
<EFBFBD><04><00>
<EFBFBD><1F><<3C>
<EFBFBD>
<EFBFBD> <09>6<EFBFBD>
<EFBFBD>
<EFBFBD><04><00><16>
<EFBFBD>
<EFBFBD> <09> <09><16>
<EFBFBD>
<EFBFBD> <09> <09> <20>
<EFBFBD>
<EFBFBD> <09>6<EFBFBD>
<EFBFBD>
<EFBFBD><04><00>$0<>
<EFBFBD>
<EFBFBD> <09> <09>$0<>
<EFBFBD>
<EFBFBD><04><00><14>f<EFBFBD>O<EFBFBD>L<EFBFBD>><3E><16><06>8H<38>8H<38>7I<37> J<>
<EFBFBD>
<EFBFBD>
<EFBFBD><04><00>
<EFBFBD>
r(zcode,expected_dummy))r_rf)r<><00>P3)r<><00>PCc<00><00>tj|<01>}|j}||k(}|s<>tjd|fd||f<02>dt j <00>vstj|<03>rtj|<03>ndtj|<04>dt j <00>vstj|<02>rtj|<02>ndd<05>z}dd|iz}ttj|<07><00><00>dx}}y)Nr*)z2%(py2)s
{%(py2)s = %(py0)s.dummy_type
} == %(py4)sr<73><00>expected_dummyrarzrT) rr<>rqrr?rrrrrr)rrlrr<>r!rDrur[s r%<00>test_dummy_type_extractionz3TestChannelCodeRealWorld.test_dummy_type_extractions<><00><00><1D>"<22>"<22>4<EFBFBD>(<28><06><15> <20> <20>2<> <20>N<EFBFBD>2<>2<>2<>2<> <20>N<EFBFBD>2<>2<>2<>2<>2<>2<>v<EFBFBD>2<>2<>2<>v<EFBFBD>2<>2<>2<> <20>2<>2<>2<>2<>2<>2<>N<EFBFBD>2<>2<>2<>N<EFBFBD>2<>2<>2<>2<>2<>2<>2r(c <00>4<00>tjd<01>}tjd<02>}tjd<03>}|j}|<04>}|j}|<06>}||k(}|j} | <09>}
||
k(} |r| <0B>s<>tjd|| fd|||
f<03>dt j <00>vstj|<01>rtj|<01>ndtj|<04>tj|<05>dt j <00>vstj|<02>rtj|<02>ndtj|<06>tj|<07>dt j <00>vstj|<03>rtj|<03>ndtj| <09>tj|
<EFBFBD>d <09> z} d
d | iz} ttj| <0A><00><00>d x}x}x}x} x}x}x} }
y ) z9X/Y/Z channels with same prefix should share a group key.r_r<>r<>)r+r+)z<>%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.group_key
}()
} == %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s.group_key
}()
}z<>%(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s.group_key
}()
} == %(py16)s
{%(py16)s = %(py14)s
{%(py14)s = %(py12)s.group_key
}()
}<7D>cx<63>cy<63>cz) rrr;rr4r5<00>py12<31>py14r<34>zassert %(py18)sr<73>N<> rr<><00> group_keyrr?rrrrrr)rr r
r r!rDrG<00> @py_assert10rK<00> @py_assert13r<33>r#r<>r<>s r%<00>test_group_key_consistencyz3TestChannelCodeRealWorld.test_group_key_consistencys@<00><00> <18> <1E> <1E>1<> 2<><02> <18> <1E> <1E>1<> 2<><02> <18> <1E> <1E>1<> 2<><02><11>|<7C>|<7C>A<>|<7C>~<7E>A<><12><1C><1C>A<><1C><1E>A<>~<7E><1E>A<>A<>2<EFBFBD><<3C><<3C>A<><<3C>><3E>A<><1E>><3E>A<>A<>A<>A<>A<>~<7E><1E>><3E>A<>A<>A<>A<>A<>A<>r<EFBFBD>A<>A<>A<>r<EFBFBD>A<>A<>A<>|<7C>A<>A<>A<>~<7E>A<>A<>A<>A<>A<>A<><12>A<>A<>A<><12>A<>A<>A<><1C>A<>A<>A<><1E>A<>A<>A<>A<>A<>A<>2<EFBFBD>A<>A<>A<>2<EFBFBD>A<>A<>A<><<3C>A<>A<>A<>><3E>A<>A<>A<>A<>A<>A<>A<>Ar(c <00><><00>tjd<01>}tjd<02>}|j}|<03>}|j}|<05>}||k7}|<07>stjd|fd||f<02>dt j <00>vstj|<01>rtj|<01>ndtj|<03>tj|<04>dt j <00>vstj|<02>rtj|<02>ndtj|<05>tj|<06>d<07>z}dd |iz} ttj| <09><00><00>dx}x}x}x}}y)
Nr_<00>11CHST0000H3ACXP<58><01>!=<3D>z<>%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.group_key
}()
} != %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.group_key
}()
}<7D>head<61>chest<73>rrr;rTrVrx<00>assert %(py12)sr r)
rrrr!rDr<00> @py_assert9rKr<><00> @py_format13s
r%<00>"test_group_key_separates_locationsz;TestChannelCodeRealWorld.test_group_key_separates_locationss<><00><00><1A> <20> <20>!3<>4<><04><1B>!<21>!<21>"4<>5<><05><13>~<7E>~<7E>4<>~<7E><1F>4<>5<EFBFBD>?<3F>?<3F>4<>?<3F>#4<>4<><1F>#4<>4<>4<>4<>4<><1F>#4<>4<>4<>4<>4<>4<>4<>t<EFBFBD>4<>4<>4<>t<EFBFBD>4<>4<>4<>~<7E>4<>4<>4<><1F>4<>4<>4<>4<>4<>4<>5<EFBFBD>4<>4<>4<>5<EFBFBD>4<>4<>4<>?<3F>4<>4<>4<>#4<>4<>4<>4<>4<>4<>4<>4<>4r(c <00><><00>tjd<01>}tjd<02>}|j}|<03>}|j}|<05>}||k7}|<07>stjd|fd||f<02>dt j <00>vstj|<01>rtj|<01>ndtj|<03>tj|<04>dt j <00>vstj|<02>rtj|<02>ndtj|<05>tj|<06>d<07>z}dd |iz} ttj| <09><00><00>dx}x}x}x}}y)
Nr_<00>13HEAD0000H3ACXPrr<00>driver<65>rearrrr r)
rr!r"r!rDrrrKr<>rs
r%<00>"test_group_key_separates_occupantsz;TestChannelCodeRealWorld.test_group_key_separates_occupantss<><00><00><1C>"<22>"<22>#5<>6<><06><1A> <20> <20>!3<>4<><04><15><1F><1F>5<><1F>!<21>5<>T<EFBFBD>^<5E>^<5E>5<>^<5E>%5<>5<>!<21>%5<>5<>5<>5<>5<>!<21>%5<>5<>5<>5<>5<>5<>5<>v<EFBFBD>5<>5<>5<>v<EFBFBD>5<>5<>5<><1F>5<>5<>5<>!<21>5<>5<>5<>5<>5<>5<>T<EFBFBD>5<>5<>5<>T<EFBFBD>5<>5<>5<>^<5E>5<>5<>5<>%5<>5<>5<>5<>5<>5<>5<>5<>5r(N) r<>r<>r<>r<><00>pytest<73>mark<72> parametrizerrrrr#r<>r(r%r<>r<><00>si<00><00>H<> <0B>[<5B>[<5B><1C><1C>)<29>
<EFBFBD><06>(
<EFBFBD>)<06>(
<EFBFBD> <0C>[<5B>[<5B><1C><1C><1D>
<EFBFBD><06>3<><06>3<>B<01>5<>
6r(r<>)r<><00>builtinsr<00>_pytest.assertion.rewrite<74> assertion<6F>rewriter<00>pathlibr<00>numpy<70>npr$<00>impakt.channel.coder<00> impakt.io.mmer<00>__file__<5F>parentr<74>r%<00>skipif<69>exists<74>
pytestmarkr r<>r<>r<>r<>r<>r<>r(r%<00><module>r5s<><00><01><04> <01><00><18><12> <0A>+<2B>#<23><13>H<EFBFBD>~<7E>$<24>$<24>z<EFBFBD>1<> <0C><14>[<5B>[<5B> <1F> <1F><14><1B><1B><1D><1D> -<2D> <20><02>
<EFBFBD> `(<28>`(<28>F!<21>!<21>> <1D> <1D>!$<24>!$<24>H<1E><1E>0<6<><6r(