§
    YÂj;*  ã                  óZ  — d Z ddlmZ ddlZddlZddlmZ ddlZddlm	Z	m
Z
mZmZ ddlZ ee¦  «                             ¦   «         j        j        Zedz  dz  dz  d	z  Zed
z  dz  Zedz  dz  Zedz  ZdZdGd„ZdHd„ZdId„Z G d„ d¦  «        ZdJd„ZdKd „ZdLd"„ZdLd#„Zed$k    �r„ e d%¦  «          e d&¦  «          e d%¦  «          e¦   «         \  Z!Z"Z# e d'e#d(         › �¦  «          e d)e#d*         › �¦  «          e d+e#d,         d-›d.e#d/         d-›d0�¦  «          e d1e#d2         d-›d.e#d3         d-›d0�¦  «          e d4e#d5         › �¦  «          e d6e#d7         › �¦  «          e d8¦  «         e!D ]{Z$e$j%        e$j&        z   e$j'        z   e$j(        z   e$j)        z   dk    rd9nd:Z* e d;e*› d<e$j+        j,        d=›d>e$j-        d?›d@e$j.        dA›d.e$j/        dA›dBe$j0        dA›d.e$j1        dA›d0�¦  «         Œ| e d%¦  «         e#d7         dCk    r e dD¦  «         dS  e dE¦  «          e2dF¦  «         dS dS )MzŸ
Empirical Adversarial Stress Test: UV Coordinate Geometry & Texture Clamping
Audits all generated Cocos 3.8.x manifests across VFX, Monsters, and Characters.
é    )ÚannotationsN)ÚPath)ÚAnyÚDictÚListÚTupleÚclientÚcocosÚassetsÚ	resourcesÚvfxz#savage_primal_skills_vfx_atlas.jsonÚmonstersÚ
archetypesÚ
charactersg�íµ ÷Æ°>ÚvalÚfloatÚreturnc           	     óx   — t          j        dt          j        dt          | ¦  «        ¦  «        ¦  «        d         S )z;Converts a Python float to single-precision IEEE 754 float.Úfr   )ÚstructÚunpackÚpackr   )r   s    ú<C:\Projects\FreeExile\tests\challenger_uv_geometry_stress.pyÚ
to_float32r      s+   € åŒ=˜�fœk¨#­u°S©z¬zÑ:Ô:Ñ;Ô;¸AÔ>Ð>ó    ÚnÚintÚboolc                ó&   — | dk    o| | dz
  z  dk    S )z-Returns True if n is a positive power of two.r   é   © )r   s    r   Úis_power_of_twor"      s   € àˆqŠ5Ð'�a˜1˜q™5‘k aÒ'Ð'r   ú
