
    i1                         d Z ddlZddlZddlmZ ej
                  j                  dd       ddlmZm	Z	m
Z
 dZdZd Zd	 Zd
 Zd Zd Zd Zy)u&   P1-1 Progressive Disclosure 테스트.    N)patchz/home/jay/workspace)build_promptTOKEN_LIMITS_count_tokensztask-test-pd-01u  테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. 테스트용 작업 설명입니다. Progressive Disclosure 기능을 검증합니다. c           	          | dz  dz  }|j                   j                  dd       dddddddddd	}|j                  t        j                  |d
      d       t        |      S )u7   임시 feature_flags.json 생성 + 환경변수 설정..claudefeature_flags.jsonTparentsexist_ok1.02026-04-07T00:00:00+09:00Fprogressive_disclosure_enabledrw_isolation_enabledhooks_enforcement_enabledtrust5_tagging_enabledmodel_map_enabledhaiku_ab_enabledschema_version
updated_atflags   indentutf-8encodingparentmkdir
write_textjsondumpsstrtmp_path
flags_filedatas      R/home/jay/workspace/.worktrees/task-2116-dev1/tests/test_progressive_disclosure.py_enable_pd_flagr,      sy    I%(<<JD481.2$)).&+!& %
D $**T!4wGz?    c           	          | dz  dz  }|j                   j                  dd       dddddddddd	}|j                  t        j                  |d
      d       t        |      S )u0   임시 feature_flags.json 생성 (모두 false).r   r	   Tr
   r   r   Fr   r   r   r   r   r   r    r'   s      r+   _disable_pd_flagr/   %   sy    I%(<<JD481.3$)).&+!& %
D $**T!4wGz?r-   c                 X   t        |       t        ddfd	      5  t        dt        t        d      }t        dt        dz   t        d      }d d d        t              }t              }|t        d   kD  r||z  }|dk  sJ d	|d
d       y ||dz   k  sJ d       y # 1 sw Y   RxY w)N.utils.feature_flags.FeatureFlagLoader.__init__c                 t    t        | d      t        | di       t        | dd      | j                         fd   S N_path_cache_mtimeg        setattr_loadselfpath
flags_paths     r+   <lambda>z0test_summary_phase_token_ratio.<locals>.<lambda><   C    gz*h#h$

	Z
 	Z
 r-   	dev1-teamfulldisclosure_phasez-ssummaryg333333?zsummary ratio z.2fz exceeds 0.30
   z@summary should not exceed full when full is already within limitN)r,   r   r   SAMPLE_TASK_IDSAMPLE_TASK_DESCr   r   )r(   full_promptsummary_promptfull_tokenssummary_tokensratior>   s         @r+   test_summary_phase_token_ratiorO   :   s     *J	? B
 
 
 #)9F
 &$.0@S\

  ,K">2N\),,,}GuSkGG} r!11u3uu1)
 
s   2B  B)c                     t        |       t        dd
fd	      5  t        dt        dz   t        d      }d d d        t              }|dk  sJ d| d	       y # 1 sw Y   %xY w)Nr1   c                 t    t        | d      t        | di       t        | dd      | j                         fd   S r3   r8   r;   s     r+   r?   z0test_summary_phase_token_limit.<locals>.<lambda>V   r@   r-   rA   z-limrE   rC   iX  zsummary tokens z exceeds 600 limitrG   )r,   r   r   rH   rI   r   )r(   prompttokensr>   s      @r+   test_summary_phase_token_limitrT   T   sv     *J	? B
 
 
 &02BU^

 6"FS=FOF83EFF=
 
s   AA%c                    t        |       t        ddfd	      5  dD ]K  }t        dt         d| t        |      }d|v sJ d| d	       d
|v sJ d| d	       d|v rBJ d| d	        	 d d d        y # 1 sw Y   y xY w)Nr1   c                 t    t        | d      t        | di       t        | dd      | j                         fd   S r3   r8   r;   s     r+   r?   z3test_critical_set_always_included.<locals>.<lambda>f   r@   r-   )rE   standardrB   rA   -rC   u   금지행위u   '금지행위' not in z promptu	   QC 의무u   'QC 의무' not in u   보고 형식u   '보고 형식' not in rG   )r,   r   r   rH   rI   )r(   phaserR   r>   s      @r+   !test_critical_set_always_includedrZ   d   s     *J	? B
 
 W 5 	WE!/q8:J]bF "V+T/EeWG-TT+&(N,?wg*NN("f,V0Gwg.VV,	WW W Ws   AA8"A88Bc                 
   t        |       t        dd
fd	      5  t        dt        dz   t        d      }t        dt        dz   t        d      }d d d        t              t              k(  sJ d	       y # 1 sw Y   (xY w)Nr1   c                 t    t        | d      t        | di       t        | dd      | j                         fd   S r3   r8   r;   s     r+   r?   z-test_flag_disabled_fallback.<locals>.<lambda>x   r@   r-   rA   z-f1rB   rC   z-f2rE   z-Flag disabled: summary should be same as fullrG   )r/   r   r   rH   rI   r   )r(   rJ   rK   r>   s      @r+   test_flag_disabled_fallbackr]   v   s    !(+J	? B
 
 
 #%/1ATZ
 &%/1AT]

 %~)FF 878F
 
s   5A99B)__doc__sysr$   unittest.mockr   r=   insertprompts.team_promptsr   r   r   rH   rI   r,   r/   rO   rT   rZ   r]    r-   r+   <module>rd      sZ    , 
   ( ) J J #q (*v4G W$8r-   