
    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.02 (Track B): VoyagerDefense    Nz/mnt/e/genesis-systemc                  <   ddl m} m}m}  | d       }|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                  }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}}|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                  }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ddg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                  }t        |      }d}||k(  }|s
t        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  }dd|iz  }t        t        j                  |            d x}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  }dd|iz  }	t        t        j                  |	            d x}x}}t!        |t"              }|sd 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"d#t        j                         v st        j                  t"              rt        j                  t"              nd#t        j                  |      d$z  }t        t        j                  |            d }d}||k  }d%}||k  }|r|st        j                  d&||fd'|||f      t        j                  |      d"t        j                         v st        j                  |      rt        j                  |      nd"t        j                  |      d(z  }d)d*|iz  }t        t        j                  |            d x}x}x}} |d+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                  }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d0d      }d}|j&                  } |       }||v }|st        j                  d1|fd2||f      t        j                  |      d3t        j                         v st        j                  |      rt        j                  |      nd3t        j                  |      t        j                  |      d4z  }	d5d6|	iz  }t        t        j                  |            d x}x}x}}|j)                  d7      }t        |      }d8}||k(  }|st        j                  d|fd9||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                  |      d;z  }d)d*|iz  }t        t        j                  |            d x}x}}d< |D        }t+        |      }|sd=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)                  d7      }||k(  }|st        j                  d|fd@||f      d:t        j                         v st        j                  |      rt        j                  |      nd:dAt        j                         v st        j                  |      rt        j                  |      ndAdBz  }dCdD|iz  }t        t        j                  |            d }|j)                  dE      }||k7  }|st        j                  dF|fdG||f      d:t        j                         v st        j                  |      rt        j                  |      nd:dHt        j                         v st        j                  |      rt        j                  |      ndHdBz  }dCdD|iz  }t        t        j                  |            d }t-        dI       y )JNr   )VoyagerDefenseVoyagerScoreBLOCK_THRESHOLD)qdrant_clienterrorzsomething bad)statusr   g        )==)z-%(py2)s
{%(py2)s = %(py0)s.score
} == %(py5)sresult)py0py2py5zassert %(py7)spy7F)z4%(py2)s
{%(py2)s = %(py0)s.should_block
} == %(py5)s)z5%(py2)s
{%(py2)s = %(py0)s.matched_scars
} == %(py5)s	completedzall good)r	   r   g333333?zscar-001zscar-002T)scorematched_scarsshould_blockr      )zS%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.matched_scars
})
} == %(py8)slen)r   py1py3r   py8zassert %(py10)spy10z5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}
isinstancer   float)r   r   r   py4g      ?)<=r   )z%(py1)s <= %(py4)sz%(py4)s <= %(py6)s)r   r   py6zassert %(py8)sr   g      ?)r   r   g?	score_low
score_hightimeout)in)zD%(py1)s in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.lower
}()
}text)r   r   r   r   zassert %(py9)spy9z	test texti   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sembed)r   r   r   r   c              3   <   K   | ]  }t        |t                y w)N)r   r   ).0vs     6/mnt/e/genesis-system/tests/track_b/test_story_3_02.py	<genexpr>z'test_voyager_defense.<locals>.<genexpr>.   s     3z!U#3s   z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}all)r   r   r   )z%(py0)s == %(py2)sembed2)r   r   zassert %(py4)sr   zdifferent text)!=)z%(py0)s != %(py2)sembed3u)   ALL TESTS PASSED — Story 3.02 (Track B))core.mvfl.voyager_defenser   r   r   r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr   r   r   r   r   _output_to_textlower_simple_embedr+   print)r   r   r   defenser   @py_assert1@py_assert4@py_assert3@py_format6@py_format8r   @py_assert2@py_assert7@py_assert6@py_format9@py_format11@py_format5@py_assert0@py_assert5@py_format7r   r    defense2r#   @py_format10r%   r,   @py_format3r.   s                                r)   test_voyager_defenserN      s   WW 40G]]gHIF<<3<3<366<3'%'%''''%''''''6'''6''''''%'''''''%2%2%%%%2%%%%%%6%%%6%%%%%%2%%%%%%% ]]kZHIF<<3<3<366<3'%'%''''%''''''6'''6''''''%''''''' tJ
3KZ^_E;;$;$;$55;$""(3"#(q(#q((((#q((((((3(((3((((((u(((u((("(((#(((q(((((((%%%%%%%%%%%%5%%%5%%%%%%%%%%%%% ou--------:---:------o---o------u---u----------(3/((S(/S(((((3/S(((3((((((/(((/(((S((((((( 3U;ICd;J!!*U*!U****!U******9***9***!***U*******""*d*"d****"d******:***:***"***d******* D1H##w$KLD"djj"jl"7l""""7l"""7""""""d"""d"""j"""l""""""" "";/Eu:::33uu:3U3333333333333333333333333333333 ##K0FF?5F55FF ##$45FF?5F55FF	
56    __main__)__doc__builtinsr2   _pytest.assertion.rewrite	assertionrewriter0   syspathinsertrN   __name__ rO   r)   <module>r[      s=    4   
 * +17h z rO   