List[Path]c                 ó`  — g } t                                ¦   «         r|                      t           ¦  «         t          t                               d¦  «        ¦  «        }|                      |¦  «         t          t                               d¦  «        ¦  «        }|                      |¦  «         | S )zLCollects all canonical generated manifests (VFX, 10 Monsters, 6 Characters).ú*/*_anim_manifest.json)ÚVFX_MANIFESTÚexistsÚappendÚsortedÚMONSTERS_DIRÚglobÚextendÚCHARACTERS_DIR)Ú	manifestsÚmonster_manifestsÚcharacter_manifestss      r   Úcollect_target_manifestsr1   #   s™   € à€IÝ×ÒÑÔð 'Ø×Ò�Ñ&Ô&Ð&å�|×0Ò0Ð1IÑJÔJÑKÔKÐØ×ÒÐ&Ñ'Ô'Ð'å ¥×!4Ò!4Ð5MÑ!NÔ!NÑOÔOÐØ×ÒÐ(Ñ)Ô)Ð)àÐr   c                  ó   — e Zd ZdZdd„ZdS )ÚFrameAuditMetricz5Holds empirical audit findings for a single manifest.Úmanifest_pathr   c                óØ   — || _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        d| _        d| _        d S )Nr   ç      ð?ç        )ÚpathÚtotal_framesÚmin_uÚmax_uÚmin_vÚmax_vÚuv_out_of_bounds_violationsÚuv_degenerate_violationsÚarea_violationsÚpivot_violationsÚsampler_clamp_violationsÚfloat32_precision_violationsÚpixel_sync_violationsÚpot_violationsÚtexture_boundary_violations)Úselfr4   s     r   Ú__init__zFrameAuditMetric.__init__5   s{   € Ø!ˆŒ	ØˆÔØˆŒ
ØˆŒ
ØˆŒ
ØˆŒ
Ø+,ˆÔ(Ø()ˆÔ%Ø ˆÔØ !ˆÔØ()ˆÔ%Ø,-ˆÔ)Ø%&ˆÔ"ØˆÔØ+,ˆÔ(Ð(Ð(r   N)r4   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rH   r!   r   r   r3   r3   2   s.   € € € € € Ø?Ð?ð-ð -ð -ð -ð -ð -r   r3   r4   r   c           	     óè  — t          | ¦  «        }t          | dd¬¦  «        5 }t          j        |¦  «        }ddd¦  «         n# 1 swxY w Y   t	          |                     d|                     dd¦  «        ¦  «        ¦  «        }t	          |                     d|                     d	d¦  «        ¦  «        ¦  «        }t          |¦  «        rt          |¦  «        s|xj        d
z  c_        |                     d¦  «        p|                     d¦  «        }|rt          |¦  «        dk    r|xj	        d
z  c_	        nRt          |d         dz
  ¦  «        t          k    s!t          |d
         dz
  ¦  «        t          k    r|xj	        d
z  c_	        g }d|v r�t          |d         t          ¦  «        rf|d                              ¦   «         D ]K\  }}	t          |	                     dg ¦  «        ¦  «        D ]"\  }
}|                     |› d|
› d�|f¦  «         Œ#ŒLd|v rVt          |d         t          ¦  «        r;|d                              ¦   «         D ] \  }}|                     d|› d�|f¦  «         Œ!|D �]\  }}|xj        d
z  c_        |                     dd¦  «        }|                     dd¦  «        }|dk    s|dk    s	||z  dk    r|xj        d
z  c_        |                     dd¦  «        }|                     dd¦  «        }|dk     s|dk     s||z   |k    s	||z   |k    r|xj        d
z  c_        |                     d|¦  «        }|rt          |¦  «        dk    r|xj	        d
z  c_	        nRt          |d         dz
  ¦  «        t          k    s!t          |d
         dz
  ¦  «        t          k    r|xj	        d
z  c_	        |                     d¦  «        }|rt          |¦  «        dk    r|xj        d
z  c_        �Œ‹t+          |d         ¦  «        t+          |d
         ¦  «        t+          |d         ¦  «        t+          |d         ¦  «        f\  }}}}t-          |j        |¦  «        |_        t1          |j        |¦  «        |_        t-          |j        |¦  «        |_        t1          |j        |¦  «        |_        d|cxk    rdk    r2n n/d|cxk    rdk    r"n nd|cxk    rdk    rn nd|cxk    rdk    sn |xj        d
z  c_        ||k    s||k    r|xj        d
z  c_        |dk    rÐ|dk    rÊ|t+          |¦  «        z  }|t+          |¦  «        z  }||z   t+          |¦  «        z  }||z   t+          |¦  «        z  }t          ||z
  ¦  «        t          k    sQt          ||z
  ¦  «        t          k    s6t          ||z
  ¦  «        t          k    st          ||z
  ¦  «        t          k    r|xj        d
z  c_        ||f||f||f||fg}|D ]‡\  }}t1          dt-          d|¦  «        ¦  «        }t1          dt-          d|¦  «        ¦  «        } t          ||z
  ¦  «        t          k    st          || z
  ¦  «        t          k    r|xj        d
z  c_        Œˆ|dk    r_|dk    rY|dt+          |¦  «        z  z   }!|dt+          |¦  «        z  z   }"d|!cxk    rdk    rn nd|"cxk    rdk    sn |xj        d
z  c_        t?          |¦  «        t?          |¦  «        }$}#t?          |¦  «        t?          |¦  «        }&}%d|#cxk    r|$cxk     rdk    rn nd|%cxk    r|&cxk     rdk    sn |xj         d
z  c_         �Œ|S )zGExecutes exhaustive adversarial verification against a single manifest.Úrzutf-8)ÚencodingNÚtextureWidthÚtexture_widthr   ÚtextureHeightÚtexture_heightr    ÚdefaultPivotÚpivoté   g      à?gÍÌÌÌÌÌì?ÚclipsÚframesú[ú]z
top_level[ÚwÚhÚxÚyÚuvé   é   r7   r6   )!r3   ÚopenÚjsonÚloadr   Úgetr"   rE   ÚlenrA   ÚabsÚEPSILONÚ
isinstanceÚdictÚitemsÚ	enumerater(   r9   r@   rF   r>   r   Úminr:   Úmaxr;   r<   r=   r?   rD   rB   r   rC   )'r4   Úmetricr   ÚdataÚtex_wÚtex_hÚ	def_pivotÚframe_descriptorsÚ	clip_nameÚ	clip_dataÚidxÚframeÚframe_idÚframe_labelr[   r\   r]   r^   Úpr_   Úu0Úv0Úu1Úv1Úexp_u0Úexp_v0Úexp_u1Úexp_v1ÚcornersÚcuÚcvÚ	clamped_uÚ	clamped_vÚtexel_center_uÚtexel_center_vÚu0_f32Úu1_f32Úv0_f32Úv1_f32s'                                          r   Úaudit_manifestr�   G   sP  € å˜mÑ,Ô,€FÝ	ˆm˜S¨7Ð	3Ñ	3Ô	3ð ,°qÝ#œy¨™|œ|ˆð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,õ �—’˜¨¯ª°/À1Ñ)EÔ)EÑFÔFÑGÔG€EÝ�—’˜¨$¯(ª(Ð3CÀQÑ*GÔ*GÑHÔHÑIÔI€Eå˜EÑ"Ô"ð #¥°uÑ'=Ô'=ð #ØÐÔ Ñ"ÐÔà—’˜Ñ(Ô(Ð=¨D¯HªH°WÑ,=Ô,=€IØð %�˜I™œ¨!Ò+Ð+ØÐÔ 1Ñ$ÐÔÐÝ	ˆY�qŒ\˜CÑÑ	 Ô	 ¥7Ò	*Ð	*­c°)¸A´,ÀÑ2EÑ.FÔ.FÍÒ.PÐ.PØÐÔ 1Ñ$ÐÔð ;=ÐØ�$€€�: d¨7¤mµTÑ:Ô:€Ø$(¨¤M×$7Ò$7Ñ$9Ô$9ð 	Ið 	IÑ ˆI�yÝ'¨	¯ª°hÀÑ(CÔ(CÑDÔDð Ið I‘
��UØ!×(Ò(¨YÐ*?Ð*?¸Ð*?Ð*?Ð*?ÀÐ)GÑHÔHÐHÐHðIð �4ÐÐ�J t¨H¤~µtÑ<Ô<ÐØ# Hœ~×3Ò3Ñ5Ô5ð 	Hð 	H‰OˆH�eØ×$Ò$Ð&>°8Ð&>Ð&>Ð&>ÀÐ%FÑGÔGÐGÐGà/ð H5ñ H5Ñˆ�UØÐÔ˜qÑ ÐÔð �IŠI�c˜1ÑÔˆØ�IŠI�c˜1ÑÔˆØ�Š6ˆ6�Q˜!’V�V  A¡¨!š|˜|ØÐ"Ô" aÑ'Ð"Ô"à�IŠI�c˜1ÑÔˆØ�IŠI�c˜1ÑÔˆØˆqŠ5ˆ5�A˜’E�E˜a !™e uš_˜_°°Q±¸%²°ØÐ.Ô.°!Ñ3Ð.Ô.ð �IŠI�g˜yÑ)Ô)ˆØð 	)•C˜‘F”F˜a’K�KØÐ#Ô# qÑ(Ð#Ô#Ð#Ý��1”˜‘‰_Œ_�wÒ&Ð&­#¨a°¬d°T©kÑ*:Ô*:½WÒ*DÐ*DØÐ#Ô# qÑ(Ð#Ô#ð �YŠY�t‰_Œ_ˆØð 	•S˜‘W”W ’\�\ØÐ.Ô.°!Ñ3Ð.Ô.Ùå˜r !œu™œ¥u¨R°¬U¡|¤|µU¸2¸a¼5±\´\Å5ÈÈAÌÁ<Ä<ÐO‰ˆˆB��BÝ˜6œ<¨Ñ,Ô,ˆŒÝ˜6œ<¨Ñ,Ô,ˆŒÝ˜6œ<¨Ñ,Ô,ˆŒÝ˜6œ<¨Ñ,Ô,ˆŒà�rÐ Ð Ò Ð ˜SÒ Ð Ð Ð Ð  S¨BÐ%5Ð%5Ò%5Ð%5°#Ò%5Ð%5Ð%5Ð%5Ð%5¸#ÀÐ:JÐ:JÒ:JÐ:JÀsÒ:JÐ:JÐ:JÐ:JÐ:JÈsÐVXÐO_ÐO_ÒO_ÐO_Ð\_ÒO_ÐO_ÐO_ÐO_ØÐ.Ô.°!Ñ3Ð.Ô.à�Š8ˆ8�r˜R’x�xØÐ+Ô+¨qÑ0Ð+Ô+ð �1Š9ˆ9˜ š˜Ø�˜u™œÑ%ˆFØ�˜u™œÑ%ˆFØ˜!‘e�u U™|œ|Ñ+ˆFØ˜!‘e�u U™|œ|Ñ+ˆFå�B˜‘KÑ Ô ¥7Ò*Ð*Ý�r˜F‘{Ñ#Ô#¥gÒ-Ð-Ý�r˜F‘{Ñ#Ô#¥gÒ-Ð-Ý�r˜F‘{Ñ#Ô#¥gÒ-Ð-àÐ,Ô,°Ñ1Ð,Ô,ð ˜�8˜b "˜X¨¨B x°"°b°Ð:ˆØð 	5ð 	5‰FˆB�Ý˜C¥ S¨"¡¤Ñ.Ô.ˆIÝ˜C¥ S¨"¡¤Ñ.Ô.ˆIÝ�2˜	‘>Ñ"Ô"¥WÒ,Ð,µ°B¸±NÑ0CÔ0CÅgÒ0MÐ0MØÐ/Ô/°1Ñ4Ð/Ô/øð �1Š9ˆ9˜ š˜Ø #­¨e©¬Ñ"4Ñ4ˆNØ #­¨e©¬Ñ"4Ñ4ˆNØ˜>Ð0Ð0Ò0Ð0¨SÒ0Ð0Ð0Ð0Ð0°S¸NÐ5QÐ5QÒ5QÐ5QÈcÒ5QÐ5QÐ5QÐ5QØÐ/Ô/°1Ñ4Ð/Ô/õ $ B™œ­°B©¬�ˆÝ# B™œ­°B©¬�ˆØ�vÐ-Ð-Ò-Ð- Ð-Ð-Ò-Ð-¨#Ò-Ð-Ð-Ð-Ð-°#¸Ð2OÐ2OÒ2OÐ2OÀ&Ð2OÐ2OÒ2OÐ2OÈCÒ2OÐ2OÐ2OÐ2OØÐ/Ô/°1Ñ4Ð/Ô/ùà€Ms   ¢AÁAÁ
Aú2Tuple[List[FrameAuditMetric], int, Dict[str, Any]]c            	     ó*  — t          ¦   «         } g }d}d}d}d}d}d}| D ]Ð}t          |¦  «        }	|                     |	¦  «         ||	j        z  }|	j        |	j        z   |	j        z   |	j        z   |	j        z   |	j	        z   |	j
        z   |	j        z   |	j        z   }
||
z  }t          ||	j        ¦  «        }t          ||	j        ¦  «        }t          ||	j        ¦  «        }t          ||	j        ¦  «        }ŒÑt'          | ¦  «        |||||||dk    rdnddœ}|||fS )zERuns stress audit across all target manifests and aggregates results.r   r6   r7   ÚAPPROVEÚREQUEST_CHANGES)Úmanifest_countr9   Útotal_violationsÚglobal_min_uÚglobal_max_uÚglobal_min_vÚglobal_max_vÚverdict)r1   r�   r(   r9   r>   r?   r@   rA   rB   rC   rD   rE   rF   rm   r:   rn   r;   r<   r=   rf   )r.   Úmetricsr9   r•   r–   r—   r˜   r™   Úm_pathro   Úmanifest_violationsÚsummarys               r   Úrun_full_stress_auditrŸ   ±   sz  € å(Ñ*Ô*€IØ&(€Gà€LØÐØ€LØ€LØ€LØ€Làð 7ð 7ˆÝ Ñ'Ô'ˆØ�Š�vÑÔÐà˜Ô+Ñ+ˆàÔ.ØÔ-ñ.àÔ$ñ%ð Ô%ñ&ð Ô-ñ	.ð
 Ô1ñ2ð Ô*ñ+ð Ô#ñ$ð Ô0ñ1ð 	ð 	Ð/Ñ/Ðå˜<¨¬Ñ6Ô6ˆÝ˜<¨¬Ñ6Ô6ˆÝ˜<¨¬Ñ6Ô6ˆÝ˜<¨¬Ñ6Ô6ˆˆõ ˜i™.œ.Ø$Ø,Ø$Ø$Ø$Ø$Ø 0°AÒ 5Ð 5�9�9Ð;Lð	ð 	€Gð Ð$ gÐ-Ð-r   ÚNonec                 óª  — t          ¦   «         } t          | ¦  «        dk    sJ dt          | ¦  «        › �¦   «         ‚t          | v s
J d¦   «         ‚t          t          t                               d¦  «        ¦  «        ¦  «        dk    s
J d¦   «         ‚t          t          t                               d¦  «        ¦  «        ¦  «        dk    s
J d¦   «         ‚d	S )
zQAsserts that all 17 canonical manifests exist (1 VFX, 10 Monsters, 6 Characters).é   zExpected 17 manifests, found zVFX manifest missingr%   é
   zExpected 10 monstersé   zExpected 6 charactersN)r1   rf   r&   Úlistr*   r+   r-   )r.   s    r   Ú$test_manifest_inventory_completenessr¦   æ   sÍ   € å(Ñ*Ô*€IÝˆy‰>Œ>˜RÒÐÐÐ!QÅÀYÁÄÐ!QÐ!QÑÔÐÝ˜9Ð$Ð$Ð$Ð&<Ñ$Ô$Ð$Ý�t•L×%Ò%Ð&>Ñ?Ô?Ñ@Ô@ÑAÔAÀRÒGÐGÐGÐI_ÑGÔGÐGÝ�t•N×'Ò'Ð(@ÑAÔAÑBÔBÑCÔCÀqÒHÐHÐHÐJaÑHÔHÐHÐHÐHr   c                 ó@  — t          ¦   «         \  } }}|d         dk    sJ d|d         › �¦   «         ‚|dk    sJ d|› d|› �¦   «         ‚|d         dk    sJ ‚d	|d
         cxk    r|d         cxk    rdk    sn J ‚d	|d         cxk    r|d         cxk    rdk    sn J ‚dS )z\Audits every frame descriptor across all manifests against geometric and sampler invariants.r9   i|  z0Expected > 5,500 audited frame descriptors, got r   z$Adversarial stress test failed with z violations: rš   r’   r7   r–   r—   r6   r˜   r™   N)rŸ   )r›   r•   rž   s      r   Ú,test_uv_geometry_stress_and_sampler_clampingr¨   ï   s
  € å)>Ñ)@Ô)@Ñ&€GÐ˜wà�>Ô" dÒ*Ð*Ð*ØT¸7À>Ô;RÐTÐTñ +Ô*Ð*ð ˜qÒ Ð Ð ØWÐ/?ÐWÐWÈgÐWÐWñ !Ô Ð ð �9Ô Ò*Ð*Ð*Ð*Ø�'˜.Ô)ÐKÐKÒKÐK¨W°^Ô-DÐKÐKÒKÐKÈÒKÐKÐKÐKÐKÐKØ�'˜.Ô)ÐKÐKÒKÐK¨W°^Ô-DÐKÐKÒKÐKÈÒKÐKÐKÐKÐKÐKÐKÐKr   Ú__main__zP================================================================================zDCHALLENGER EMPIRICAL ADVERSARIAL STRESS TEST: UV GEOMETRY & CLAMPINGzManifests Audited : r”   zFrames Audited    : r9   zGlobal U Range    : [r–   z.6fz, r—   rZ   zGlobal V Range    : [r˜   r™   zTotal Violations  : r•   zEmpirical Verdict : rš   zP--------------------------------------------------------------------------------ÚPASSÚFAILrY   z] z<40z frames=Ú4dz U=[z.4fz] V=[r’   zNVERDICT: APPROVE - All UV coordinates strictly conform to [0.0, 1.0] geometry.z9VERDICT: REQUEST_CHANGES - Invariant violations detected.r    )r   r   r   r   )r   r   r   r   )r   r#   )r4   r   r   r3   )r   r�   )r   r    )3rL   Ú
__future__r   rc   ÚmathÚpathlibr   r   Útypingr   r   r   r   ÚpytestÚ__file__ÚresolveÚparentÚ	REPO_ROOTÚRESOURCES_DIRr&   r*   r-   rh   r   r"   r1   r3   r�   rŸ   r¦   r¨   rI   ÚprintÚmetrics_listÚ
violationsÚsummÚmr>   r?   r@   rA   rB   Ústatusr8   Únamer9   r:   r;   r<   r=   Úexitr!   r   r   ú<module>r¿      sj  ððð ð
 #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø €€€àˆD�‰NŒN×"Ò"Ñ$Ô$Ô+Ô2€	à˜HÑ$ wÑ.°Ñ9¸KÑG€Ø˜uÑ$Ð'LÑL€Ø˜zÑ)¨LÑ8€Ø Ñ-€à
€ð?ð ?ð ?ð ?ð
(ð (ð (ð (ð
ð ð ð ð-ð -ð -ð -ð -ñ -ô -ð -ð*gð gð gð gðT-.ð -.ð -.ð -.ðjbð bð bð bðLð Lð Lð Lð ˆzÒÑØ	€Eˆ(�O„O€OØ	€EÐ
PÑQÔQÐQØ	€Eˆ(�O„O€Oà%:Ð%:Ñ%<Ô%<Ñ"€L�*˜dà	€EÐ
9 Ð&6Ô!7Ð
9Ð
9Ñ:Ô:Ð:Ø	€EÐ
7  nÔ!5Ð
7Ð
7Ñ8Ô8Ð8Ø	€EÐ
Y $ ~Ô"6Ð
YÐ
YÐ
Y¸dÀ>Ô>RÐ
YÐ
YÐ
YÐ
YÑZÔZÐZØ	€EÐ
Y $ ~Ô"6Ð
YÐ
YÐ
Y¸dÀ>Ô>RÐ
YÐ
YÐ
YÐ
YÑZÔZÐZØ	€EÐ
; Ð&8Ô!9Ð
;Ð
;Ñ<Ô<Ð<Ø	€EÐ
2  i¤Ð
2Ð
2Ñ3Ô3Ð3Ø	€Eˆ(�O„O€Oàð Lð LˆàÔ)ØÔ(ñ)àÔñ ð Ô ñ!ð Ô(ñ	)ð
 òð ��ð ð 	ð 	ˆð  K�&ð  Kð  K˜AœFœKð  Kð  Kð  K°Q´^ð  Kð  Kð  KÈAÌGð  Kð  Kð  KÐ[\Ô[bð  Kð  Kð  KÐmnÔmtð  Kð  Kð  KÐ|}ô  }Dð  Kð  Kð  Kð  Kñ  	Lô  	Lð  	Lð  	Là	€Eˆ(�O„O€OØˆI„˜)Ò#Ð#ØˆÐ^Ñ_Ô_Ð_Ð_Ð_àˆÐIÑJÔJÐJØˆˆQ‰Œˆˆˆð= Ðr   