
    jR                        d Z ddlmZ ddlZddlmc mZ ddl	Z	ddl
mZ ddlmZmZmZmZ  ee      j$                  j$                  j$                  dz  dz  dz  Zd
d	Zy)u   tests.regression.dispatch_gate.test_prompt_3270_allowed — §17.14 regression.

회장 verbatim: 3270 bytes prompt 는 hard block 대상이 아니다 (ANU paraphrase
사고 정정). 단독 fail-closed regression — fixture JSON 1:1 검증.
    )annotationsN)Path)OK_ABOVE_TARGETclassify_prompt_bytes
is_allowedmeasure_utf8_bytesfixturesdispatch_gatezprompt_3270_allow.jsonc                 (   t        j                  t        j                               } | d   d   }d}||k(  }|st	        j
                  d|fd||f      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}}d
|z  }t        |      }d}||k(  }|st	        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                  |      dz  }	dd|	iz  }
t        t	        j                  |
            d x}x}}t        |      }|j                  }|t        k(  }| d   d   }t        |k(  }|r|st	        j
                  d||fd|t        |f      dt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}x}}|j                   }d}||u }| d   d   }||k(  }|r|st	        j
                  d||fd|||f      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}x}}|j"                  }d!}||u }| d   d"   }||k(  }|r|st	        j
                  d||fd#|||f      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}x}}t%        |      }d}||u }|st	        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                  |      dz  }	dd|	iz  }
t        t	        j                  |
            d x}x}}y )'Ninputprompt_byte_lengthi  )==)z%(py0)s == %(py3)sn)py0py3zassert %(py5)spy5x)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   prompt)r   py1r   py6zassert %(py8)spy8expectedverdict)r   r   )z/%(py2)s
{%(py2)s = %(py0)s.verdict
} == %(py5)sz%(py5)s == %(py7)scr   )r   py2r   py7zassert %(py9)spy9Tallowed)isr   )z/%(py2)s
{%(py2)s = %(py0)s.allowed
} is %(py6)s%(py6)s == %(py8)s)r   r   r   r   zassert %(py10)spy10F
hard_block)z2%(py2)s
{%(py2)s = %(py0)s.hard_block
} is %(py6)sr    )r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} is %(py6)sr   )jsonloadsFIXTURE	read_text
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr   r   r   r   r   r"   r   )fixr   @py_assert2@py_assert1@py_format4@py_format6r   @py_assert5@py_assert4@py_format7@py_format9r   @py_assert3@py_assert6@py_format8@py_format10@py_assert7@py_format11s                     h/home/jay/workspace/.worktrees/task-2645-dev2/tests/regression/dispatch_gate/test_prompt_3270_allowed.py0test_3270_bytes_prompt_is_allowed_chair_verbatimr?      s   
**W&&(
)CG)*A191111WFf%--%----%---------------f---f---%----------f%A99E9EE3z?9+EE+EEEEEE9+EEEEEEE1EEE1EEE9EEEEEEEEEEEE+EEEEEEEE99::9::J	 :: ::::::9 :::::::1:::1:::9:::::: ::::::::<<A5A<5AAC
OL$AA5$AAAAAA<5$AAAAAAA1AAA1AAA<AAA5AAA$AAAAAAAAf%%%%%%%%%%%%:%%%:%%%%%%f%%%f%%%%%%%%%%%%%    )returnNone)__doc__
__future__r   builtinsr)   _pytest.assertion.rewrite	assertionrewriter'   r#   pathlibr   utils.prompt_byte_classifierr   r   r   r   __file__parentr%   r?    r@   r>   <module>rN      sX   
 #      	N  ''*4FIaa 
&r@   