
    it                         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)uE   Tests for Story 3.01 (Track B): MVFLTrigger — 3-Condition Detection    Nz/mnt/e/genesis-systemc                  :   ddl m} m}  |        }|j                  ddddi       }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d|j                         dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d|j                         dz   d|iz  }t        t        j                  |            d x}x}}d}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      t        j                  |	      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }t        j                  d|j                          dz   d|iz  }t        t        j                  |            d x}	x}
}|j                  ddd di       }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d |j                         dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d"|j                         dz   d|iz  }t        t        j                  |            d x}x}}|j                  d#dd$di       }|j                  }d%}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d&      dz   d|iz  }t        t        j                  |            d x}x}}|j                  }d }||u }|st        j                  d|fd'||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d(|j                         dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d)|j                         dz   d|iz  }t        t        j                  |            d x}x}}|j                  d*d+dd,i       }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d-      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d.|j                         dz   d|iz  }t        t        j                  |            d x}x}}d+}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      t        j                  |	      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }t        j                  d/|j                          dz   d|iz  }t        t        j                  |            d x}	x}
}|j                  d0d1ddi       }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d2      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d3|j                         dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d4|j                         dz   d|iz  }t        t        j                  |            d x}x}}|j                  d5d0dd d6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  }t        j                  d7|j                         dz   d|iz  }t        t        j                  |            d x}x}}|j                  d8dd9di       }|j                  }d }||u }|st        j                  d|fd'||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d:|j                         dz   d|iz  }t        t        j                  |            d x}x}}|j                  dd9d;i       }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  d<      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d>|j                         dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  d@|j                         dz   d|iz  }t        t        j                  |            d x}x}}dA}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      t        j                  |	      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }t        j                  dB|j                          dz   d|iz  }t        t        j                  |            d x}	x}
}|j                  dCdd9dDdEi       }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  dF      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  dG|j                         dz   d|iz  }t        t        j                  |            d x}x}}dH}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      t        j                  |	      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }t        j                  dI|j                          dz   d|iz  }t        t        j                  |            d x}	x}
}dJddKdLi}|j                  dMd9dNdO|i      }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  dP      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  dQ|j                         dz   d|iz  }t        t        j                  |            d x}x}}dJ}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      t        j                  |	      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }t        j                  dR|j                          dz   d|iz  }t        t        j                  |            d x}	x}
}dSddTdLi}|j                  dUd9dVdWdO|i      }|j                  }d}||u }|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      t        j                  |      dz  }t        j                  dX      dz   d|iz  }t        t        j                  |            d x}x}}|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  }t        j                  dY|j                         dz   d|iz  }t        t        j                  |            d x}x}}dS}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      t        j                  |	      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }t        j                  dZ|j                          dz   d|iz  }t        t        j                  |            d x}	x}
}t#        d[       y )\Nr   )MVFLTriggerMVFLTriggerResulti  t1error)status_codetask_idstatusT)is)z1%(py2)s
{%(py2)s = %(py0)s.triggered
} is %(py5)sresult)py0py2py5zBB1: should be triggeredz
>assert %(py7)spy7external_rejection)==)z4%(py2)s
{%(py2)s = %(py0)s.trigger_type
} == %(py5)sz	BB1: got    )z0%(py2)s
{%(py2)s = %(py0)s.severity
} == %(py5)szBB1: severity should be 3, got 422)in)z/%(py1)s in %(py5)s
{%(py5)s = %(py3)s.details
})py1py3r   z%BB1: details should mention 422, got t2	completed)r	   r
   r   zBB2: should be triggeredsemanticz	BB2: got    zBB2: severity should be 2, got t3doneFzBB3: should NOT be triggered)z4%(py2)s
{%(py2)s = %(py0)s.trigger_type
} is %(py5)sz&BB3: trigger_type should be None, got zBB3: severity should be 0, got t4zrate limited)r	   	api_errorr
   zBB4: should be triggeredz	BB4: got z BB4: details missing error, got i  t8zBB5: should be triggeredz	BB5: got zBB5: severity should be 3, got t5)r	   r   r
   r   z6WB1: External should take priority over Semantic, got t6okz7WB2: trigger_type should be None for clean output, got )r
   r   zWB3: should be triggeredsyntaxz	WB3: got    zWB3: severity should be 1, got r	   z/WB3: details should mention missing field, got t7)r	   r
   r   duration_mszWB4: should be triggeredz	WB4: got z-5z0WB4: details should mention negative value, got payloaddict)requiredtypet9)r	   r
   expected_schemazWB5: should be triggeredz	WB5: got z(WB5: missing field should be named, got countintt10z
not-an-int)r	   r
   r/   zWB6: should be triggeredz	WB6: got z.WB6: field name should appear in details, got u)   ALL TESTS PASSED — Story 3.01 (Track B))core.mvfl.mvfl_triggerr   r   evaluate	triggered
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_saferepr_format_assertmsgAssertionError_format_explanationtrigger_typeseveritydetailsprint)r   r   triggerr   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert0@py_assert2schemas               6/mnt/e/genesis-system/tests/track_b/test_story_3_01.pytest_mvfl_triggerrL      sF   EmG cdgVXZ[F?t?t#???t??????6???6??????t???%????????Y"6Y"66YYY"6YYYYYY6YYY6YYYYYY"6YYY)FDWDWCX8YYYYYYYY??TaT?aTTT?aTTTTTT6TTT6TTT?TTTaTTT#B6??BS!TTTTTTTT\FNN\5N"\\\5N\\\5\\\\\\F\\\F\\\N\\\&KFNNK[$\\\\\\\\ $+QUVXZ[F?t?t#???t??????6???6??????t???%????????O*O*,OOO*OOOOOO6OOO6OOOOOO*OOO	&:M:M9N.OOOOOOOO??TaT?aTTT?aTTTTTT6TTT6TTT?TTTaTTT#B6??BS!TTTTTTTT $+QWXZ\]FDuDu$DDDuDDDDDD6DDD6DDDDDDuDDD&DDDDDDDDf$f$&fff$ffffff6fff6ffffff$fff*PQWQdQdPe(ffffffff??TaT?aTTT?aTTTTTT6TTT6TTT?TTTaTTT#B6??BS!TTTTTTTT $^W^_acdF?t?t#???t??????6???6??????t???%????????Y"6Y"66YYY"6YYYYYY6YYY6YYYYYY"6YYY)FDWDWCX8YYYYYYYY`V^^`>^+```>^```>``````V```V```^```/OPVP^P^O_-```````` cdgVXZ[F?t?t#???t??????6???6??????t???%????????Y"6Y"66YYY"6YYYYYY6YYY6YYYYYY"6YYY)FDWDWCX8YYYYYYYY??TaT?aTTT?aTTTTTT6TTT6TTT?TTTaTTT#B6??BS!TTTTTTTT !		
 	F  "6 "66  "6                  #7    AATAT@UV    
 $+QUVXZ[F $ $&  $                  #'    B&BUBUAVW    
 ErJF?t?t#???t??????6???6??????t???%????????M(M(*MMM(MMMMMM6MMM6MMMMMM(MMMi8K8K7L,MMMMMMMM??TaT?aTTT?aTTTTTT6TTT6TTT?TTTaTTT#B6??BS!TTTTTTTTjj9&jjj9jjj9jjjjjjjjjjjjjjj*YZ`ZhZhYi(jjjjjjjj K4PRSUWF ?t?t#???t??????6???6??????t???%????????O*O*,OOO*OOOOOO6OOO6OOOOOO*OOO	&:M:M9N.OOOOOOOOf6>>f4>!fff4>fff4ffffff6fff6fff>fff%UV\VdVdUe#ffffffff dF;<F$$?BSU[A\]F?t?t#???t??????6???6??????t???%????????M(M(*MMM(MMMMMM6MMM6MMMMMM(MMMi8K8K7L,MMMMMMMMcc9&ccc9ccc9ccccccccccccccc*RSYSaSaRb(cccccccc D%89FTLA	F#F ?t?t#???t??????6???6??????t???%????????M(M(*MMM(MMMMMM6MMM6MMMMMM(MMMi8K8K7L,MMMMMMMMgfnng7n$ggg7nggg7ggggggfgggfgggnggg(VW]WeWeVf&gggggggg	
56    __main__)__doc__builtinsr7   _pytest.assertion.rewrite	assertionrewriter5   syspathinsertrL   __name__ rM   rK   <module>rY      s>    K   
 * +`7F z rM   