
    j	&                    R   d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
Z
 ee      j                  Zej                  j                  dedz        Zerej"                  sJ ej                  j%                  e      Zeej(                  ej*                  <   ej"                  j-                  e       dddd	Zd
d d	 	 	 	 	 	 	 ddZddZ	 	 	 	 	 	 	 	 	 	 ddZd dZd dZd dZd dZd dZe
j@                  jC                  dg d      d!d       Z"d dZ#d dZ$d dZ%d dZ&d"dZ'y)#    )annotationsN)Path)Anycontinuous_v3zcontinuous_lifecycle.pymoderateactivityc                    i ddddddddd	| d
ddddd dd ddg dddg dddg dddg dddg dddg dddg dddddddddS ) Ndate_of_birthz
1996-08-01equation_sex_basismale	height_cm180	weight_kg80activity_categoryactivity_rationaleu   주 3회 근력운동	goal_typemaintaintarget_weight_kgtarget_date	allergiesnone)statusitemsintolerancesreligious_ethical_exclusionsdisliked_foodsdietary_preferences
conditionsmedicationspregnancy_breastfeedingFu   기본 조리 가능u   보통      없음)eating_disorder_riskcooking_accessbudget_band
meal_countschedule_constraints r   s    b.omo/evidence/task26/task26-continuous-lifecycle-observer-v3-e2f1699e/test_continuous_lifecycle.pyanswersr,      s   f 	U 	T	
 	X 	5 	Z 	D 	t 	4 	6B7 	'6B(G 	Vb9 	&2> 	"5  	&26!" 	"5#$ !&0 (-     resolved)statecurrent_indexc          
         g }|dk(  s|rddddg}d|t         j                  |       dg g g g |d||d	}t         j                  |      |d
<   |S )N
clarifyingr   	ambiguityu+   평소 활동량은 어느 정도인가요?)fieldkindquestion_ko!nutrition_input_reconciliation_v1u   고객 입력 요약)
summary_kofacts_koambiguities_kocontradictions_kosafety_observations_koclarifications)schema_versionr/   answers_digestadvisoryr=   r0   digest)mcanonical_digest)valuer/   r0   r=   records        r+   reconciliationrF   0   s     /1N -#L
 >,,U30 !#&(,
 )&!F ))&1F8Mr-   c                 T   t               } dt        j                  |       dd}t        j                  ddd|d}dd	t        j                  t        j                  d
dt        j
                  t        j
                  dgddd| t        | d      dgd|i |dt        j
                  dgdgg d g g i i g d}t        j                  |d   | d      }|J t        j                  j                  |j                               j                         }||d   d   d<   ||d   d   d   d<   |S )Ncustomer_attestation@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r/   r?   body_digest   	COMMITTED   
session_id
generationr/   
message_idpayloadAWAITING_ACTIVATION   )r/   rP   rO   sid_hashF0)enabledroute      r0      )r/   cursorr,   rF   consumed_updatescustomerrolerX   )	bootstrapr_   workflowpublicationoutboxowner_callbackswizardgenerationscardsdrafts
deliveries
activationrc   rd   rR   rJ   re   r   )r,   rB   rC   SESSIONSIDCUSTOMERrF   candidate_attestation_texthashlibsha256encode	hexdigest)rD   rR   rd   snapshottextrJ   s         r+   baserw   O   sV   IE',,U3G iiK +))	
 !&QZZ0MN+,U!D!$
 #"**c*
 ; H> ''(<eQGD))""4;;=1;;=K8CH]I&}56AHXq)$]3Or-   c                    t         j                  |d||d}|| d<   | d   j                  i |dt         j                  dgd       y )NrL   rN   rd   re   r_   rV   r`   )rB   rm   appendro   )srP   rQ   rR   rd   s        r+   publishr{      sS     ii  K #AmhKV+VzQZZQTDUVWr-   c                     t         j                  dk(  sJ t         j                  dk(  sJ t         j                  dk(  sJ y )N@e2f1699e8586ed3f835eaa2a3eaeaecaf5e52a4ad82aa931caade0ed377077ce@b025a71695b620555f701f1c248545bd343428c430db37b2d8bd16148e0b0b7a@bd5f44592e95b152cc466446fcbb607df586dc13482d0d3413fed80a476d2a70)rB   	SUCCESSORCOREWHEELr*   r-   r+   test_candidate_bindingsr      sE    	M	N	N 66WWWW77XXXXr-   c                     t               } | d   j                  ddddi       i | d   dt        j                  dgd	g| d
<   t        j	                  |       j
                  dk(  sJ y )Nrd         r/   
collecting)rP   rQ   rR   r_   rV   r`   re   "WAIT_MATCHING_CUSTOMER_PUBLICATION)rw   updaterB   ro   classifyr   rz   s    r+   (test_q22_stale_session_publication_waitsr      st    Am#/F   Xa&W
ajjRUEVWXAhK::a=#GGGGr-   c                 J   t               } | d   d   }t        |d      | d   d<   dt        t        j	                  |            ddd	}g | d
<   t        | dd|       t        j                  |       }|j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ y )Nrc   r,   r2   )r/   rF   rH   @bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr   )r/   r?   rJ   clarification_fieldre         READY_CUSTOMER_CLARIFICATION205z&submit_clarification:activity_category)
rw   rF   strrB   rC   r{   r   r   rQ   action)rz   rD   rR   prompts       r+   +test_committed_clarification_is_field_boundr      s    AjM)$E&4U,&OAjM"#'a00782	"G AhKAr3 ZZ]F==::::%%%==DDDDr-   c                     t               } d| d   d   d<   d| d   d   d   d<   t        j                  |       j                  dk(  sJ y )N@0000000000000000000000000000000000000000000000000000000000000000rd   rR   r?   re   r   r   )rw   rB   r   r   r   s    r+   0test_resolved_authority_before_publication_waitsr      sS    A4<AmY 012:AhKN9./::a=#GGGGr-   c                     t         j                  t                     } | j                  dk(  sJ | j                  dk(  sJ | j
                  t         j                  dd      k(  sJ d| j                  v sJ y )NREADY_CUSTOMER_ATTEST207attestrK   z,candidate-render-bound Korean summary passed)rB   r   rw   r   rQ   r   callbackdetail)r   s    r+   9test_resolved_matching_publication_authorizes_attestationr      sh    ZZF==3333%%%==AJJx44449V]]JJJr-   fault)r4   rA   rP   messageuncommittedc                <   t               }| dk(  rd|d   d   d<   d|d   d   d   d<   nC| dk(  rd	|d   d   d
<   d	|d   d   d   d
<   n$| dk(  r	d|d   d<   n| dk(  r	d|d   d<   nd|d   d<   t        j                  |      j                  j	                  d      rJ y )Nr4   r   rd   rR   r   re   r   rA   @ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffr?   rP   r   r      rQ   PREPAREDr/   r   )rw   rB   r   r   
startswith)r   rz   s     r+   test_mismatch_fails_closedr      s     	A=H-#$9:;F(Ay!"78	(	8@-#$456>(Ay!"23	,	)+-&	)	),-&$.-!zz!}##../FGGGGr-   c                    t               } | d   j                  t        j                  | d   d                t	        j
                  t        j                  d      5  t        j                  |        d d d        t               }t               }d|d   d<   t	        j
                  t        j                  d      5  t        j                  ||       d d d        y # 1 sw Y   jxY w# 1 sw Y   y xY w)	Nre   r   zduplicate publication)matchr   rd   rP   	regressed)
