
    Hi	                         d Z ddlZddlmc mZ ddlZej                  j                  dd       d Z
edk(  r e
        yy)z/Tests for Story 3.03 (Track B): OutputValidator    Nz/mnt/e/genesis-systemc                  0   ddl m} m}m}  |        }|j	                  ddi      }|j
                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      d	z  }d
d|iz  }	t        t        j                  |	            d x}x}}d |j                  D        }t        |      }|st        j                   d|j                         dz   dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dz  }
t        t        j                  |
            d x}}ddddi}|j	                  ddi|      }|j
                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      d	z  }d
d|iz  }	t        t        j                  |	            d x}x}}d |j                  D        }t        |      }|st        j                   d|j                         dz   dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dz  }
t        t        j                  |
            d x}}|j	                  ddd      }|j
                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      d	z  }d
d|iz  }	t        t        j                  |	            d x}x}}|j                  }g }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      d	z  }d
d|iz  }	t        t        j                  |	            d x}x}}ddddi}|j	                  ddi|      }|j
                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      d	z  }d
d|iz  }	t        t        j                  |	            d x}x}}d |j                  D        }t        |      }|st        j                   d |j                         dz   dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dz  }
t        t        j                  |
            d x}}dddddddddd!}|j	                  i |      }|j                  }t#        |      }d"}||k(  }|sCt        j                  d|fd#||f      d$t        j                         v st        j                  t"              rt        j                  t"              nd$dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      d%z  }t        j                   d&t#        |j                         d'|j                         d(z   d)|iz  }t        t        j                  |            d x}x}x}}d*}||v }|st        j                  d+|fd,||f      t        j                  |      d-t        j                         v st        j                  |      rt        j                  |      nd-d.z  }d/d0|iz  }t        t        j                  |            d x}}d}||v }|st        j                  d+|fd,||f      t        j                  |      d-t        j                         v st        j                  |      rt        j                  |      nd-d.z  }d/d0|iz  }t        t        j                  |            d x}}|d*   d1   }d}||k(  }|slt        j                  d|fd2||f      t        j                  |      t        j                  |      d3z  }
d4d5|
iz  }t        t        j                  |            d x}x}}|d   d1   }d}||k(  }|slt        j                  d|fd2||f      t        j                  |      t        j                  |      d3z  }
d4d5|
iz  }t        t        j                  |            d x}x}}d6dddi}|j	                  i |      }|j
                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      d	z  }d
d|iz  }	t        t        j                  |	            d x}x}}d7d8ddi}|j	                  d7d9i|      }|j
                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      d	z  }d
d|iz  }	t        t        j                  |	            d x}x}}t%        d:       y );Nr   )OutputValidatorValidationResultDEFAULT_SWARM_OUTPUT_SCHEMAstatusokF)==)z-%(py2)s
{%(py2)s = %(py0)s.valid
} == %(py5)sresult)py0py2py5zassert %(py7)spy7c              3   $   K   | ]  }d |v  
 yw)task_idN .0es     6/mnt/e/genesis-system/tests/track_b/test_story_3_03.py	<genexpr>z(test_output_validator.<locals>.<genexpr>   s     5!yA~5   zExpected task_id error, got: z.
>assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}any)r   r   py4countintT)typerequired
not_an_intc              3   0   K   | ]  }d |v xr d|v   yw)zexpected intzgot strNr   r   s     r   r   z(test_output_validator.<locals>.<genexpr>   s!     M!~"5yA~5Ms   z#Expected type mismatch error, got: abc	completed)r   r   )z.%(py2)s
{%(py2)s = %(py0)s.errors
} == %(py5)snamestrz  c              3   $   K   | ]  }d |v  
 yw)zEmpty stringNr   r   s     r   r   z(test_output_validator.<locals>.<genexpr>!   s     :q~":r   z"Expected empty string error, got: )field1field2field3   )zL%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.errors
})
} == %(py8)slen)r   py1py3r   py8zExpected 3 errors, got z: z
>assert %(py10)spy10r   )in)z%(py1)s in %(py3)sr   )r*   r+   zassert %(py5)sr   r   )z%(py1)s == %(py4)s)r*   r   zassert %(py6)spy6optionalvaluefloat*   u)   ALL TESTS PASSED — Story 3.03 (Track B))core.mvfl.output_validatorr   r   r   validatevalid
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationerrorsr   _format_assertmsgr)   print)r   r   r   	validatorr
   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_format5schema@py_assert2@py_assert7@py_assert6@py_format9@py_format11@py_assert0@py_format4@py_format7s                       r   test_output_validatorrR      s<   ii!I 4 01F<< 5 <5    <5      6   6   <   5       5v}}5f355f5ff9VW]WdWdVe7fffffff3fff3fff5fff5ffffff 489F, 7@F<< 5 <5    <5      6   6   <   5       Mv}}M >3MM >M >,=,=
-fmm_=> >7=v> >%=%=  > >4=I  > >4=I N > >4=I N > > >*=*=> > E[ IJF<<4<4<466<4==B=B=B66=B u$78F7F<< 5 <5    <5      6   6   <   5       :FMM: =3:: =: =+<+<
,V]]O<= =6<f= =$<$<  = =3<9  = =3<9 ; = =3<9 ; = = =)<)<= =
 !d3 d3 d3F
 F+F}}c3}cc"ccccccccc3ccc3ccccccvcccvccc}ccccccccc&=c&-->P=QQSTZTaTaSb$cccccccc 39333339333393333333333333333332822222822228222222222222222222&y1*=EE=EEEE=EEE=EEEEEEEEEE&x0<DD<DDDD<DDD<DDDDDDDDDD 5e<=FF+F<<4<4<466<4 T:;F"v6F<<4<4<466<4	
56    __main__)__doc__builtinsr9   _pytest.assertion.rewrite	assertionrewriter7   syspathinsertrR   __name__r   rS   r   <module>r^      s=    5   
 * +67r z rS   