rw   ry   copydeepcopypytestraisesrB   LifecycleErrorr   validate_transition)rz   abs      r+   9test_duplicate_and_non_monotonic_publications_fail_closedr      s    AhKt}}Qx[^45	q''/F	G	

1 
HAA%'Am\"	q''{	;	a# 
<	; 
H	G
 
<	;s   C<C(C%(C1c                     t               } d| d   d   d<   d| d   d   d   d<   t        j                  |       }|j                  dk(  sJ d|j                  v sJ y )	Nr   rd   rR   rJ   re   r   STOP_CUSTOMER_SUMMARY_QUALITYzrender-bound)rw   rB   r   r   r   )rz   r   s     r+   Ftest_candidate_surface_quality_rejects_internal_stale_and_unbound_copyr      sf    A19AmY./7AhKN9m,ZZ]F==;;;;V]]***r-   c                 P   t               } t        d      }|| d   d<   t        |d      | d   d<   t        j	                  |      }|| d   d	   d
<   || d   d   d	   d
<   t        j                  |       }|j                  dk(  sJ |j                  dk(  sJ d|j                  v sJ y )N,   활동 수준: 보통. 주 3회 근력운동r   rc   r,   rZ   r[   rF   rd   rR   r?   re   r   r   zdo-not-attestr	   )	rw   r,   rF   rB   rC   r   r   r   r   )rz   rD   rA   r   s       r+   3test_clarified_free_text_activity_is_not_attestabler      s    AKLE$AjM)&4U!&LAjM"#&F4:AmY 0128AhKN9./ZZ]F==;;;;==O+++&&&r-   c                    t               } t        d      }|| d   d<   t        |d      | d   d<   t        j	                  |      }|| d   d	   d
<   || d   d   d	   d
<   t        j                  |       }|J |d   t        j                  dd      k(  sJ |d   dk(  sJ |d   dk(  sJ t        j                  d   dk(  sJ y )Nr   r   rc   r,   rZ   r[   rF   rd   rR   r?   re   r   r   reviserK   
next_fieldr)   
next_valuer$   )rw   r,   rF   rB   rC   candidate_revision_handoffr   FIELDS)rz   rD   rA   handoffs       r+   Etest_normal_customer_revision_reopens_only_last_field_with_same_valuer      s    AKLE$AjM)&4U!&LAjM"#&F4:AmY 0128AhKN9./**1-G8

8R 8888< $::::< H,,,88B<1111r-   c                r   | dz  }t         j                  |ddi       t         j                  |ddi       |j                         j                         D cg c]!  }t         j                  j                  |      # }}|j                         j                  dz  dk(  sJ |d   d   |d	   d
   k(  sJ y c c}w )Nzevents.jsonlr   ABi  i  rZ   previous_event_sha256r   event_sha256)rB   append_event	read_text
splitlinesjsonloadsstatst_mode)tmp_pathtargetlinerowss       r+   .test_append_ledger_is_private_and_hash_chainedr     s    &FNN6Hc?+NN6Hc?++1+;+;+=+H+H+JK+J4AFFLL+JDK;;=  5(E1117*+tAw~/FFFF Ls   &B4)r	   r   returndict[str, object])rD   r   r/   r   r0   intr   r   )r   dict[str, Any])
rz   r   rP   r   rQ   r   rR   r   r   None)r   r   )r   r   r   r   )r   r   r   r   )(
__future__r   r   importlib.util	importlibsyspathlibr   typingr   r   __file__parentHEREutilspec_from_file_locationSPECloadermodule_from_specrB   modulesnameexec_moduler,   rF   rw   r{   r   r   r   r   r   markparametrizer   r   r   r   r   r   r*   r-   r+   <module>r      sc   "   
   H~~~--T55  NN##D)DII       * 8 /9q(+IL>2jXX#&X47XBSX	XYHE$HK HHH"	$+'2 Gr-   