§
    5¯½jÂ`  ã                  ó>  — 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
Z
ddlZddlmZ ddlmZ ddlmZmZmZmZ  G d„ dej        ¦  «        Z G d	„ d
ej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zedk    r ej        ¦   «          dS dS )aâ  
Comprehensive Opaque-Box E2E Test Suite for FreeExile Distributed Multi-Channel Chat System (1,000,000 CCU).
Enforces 4-Tier Testing Methodology covering Requirements R1 to R5:
- Tier 1: Feature Coverage (8 Channels, Level Gating, Token Bucket Cooldowns, Spam, Ring Buffer, Trie, Sentinel RMT, HMAC)
- Tier 2: Boundary & Corner Cases (Negative IDs, Empty/Max Strings, Zero-Width, Homoglyphs, Cooldown Limits, Expired Snapshots, Tampered Rarity)
- Tier 3: Cross-Feature State Interleaving & Pairwise Combinations (Blacklist + Item Link, Guild RMT Auto-Mute, Profanity + Item Link, 64-Shard Broadcast)
- Tier 4: Real-World End-to-End Application Scenarios (World Boss Burst, RMT Bot Flood, Guild Inspection Storm, High-Throughput Fan-Out)
é    )ÚannotationsN)ÚList)ÚChatService)ÚChatChannelTypeÚChatMessageDTOÚItemAffixDTOÚSendChatRequestDTOc                  óZ   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	dd
„Z
dd„Zdd„ZdS )ÚTestTier1FeatureCoveragez>Tier 1: Functional Feature Coverage (R1-R5 core capabilities).ÚreturnÚNonec              ƒ  óN   K  — d| _         t          | j         d¬¦  «        | _        d S )Ns!   FREEEXILE_SECRET_SIGNING_KEY_2026é@   )Úitem_secret_keyÚcluster_shards)Ú
secret_keyr   Úchat_service©Úselfs    úCC:\Projects\FreeExile\tests\e2e\test_chat_distributed_system_e2e.pyÚ
asyncSetUpz#TestTier1FeatureCoverage.asyncSetUp   s+   è è € Ø>ˆŒÝ'¸¼ÐXZÐ[Ñ[Ô[ˆÔÐÐó    c              ƒ  ó*  K  — t           j        dddœft           j        ddddœft           j        ddd	d
œft           j        ddddœft           j        ddddœft           j        dddœft           j        dddœft           j        dddœfg}|D ]‡\  }}t          ddd|dœ|¤Ž}| j
                             |¦  «        ƒ d{V —†}|                      |j        d|j        › d|j        › �¦  «         |                      t!          |j        ¦  «        ¦  «         ŒˆdS )zNVerifies successful delivery and history recording across all 8 chat channels.é   zWorld greeting)Úsender_levelÚcontenté   Úzone_sword_gravez
Zone alert)r   Úzone_idr   Úguild_sect_1zGuild salute)r   Úguild_idr   Úparty_raid_1zParty ready)r   Úparty_idr   i*#  zWhisper private)r   Ú	target_idr   é   zSystem divine bulletiné   zRecruit LFG tier 16zFeedback ticket bug reporti)#  Ú	ExileHero)Ú	sender_idÚsender_nameÚchannelNúChannel z	 failed: © )r   ÚWORLDÚZONEÚGUILDÚPARTYÚWHISPERÚSYSTEMÚRECRUITÚFEEDBACKr	   r   Úhandle_send_chatÚ
assertTrueÚsuccessÚnameÚerror_messageÚboolÚ
message_id)r   Úchannels_specÚch_typeÚ
extra_argsÚreqÚress         r   Ú#test_01_all_eight_channels_deliveryz<TestTier1FeatureCoverage.test_01_all_eight_channels_delivery!   sy  è è € õ Ô"°RÐDTÐ$UÐ$UÐVÝÔ!°BÐCUÐbnÐ#oÐ#oÐpÝÔ"°RÀ^Ð`nÐ$oÐ$oÐpÝÔ"°RÀ^Ð`mÐ$nÐ$nÐoÝÔ$°rÈÐYjÐ&kÐ&kÐlÝÔ#°aÐD\Ð%]Ð%]Ð^ÝÔ$°rÐF[Ð&\Ð&\Ð]ÝÔ%¸ÐFbÐ'cÐ'cÐdð	
ˆð $1ð 		2ð 		2ÑˆG�ZÝ$ð ØØ'Øðð ð ð	ð ˆCð Ô)×:Ò:¸3Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?ˆCØ�OŠO˜CœKÐ)^°G´LÐ)^Ð)^È3ÔK\Ð)^Ð)^Ñ_Ô_Ð_Ø�OŠO�D ¤Ñ0Ô0Ñ1Ô1Ð1Ð1ð		2ð 		2r   c              ƒ  ó.  K  — t          dddt          j        d¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         t          dd	d
t          j        d¬¦  «        }|  	                    | j                             |¦  «        ƒ d{V —†j        ¦  «         t          dddt          j
        d¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         t          dddt          j
        d¬¦  «        }|  	                    | j                             |¦  «        ƒ d{V —†j        ¦  «         dS )z=Enforces minimum level requirements (World: 20, Recruit: 10).ée   ÚNoobé   zUnderlevel world©r(   r)   r   r*   r   Nõ   cáº¥p 20éf   ÚVeteranr   zValid worldég   Ú	Youngsteré	   zUnderlevel recruitõ   cáº¥p 10éh   ÚFighteré
   zValid recruit)r	   r   r-   r   r5   ÚassertFalser7   ÚassertInr9   r6   r3   )r   Úunder_worldÚ
res_w_failÚvalid_worldÚunder_recruitÚ
res_r_failÚvalid_recruits          r   Ú&test_02_level_gating_world_and_recruitz?TestTier1FeatureCoverage.test_02_level_gating_world_and_recruit8   s¾  è è € å(Ø v¸BÝ#Ô)Ð3Eð
ñ 
ô 
ˆð  Ô,×=Ò=¸kÑJÔJÐJÐJÐJÐJÐJÐJˆ
Ø×Ò˜Ô+Ñ,Ô,Ð,Ø�Š�j *Ô":Ñ;Ô;Ð;å(Ø y¸rÝ#Ô)°=ð
ñ 
ô 
ˆð 	�Š˜tÔ0×AÒAÀ+ÑNÔNÐNÐNÐNÐNÐNÐNÔWÑXÔXÐXå*Ø {ÀÝ#Ô+Ð5Ið
ñ 
ô 
ˆð  Ô,×=Ò=¸mÑLÔLÐLÐLÐLÐLÐLÐLˆ
Ø×Ò˜Ô+Ñ,Ô,Ð,Ø�Š�j *Ô":Ñ;Ô;Ð;å*Ø y¸rÝ#Ô+°_ð
ñ 
ô 
ˆð 	�Š˜tÔ0×AÒAÀ-ÑPÔPÐPÐPÐPÐPÐPÐPÔYÑZÔZÐZÐZÐZr   c              ƒ  ó–  K  — t          dddt          j        d¬¦  «        }|                      | j                             |¦  «        ƒ d{V —†j        ¦  «         | j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j	        ¦  «         |  
                    |j        d¦  «         dS )	zGRejects rapid repeat requests exceeding channel cooldown token buckets.éÉ   ÚSpeedyé   zFast message 1rF   Nu   Gá»­i tin quÃ¡ nhanhr   )r	   r   r-   r6   r   r5   r7   rQ   rR   r9   ÚassertGreaterÚcooldown_remaining_ms©r   r?   Ú
repeat_ress      r   Ú)test_03_token_bucket_cooldown_enforcementzBTestTier1FeatureCoverage.test_03_token_bucket_cooldown_enforcementV   sÚ   è è € å Ø x¸bÝ#Ô)Ð3Cð
ñ 
ô 
ˆð 	�Š˜tÔ0×AÒAÀ#ÑFÔFÐFÐFÐFÐFÐFÐFÔOÑPÔPÐPØÔ,×=Ò=¸cÑBÔBÐBÐBÐBÐBÐBÐBˆ
Ø×Ò˜Ô+Ñ,Ô,Ð,Ø�ŠÐ,¨jÔ.FÑGÔGÐGØ×Ò˜:Ô;¸QÑ?Ô?Ð?Ð?Ð?r   c              ƒ  óî  K  — t          dddt          j        dd¬¦  «        }|                      | j                             |¦  «        ƒ d{V —†j        ¦  «         t          j        ¦   «         dz
  | j        j        j	        dt          j        f<   | j                             |¦  «        ƒ d{V —†}|  
                    |j        ¦  «         |                      d	|j                             ¦   «         ¦  «         dS )
zIBlocks identical message content sent within 5 seconds on World and Zone.i-  ÚSpammerr]   Úz_wastelandzIdentical content©r(   r)   r   r*   r   r   Ngš™™™™™	@Úspam)r	   r   r.   r6   r   r5   r7   ÚtimeÚchannel_managerÚ_last_send_timerQ   rR   r9   Úlower)r   r?   Údup_ress      r   Ú+test_04_duplicate_spam_detection_world_zonezDTestTier1FeatureCoverage.test_04_duplicate_spam_detection_world_zoneb   s÷   è è € å Ø y¸rÝ#Ô(°-ÐI\ð
ñ 
ô 
ˆð 	�Š˜tÔ0×AÒAÀ#ÑFÔFÐFÐFÐFÐFÐFÐFÔOÑPÔPÐPåY]ÔYbÑYdÔYdÐgjÑYjˆÔÔ)Ô9¸3ÅÔ@TÐ:UÑVØÔ)×:Ò:¸3Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?ˆØ×Ò˜œÑ)Ô)Ð)Ø�Š�f˜gÔ3×9Ò9Ñ;Ô;Ñ<Ô<Ð<Ð<Ð<r   c           	   ƒ  óº  K  — t          d¦  «        D ]I}t          d|z   d|› �dt          j        d|› �¬¦  «        }| j                             |¦  «        ƒ d{V —† ŒJ| j                             d¦  «        }|                      t          |¦  «        d	¦  «         |                      |d
         j	        d¦  «         |                      |d         j	        d¦  «         dS )zHMaintains exactly 100 recent messages in memory per channel ring buffer.éi   i�  ÚSys_r%   zBroadcast notice #rF   NÚsysteméd   r   zBroadcast notice #5éÿÿÿÿzBroadcast notice #104)
Úranger	   r   r2   r   r5   Úget_channel_historyÚassertEqualÚlenÚraw_content)r   Úir?   Úhistorys       r   Ú'test_05_channel_history_100_ring_bufferz@TestTier1FeatureCoverage.test_05_channel_history_100_ring_buffero   só   è è € å�s‘”ð 	:ð 	:ˆAÝ$Ø ™'¨z°a¨z¨zÈÝ'Ô.Ð8PÈQÐ8PÐ8Pðñ ô ˆCð Ô#×4Ò4°SÑ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9àÔ#×7Ò7¸ÑAÔAˆØ×Ò�˜W™œ sÑ+Ô+Ð+Ø×Ò˜ œÔ/Ð1FÑGÔGÐGØ×Ò˜ œÔ0Ð2IÑJÔJÐJÐJÐJr   c              ƒ  ó^  K  — t          dddt          j        dd¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         |  	                    d	|j        ¦  «         |  
                    |j        d
¦  «         dS )zNTier 1 Trie normalizes and censors profane roots with *** and sets risk score.iõ  ÚRuder   Úz_arenazthang d.m may c_a_crf   Nú***úd.mr   )r	   r   r.   r   r5   r6   r7   rR   Úfiltered_contentÚassertNotInrv   Ú
risk_score©r   r?   r@   s      r   Ú*test_06_trie_profanity_censorship_and_riskzCTestTier1FeatureCoverage.test_06_trie_profanity_censorship_and_risk}   s¸   è è € å Ø v¸BÝ#Ô(°)ÐEZð
ñ 
ô 
ˆð Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ�Š˜œÑ$Ô$Ð$Ø�Š�e˜SÔ1Ñ2Ô2Ð2Ø×Ò˜ Ô 4Ñ5Ô5Ð5Ø×Ò˜œ¨Ñ,Ô,Ð,Ð,Ð,r   c              ƒ  ó(  K  — t          dddt          j        dd¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         |  	                    |j
        d	¦  «         dS )
zOTier 2 Sentinel intercepts black market RMT advertising and triggers auto-mute.iY  ÚRMTBoté2   Úz_marketz4Ban vang gia re chuyen khoan atm qua zalo 0987654321rf   Nõ
   khÃ³a chaté<   )r	   r   r.   r   r5   rQ   r7   rR   r9   ÚassertGreaterEqualrƒ   r„   s      r   Ú,test_07_sentinel_rmt_detection_and_auto_mutezETestTier1FeatureCoverage.test_07_sentinel_rmt_detection_and_auto_mute‰   s¡   è è € å Ø x¸bÝ#Ô(°*ØJð
ñ 
ô 
ˆð
 Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ×Ò˜œÑ%Ô%Ð%Ø�Š�l CÔ$5Ñ6Ô6Ð6Ø×Ò ¤°Ñ3Ô3Ð3Ð3Ð3r   c              ƒ  óT  K  — | j         j                             dddddddt          dd	d
¬¦  «        f¬¦  «        }t	          dddt
          j        dd¬¦  «        }| j                              |¦  «        ƒ d{V —†}|                      |j	        ¦  «         | j          
                    d|j        ¦  «        }|                      |j        ¦  «         |                      |j        ¦  «         |                      |j        j        d¦  «         |                      |j        j        d¦  «         dS )zUCreates HMAC-SHA256 authenticated item snapshot, links in chat, and inspects tooltip.Úitem_primal_sword_01u   Thanh Phong Huyá»�n Kiáº¿mé   r%   r   rr   u   Ä�á»™c CÃ´ Cáº§u Báº¡iÚaff_physu   SÃ¡t ThÆ°Æ¡ng Váº­t LÃ½g     ˆ£@©Úaffix_idÚ	stat_nameÚ
stat_value©Ú	item_uuidÚitem_name_keyÚrarityÚelementÚqualityÚ
item_levelÚcrafter_nameÚaffixesi½  ÚCrafterrˆ   u    Khoe báº£o kiáº¿m má»›i luyá»‡n!)r�   ©r(   r)   r   r*   r   Úlink_item_uuidsN)r   Úitem_link_serviceÚcreate_item_snapshotr   r	   r   r-   r5   r6   r7   Úquery_item_snapshotÚhmac_signatureÚis_validÚassertIsNotNoneÚitem_snapshotrv   r�   r™   )r   Úsnapr?   r@   Úq_ress        r   Ú test_08_hmac_item_link_lifecyclez9TestTier1FeatureCoverage.test_08_hmac_item_link_lifecycle•   s=  è è € àÔ Ô2×GÒGØ,Ð<XØ˜a¨¸ÐJbÝ!¨:ÐAZÐgmÐnÑnÔnÐpð Hñ 
ô 
ˆõ
 !Ø y¸rÝ#Ô)Ð3UØ5ð
ñ 
ô 
ˆð
 Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ�Š˜œÑ$Ô$Ð$àÔ!×5Ò5Ð6LÈdÔNaÑbÔbˆØ�Š˜œÑ'Ô'Ð'Ø×Ò˜UÔ0Ñ1Ô1Ð1Ø×Ò˜Ô,Ô9Ð;SÑTÔTÐTØ×Ò˜Ô,Ô3°QÑ7Ô7Ð7Ð7Ð7r   N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rA   rY   rb   rm   r{   r…   r�   r«   r,   r   r   r   r      sÞ   € € € € € ØHÐHð\ð \ð \ð \ð2ð 2ð 2ð 2ð.[ð [ð [ð [ð<
@ð 
@ð 
@ð 
@ð=ð =ð =ð =ðKð Kð Kð Kð
-ð 
-ð 
-ð 
-ð
4ð 
4ð 
4ð 
4ð8ð 8ð 8ð 8ð 8ð 8r   r   c                  óZ   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	dd
„Z
dd„Zdd„ZdS )ÚTestTier2BoundaryAndCornerCasesz2Tier 2: Boundary, Extreme and Corner Case Testing.r   r   c              ƒ  ó0   K  — t          ¦   «         | _        d S ©N©r   r   r   s    r   r   z*TestTier2BoundaryAndCornerCases.asyncSetUp®   s   è è € Ý'™MœMˆÔÐÐr   c           	   ƒ  óä  K  — dD ]v}t          dddt          j        |d¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         Œwt          dddt          j        dd	¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d
|j        ¦  «         dS )zJValidates error rejection for non-positive target IDs and self-whispering.)r   rs   i�ÿÿÿié  ÚUserr   ÚHi)r(   r)   r   r*   r$   r   Nu   khÃ´ng há»£p lá»‡ÚEchou   chÃ­nh mÃ¬nh)	r	   r   r1   r   r5   rQ   r7   rR   r9   )r   Úbad_idr?   r@   Úself_reqÚself_ress         r   Útest_09_whisper_invalid_targetsz?TestTier2BoundaryAndCornerCases.test_09_whisper_invalid_targets±   s  è è € à"ð 	Bð 	BˆFÝ$Ø¨FÀÝ'Ô/¸6È4ðñ ô ˆCð Ô)×:Ò:¸3Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?ˆCØ×Ò˜Sœ[Ñ)Ô)Ð)Ø�MŠMÐ-¨sÔ/@ÑAÔAÐAÐAå%Ø¨¸RÝ#Ô+°tÀVð
ñ 
ô 
ˆð Ô*×;Ò;¸HÑEÔEÐEÐEÐEÐEÐEÐEˆØ×Ò˜Ô)Ñ*Ô*Ð*Ø�Š�n hÔ&<Ñ=Ô=Ð=Ð=Ð=r   c              ƒ  ój  K  — t          dddt          j        dd¬¦  «        }|                      d| j                             |¦  «        ƒ d{V —†j        ¦  «         t          dddt          j        dd	¬
¦  «        }|                      d| j                             |¦  «        ƒ d{V —†j        ¦  «         dS )z?Rejects Guild or Party requests when scope identifier is blank.iê  ÚLonerr   Ú z
Guild test©r(   r)   r   r*   r!   r   u
   Bang Há»™iNz
Party test©r(   r)   r   r*   r#   r   u   Tá»• Ä�á»™i)r	   r   r/   rR   r   r5   r9   r0   )r   Ú	guild_reqÚ	party_reqs      r   Ú!test_10_missing_scope_identifierszATestTier2BoundaryAndCornerCases.test_10_missing_scope_identifiersÄ   sÎ   è è € å&Ø¨¸bÝ#Ô)°BÀð
ñ 
ô 
ˆ	ð 	�Š�l¨4Ô+<×+MÒ+MÈiÑ+XÔ+XÐ%XÐ%XÐ%XÐ%XÐ%XÐ%XÔ$gÑhÔhÐhå&Ø¨¸bÝ#Ô)°BÀð
ñ 
ô 
ˆ	ð 	�Š�m¨DÔ,=×,NÒ,NÈyÑ,YÔ,YÐ&YÐ&YÐ&YÐ&YÐ&YÐ&YÔ%hÑiÔiÐiÐiÐir   c              ƒ  ó¾  K  — t          dddt          j        dd¬¦  «        }|                      | j                             |¦  «        ƒ d{V —†j        ¦  «         d}t          d	d
dt          j        d|¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      t          |j	        ¦  «        d¦  «         dS )zHHandles empty strings and extreme 1000-char content payloads gracefully.ië  ÚSilentr   Úz_caverÀ   rf   NÁè  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiì  ÚLoudiè  )
r	   r   r.   r6   r   r5   r7   rv   rw   r�   )r   Ú	empty_reqÚlarge_contentÚ	large_reqÚ	res_larges        r   Ú'test_11_empty_and_max_string_boundarieszGTestTier2BoundaryAndCornerCases.test_11_empty_and_max_string_boundariesÒ   sõ   è è € å&Ø¨¸rÝ#Ô(°(ÀBð
ñ 
ô 
ˆ	ð 	�Š˜tÔ0×AÒAÀ)ÑLÔLÐLÐLÐLÐLÐLÐLÔUÑVÔVÐVà"ˆÝ&Ø¨¸RÝ#Ô(°(ÀMð
ñ 
ô 
ˆ	ð Ô+×<Ò<¸YÑGÔGÐGÐGÐGÐGÐGÐGˆ	Ø�Š˜	Ô)Ñ*Ô*Ð*Ø×Ò�˜YÔ7Ñ8Ô8¸$Ñ?Ô?Ð?Ð?Ð?r   c              ƒ  óò   K  — t          dddt          j        dd¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      |j        d¦  «         dS )	zFDetects zero-width evasion tricks (\u200B, \uFEFF) hiding profanities.ií  ÚTrickyr   Úz_hallu   thang dâ€‹m mayrf   Nr   ©	r	   r   r.   r   r5   r6   r7   rŒ   rƒ   r„   s      r   Ú"test_12_unicode_zero_width_evasionzBTestTier2BoundaryAndCornerCases.test_12_unicode_zero_width_evasionã   sˆ   è è € å Ø¨¸rÝ#Ô(°(ÐDXð
ñ 
ô 
ˆð Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ�Š˜œÑ$Ô$Ð$Ø×Ò ¤°Ñ3Ô3Ð3Ð3Ð3r   c              ƒ  óò   K  — t          dddt          j        dd¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      |j        d¦  «         dS )	zWFolds homoglyphs and leetspeak substitutions (@, 0, !, 3, $) into standard root checks.iî  ÚLeetr   rÒ   zd0 l0n d!t bu0irf   Nr   rÓ   r„   s      r   Ú'test_13_homoglyph_and_leetspeak_evasionzGTestTier2BoundaryAndCornerCases.test_13_homoglyph_and_leetspeak_evasioní   sˆ   è è € å Ø¨¸RÝ#Ô(°(ÐDUð
ñ 
ô 
ˆð Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ�Š˜œÑ$Ô$Ð$Ø×Ò ¤°Ñ3Ô3Ð3Ð3Ð3r   c              ƒ  óþ  K  — t          dddt          j        d¬¦  «        }|                      | j                             |¦  «        ƒ d{V —†j        ¦  «         t          j        ¦   «         dz
  | j        j        j	        dt          j        f<   | j                             |¦  «        ƒ d{V —†}|  
                    |j        ¦  «         |                      |j        d¦  «         |                      |j        d	¦  «         dS )
zQEnforces remaining cooldown time precision when repeated right before expiration.iï  Ú	Recruiterr   zNeed healerrF   NgÍÌÌÌÌÌ#@r   éÈ   )r	   r   r3   r6   r   r5   r7   rh   ri   rj   rQ   r^   r_   ÚassertLessEqualr`   s      r   Ú)test_14_rapid_repeat_at_cooldown_boundaryzITestTier2BoundaryAndCornerCases.test_14_rapid_repeat_at_cooldown_boundary÷   s  è è € å Ø¨À"Ý#Ô+°]ð
ñ 
ô 
ˆð 	�Š˜tÔ0×AÒAÀ#ÑFÔFÐFÐFÐFÐFÐFÐFÔOÑPÔPÐPå]aÔ]fÑ]hÔ]hÐknÑ]nˆÔÔ)Ô9¸4ÅÔAXÐ:YÑZØÔ,×=Ò=¸cÑBÔBÐBÐBÐBÐBÐBÐBˆ
Ø×Ò˜Ô+Ñ,Ô,Ð,Ø×Ò˜:Ô;¸QÑ?Ô?Ð?Ø×Ò˜ZÔ=¸sÑCÔCÐCÐCÐCr   c           
   ƒ  ó&  K  — | j         j                             dddddddd¬	¦  «        }| j                              d|j        ¦  «        }|                      |j        ¦  «         |                      d
|j         	                    ¦   «         ¦  «         dS )zPRejects tooltip query when item snapshot TTL has elapsed (24h retention policy).Úitem_old_relicu	   Cá»• Ä�aoé   é   r   rˆ   u   Tiá»�n Bá»‘irs   )r—   r˜   r™   rš   r›   rœ   r�   Úttl_secondsÚexpiredN)
r   r¢   r£   r¤   r¥   rQ   r¦   rR   r9   rk   )r   r©   rª   s      r   Ú!test_15_expired_item_snapshot_ttlzATestTier2BoundaryAndCornerCases.test_15_expired_item_snapshot_ttl  s—   è è € àÔ Ô2×GÒGØ&°kÈ!Ø˜q¨R¸nÐZ\ð Hñ 
ô 
ˆð Ô!×5Ò5Ð6FÈÔH[Ñ\Ô\ˆØ×Ò˜œÑ(Ô(Ð(Ø�Š�i Ô!4×!:Ò!:Ñ!<Ô!<Ñ=Ô=Ð=Ð=Ð=r   c           	   ƒ  ó¸  K  — | j         j                             ddddddd¬¦  «        }|j        dd	…         d
z   }| j                              d|¦  «        }|                      |j        ¦  «         |                      d|j         	                    ¦   «         ¦  «         | j         j         
                    ddd|j        ¬¦  «        }|                      |¦  «         dS )zWBlocks fraudulent item tooltip inspections with corrupted signature or tampered rarity.Úitem_legit_swordu   Kiáº¿m ThÆ°á»�ngr%   r   rP   u
   Thá»£ RÃ¨n©r—   r˜   r™   rš   r›   rœ   r�   NéüÿÿÿÚffffÚmismatchr�   )r—   r˜   r™   Úclaimed_signature)r   r¢   r£   r¥   r¤   rQ   r¦   rR   r9   rk   Úverify_item_signature)r   r©   Úcorrupted_sigÚ	q_corruptÚis_tampered_valids        r   Ú/test_16_corrupted_signature_and_tampered_rarityzOTestTier2BoundaryAndCornerCases.test_16_corrupted_signature_and_tampered_rarity  sô   è è € àÔ Ô2×GÒGØ(Ð8JÐSTØ˜q¨R¸lð Hñ 
ô 
ˆð Ô+¨C¨R¨CÔ0°6Ñ9ˆØÔ%×9Ò9Ð:LÈmÑ\Ô\ˆ	Ø×Ò˜Ô+Ñ,Ô,Ð,Ø�Š�j )Ô"9×"?Ò"?Ñ"AÔ"AÑBÔBÐBð !Ô-Ô?×UÒUØ(Ð8JÐSTØ"Ô1ð Vñ 
ô 
Ðð 	×ÒÐ*Ñ+Ô+Ð+Ð+Ð+r   Nr¬   )r­   r®   r¯   r°   r   r½   rÅ   rÏ   rÔ   r×   rÜ   rã   rï   r,   r   r   r²   r²   «   sÚ   € € € € € Ø<Ð<ð*ð *ð *ð *ð>ð >ð >ð >ð&jð jð jð jð@ð @ð @ð @ð"4ð 4ð 4ð 4ð4ð 4ð 4ð 4ðDð Dð Dð Dð>ð >ð >ð >ð,ð ,ð ,ð ,ð ,ð ,r   r²   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )Ú!TestTier3CrossFeatureCombinationszATier 3: Cross-Feature State Interleaving & Pairwise Combinations.r   r   c              ƒ  ó4   K  — t          d¬¦  «        | _        d S ©Nr   )r   rµ   r   s    r   r   z,TestTier3CrossFeatureCombinations.asyncSetUp%  ó   è è € Ý'°rÐ:Ñ:Ô:ˆÔÐÐr   c           	   ƒ  óð  K  — | j                              ddd¬¦  «         | j         j                             ddddd	d
d¬¦  «        }t	          dddt
          j        ddd¬¦  «        }| j                              |¦  «        ƒ d{V —†}|                      |j	        ¦  «         |  
                    d|j        ¦  «         |                      t          | j                              d¦  «        ¦  «        d¦  «         dS )zUPlayer blacklisted by recipient cannot deliver whisper even with valid item attached.iÒ  iÑ  T)Ú	player_idÚblocked_player_idÚ
is_blockedÚitem_gift_01u   Báº£o Háº¡pé   rß   rP   éP   u   NgÆ°á»�i Táº·ngræ   ÚStalkerr]   u    Táº·ng ngÆ°Æ¡i báº£o háº¡p nÃ y!)rù   )r(   r)   r   r*   r$   r   r¡   Nu   Ä‘Ã£ cháº·nzwhisper:2001:2002r   )r   Úset_blacklist_entryr¢   r£   r	   r   r1   r5   rQ   r7   rR   r9   rv   rw   ru   )r   r©   r?   r@   s       r   Ú(test_17_whisper_blacklist_with_item_linkzJTestTier3CrossFeatureCombinations.test_17_whisper_blacklist_with_item_link(  s  è è € àÔ×-Ò-¸ÐPTÐaeÐ-ÑfÔfÐfØÔ Ô2×GÒGØ$°MÈ!Ø˜r¨bÐ?Pð Hñ 
ô 
ˆõ !Ø¨	ÀÝ#Ô+°tØ6ÐHYð
ñ 
ô 
ˆð
 Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ×Ò˜œÑ%Ô%Ð%Ø�Š�m SÔ%6Ñ7Ô7Ð7Ø×Ò�˜TÔ.×BÒBÐCVÑWÔWÑXÔXÐZ[Ñ\Ô\Ð\Ð\Ð\r   c              ƒ  óž  K  — t          dddt          j        dd¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         |  	                    |j
        d	¦  «         |                      t          | j                             d
¦  «        ¦  «        d¦  «         dS )zSRMT advertisement in Guild chat triggers auto-mute quarantine without broadcasting.i¹  ÚInfiltratoré-   Úguild_vanguardz;Ban acc lien he zalo 0912345678 chuyen khoan atm lay gia rerÁ   NrŠ   r‹   zguild:guild_vanguardr   )r	   r   r/   r   r5   rQ   r7   rR   r9   rŒ   rƒ   rv   rw   ru   r„   s      r   Ú test_18_guild_chat_rmt_auto_mutezBTestTier3CrossFeatureCombinations.test_18_guild_chat_rmt_auto_mute9  sÓ   è è € å Ø¨ÀBÝ#Ô)Ð4DØQð
ñ 
ô 
ˆð
 Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ×Ò˜œÑ%Ô%Ð%Ø�Š�l CÔ$5Ñ6Ô6Ð6Ø×Ò ¤°Ñ3Ô3Ð3Ø×Ò�˜TÔ.×BÒBÐCYÑZÔZÑ[Ô[Ð]^Ñ_Ô_Ð_Ð_Ð_r   c           	   ƒ  óþ  K  — | j         j                             ddddddd¬¦  «        }t          dd	d
t          j        dd¬¦  «        }| j                              |¦  «        ƒ d{V —†}|                      |j        ¦  «         |  	                    d|j
        ¦  «         |                      d|j
        ¦  «         | j                              d¦  «        }|                      t          |¦  «        d¦  «         |                      |d         j        ¦  «         |                      t          |d         j        ¦  «        d¦  «         | j                              d|j        ¦  «        }|                      |j        ¦  «         dS )zUProfane text is masked with *** while attached item link remains valid and queryable.Úitem_blade_xyzu   Huyáº¿t Ma Ä�aorú   r&   éX   u   Ma Ä�ao VÆ°Æ¡ngræ   i¡  Ú	Berserkeré#   u!   CÃ¢y Ä‘ao nÃ y d.m chÃ©m Ä‘au vcl)r  r    Nr   r€   Úworldr%   r   )r   r¢   r£   r	   r   r-   r5   r6   r7   rR   r�   r‚   ru   rv   rw   Úis_censoredÚlinked_itemsr¤   r¥   r¦   )r   r©   r?   r@   rz   rª   s         r   Ú1test_19_world_chat_profanity_with_valid_item_linkzSTestTier3CrossFeatureCombinations.test_19_world_chat_profanity_with_valid_item_linkF  sw  è è € àÔ Ô2×GÒGØ&Ð6GÐPQØ˜r¨bÐ?Pð Hñ 
ô 
ˆõ !Ø¨À"Ý#Ô)Ð3VØ/ð
ñ 
ô 
ˆð
 Ô%×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;ˆØ�Š˜œÑ$Ô$Ð$Ø�Š�e˜SÔ1Ñ2Ô2Ð2Ø×Ò˜ Ô 4Ñ5Ô5Ð5àÔ#×7Ò7¸Ñ@Ô@ˆØ×Ò�˜W™œ qÑ)Ô)Ð)Ø�Š˜ œ
Ô.Ñ/Ô/Ð/Ø×Ò�˜W QœZÔ4Ñ5Ô5°qÑ9Ô9Ð9àÔ!×5Ò5Ð6FÈÔH[Ñ\Ô\ˆØ�Š˜œÑ'Ô'Ð'Ð'Ð'r   c              ƒ  ó   ‡ ‡K  — g g g g dœŠ‰                      ¦   «         D ]#}‰ j                             |d|fˆfd„	¦  «         Œ$t          dddt          j        d¬¦  «        t          d	d
dt          j        dd¬¦  «        t          dddt          j        dd¬¦  «        t          dddt          j        dd¬¦  «        g}t          j
        ˆ fd„|D ¦   «         Ž ƒ d{V —†}‰                      t          d„ |D ¦   «         ¦  «        ¦  «         ‰                      ¦   «         D ]0}‰                      t          ‰|         ¦  «        dd|› d�¦  «         Œ1dS )zNDispatches concurrent broadcasts across 64 shards without cross-talk or drops.)r	  zzone:z1zguild:g1zparty:p1iç  c                óD   •— ‰|                               | j        ¦  «        S r´   ©Úappendrx   )ÚmsgÚkÚreceiveds     €r   ú<lambda>zfTestTier3CrossFeatureCombinations.test_20_multi_channel_sharded_concurrent_broadcast.<locals>.<lambda>b  s    ø€ ÐRZÐ[\ÔR]×RdÒRdÐehÔetÑRuÔRu€ r   i‰  ÚP1r   z	Msg WorldrF   iŠ  ÚP2Úz1zMsg Zonerf   i‹  ÚP3Úg1z	Msg GuildrÁ   iŒ  ÚP4Úp1z	Msg PartyrÂ   c              3  óL   •K  — | ]}‰j                              |¦  «        V — Œd S r´   )r   r5   )Ú.0Úrr   s     €r   ú	<genexpr>zgTestTier3CrossFeatureCombinations.test_20_multi_channel_sharded_concurrent_broadcast.<locals>.<genexpr>j  s5   øè è € Ð(]Ð(]ÐST¨Ô):×)KÒ)KÈAÑ)NÔ)NÐ(]Ð(]Ð(]Ð(]Ð(]Ð(]r   Nc              3  ó$   K  — | ]}|j         V — Œd S r´   ©r7   ©r  r  s     r   r  zgTestTier3CrossFeatureCombinations.test_20_multi_channel_sharded_concurrent_broadcast.<locals>.<genexpr>k  s$   è è € Ð7Ð7¨!˜AœIÐ7Ð7Ð7Ð7Ð7Ð7r   r%   r+   z! did not receive expected message)Úkeysr   Úsubscribe_clientr	   r   r-   r.   r/   r0   ÚasyncioÚgatherr6   Úallrv   rw   )r   Úch_keyÚreqsÚresultsr  r  s   `    @r   Ú2test_20_multi_channel_sharded_concurrent_broadcastzTTestTier3CrossFeatureCombinations.test_20_multi_channel_sharded_concurrent_broadcast^  sÊ  øøè è € à35À"ÐRTÐbdÐ)eÐ)eˆØ—m’m‘o”oð 	wð 	wˆFØÔ×.Ò.¨v°sÈ&Ð<uÐ<uÐ<uÐ<uÐ<uÑvÔvÐvÐvõ ¨¸4ÈbÕZiÔZoð  zEð  Fñ  Fô  FÝ¨¸4ÈbÕZiÔZnÐx|ð  GQð  Rñ  Rô  RÝ¨¸4ÈbÕZiÔZoÐz~ð  ITð  Uñ  Uô  UÝ¨¸4ÈbÕZiÔZoÐz~ð  ITð  Uñ  Uô  Uð	
ˆõ  œÐ(]Ð(]Ð(]Ð(]ÐX\Ð(]Ñ(]Ô(]Ð^Ð^Ð^Ð^Ð^Ð^Ð^ˆØ�Š�Ð7Ð7¨wÐ7Ñ7Ô7Ñ7Ô7Ñ8Ô8Ð8Ø—’‘”ð 	cð 	cˆAØ×Ò�S ¨!¤Ñ-Ô-¨qÐ2a¸QÐ2aÐ2aÐ2aÑbÔbÐbÐbð	cð 	cr   Nr¬   )	r­   r®   r¯   r°   r   rþ   r  r  r+  r,   r   r   rñ   rñ   "  sŒ   € € € € € ØKÐKð;ð ;ð ;ð ;ð]ð ]ð ]ð ]ð"`ð `ð `ð `ð(ð (ð (ð (ð0cð cð cð cð cð cr   rñ   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )ÚTestTier4RealWorldScenariosz4Tier 4: Real-World End-to-End Application Scenarios.r   r   c              ƒ  ó4   K  — t          d¬¦  «        | _        d S ró   rµ   r   s    r   r   z&TestTier4RealWorldScenarios.asyncSetUps  rô   r   c           
   ƒ  ó  ‡K  — g Š| j                              ddˆfd„¦  «         t          dddt          j        d¬¦  «        }| j                              |¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      t          ‰¦  «        d¦  «         g }t          d¦  «        D ]W}t          d	|z   d
|› �dt          j        dd|› �¬¦  «        }|                     | j                              |¦  «        ¦  «         ŒXt          j        |Ž ƒ d{V —†}|                      t          d„ |D ¦   «         ¦  «        ¦  «         |                      t          | j                              d¦  «        ¦  «        d¦  «         dS )zOSystem channel alerts spawn while 20 players discuss and link gear in parallel.rq   r%   c                ó8   •— ‰                      | j        ¦  «        S r´   r  )r  Úsys_delivereds    €r   r  zSTestTier4RealWorldScenarios.test_21_world_boss_announcement_burst.<locals>.<lambda>y  s   ø€ ÀM×DXÒDXÐY\ÔYhÑDiÔDi€ r   ÚServeru@   THIÃŠN Háº  Ä�áº I Náº N: ThÆ°á»£ng Cá»• Tháº§n Ma xuáº¥t tháº¿!rF   Nr   ip  ÚPlayer_r]   Úzone_boss_lairu   Táº­p há»£p cá»•ng #rf   c              3  ó$   K  — | ]}|j         V — Œd S r´   r!  r"  s     r   r  zTTestTier4RealWorldScenarios.test_21_world_boss_announcement_burst.<locals>.<genexpr>Œ  s$   è è € Ð>Ð>¨!˜AœIÐ>Ð>Ð>Ð>Ð>Ð>r   zzone:zone_boss_lair)r   r$  r	   r   r2   r5   r6   r7   rv   rw   rt   r.   r  r%  r&  r'  ru   )r   Úsys_reqÚsys_resÚplayer_tasksry   Úp_reqÚplayer_resultsr1  s          @r   Ú%test_21_world_boss_announcement_burstzATestTier4RealWorldScenarios.test_21_world_boss_announcement_burstv  s¯  øè è € à#%ˆØÔ×*Ò*¨8°QÐ8iÐ8iÐ8iÐ8iÑjÔjÐjå$Ø X¸AÝ#Ô*Ð4vð
ñ 
ô 
ˆð Ô)×:Ò:¸7ÑCÔCÐCÐCÐCÐCÐCÐCˆØ�Š˜œÑ(Ô(Ð(Ø×Ò�˜]Ñ+Ô+¨QÑ/Ô/Ð/àˆÝ�r‘”ð 	Kð 	KˆAÝ&Ø ™(°¸!°°ÈBÝ'Ô,Ð6FÐPjÐghÐPjÐPjðñ ô ˆEð ×Ò Ô 1× BÒ BÀ5Ñ IÔ IÑJÔJÐJÐJå&œ~¨|Ð<Ð<Ð<Ð<Ð<Ð<Ð<ˆØ�Š�Ð>Ð>¨~Ð>Ñ>Ô>Ñ>Ô>Ñ?Ô?Ð?Ø×Ò�˜TÔ.×BÒBÐCXÑYÔYÑZÔZÐ\^Ñ_Ô_Ð_Ð_Ð_r   c           
   ƒ  óè  K  — | j                              t          dddt          j        d¬¦  «        ¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         | j                              t          dddt          j	        d¬¦  «        ¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         | j                              t          dddt          j
        d	d
¬¦  «        ¦  «        ƒ d{V —†}|                      |j        ¦  «         |                      d|j        ¦  «         |                      |j        d¦  «         dS )zWMulti-layer defense halts an RMT bot on Recruit, World, and Zone channels sequentially.iY  ÚBot1r%   zShop accountrF   NrM   rG   Úzone_novicez7Mua ban vang gia re lh zalo 0933112233 chuyen khoan atmrf   rŠ   r‹   )r   r5   r	   r   r3   rQ   r7   rR   r9   r-   r.   rŒ   rƒ   )r   Úr1Úr2Úr3s       r   Ú test_22_rmt_bot_flood_mitigationz<TestTier4RealWorldScenarios.test_22_rmt_bot_flood_mitigation�  s¿  è è € ð Ô$×5Ò5Õ6HØ¨¸QÍÔH_Ðiwð7
ñ 7
ô 7
ñ ô ð ð ð ð ð ð ˆð 	×Ò˜œÑ$Ô$Ð$Ø�Š�j "Ô"2Ñ3Ô3Ð3ð Ô$×5Ò5Õ6HØ¨¸QÍÔH]Ðguð7
ñ 7
ô 7
ñ ô ð ð ð ð ð ð ˆð 	×Ò˜œÑ$Ô$Ð$Ø�Š�j "Ô"2Ñ3Ô3Ð3ð Ô$×5Ò5Õ6HØ¨¸QÍÔH\Ø!Ð+dð7
ñ 7
ô 7
ñ ô ð ð ð ð ð ð ˆð 	×Ò˜œÑ$Ô$Ð$Ø�Š�l BÔ$4Ñ5Ô5Ð5Ø×Ò ¤¨rÑ2Ô2Ð2Ð2Ð2r   c              ƒ  ó  ‡ ‡K  — ‰ j         j                             dddddddt          dd	d
¬¦  «        f¬¦  «        Št	          j        ¦   «         }ˆ ˆfd„t          d¦  «        D ¦   «         }t	          j        ¦   «         |z
  dz  }‰                      t          d„ |D ¦   «         ¦  «        ¦  «         ‰                      t          d„ |D ¦   «         ¦  «        ¦  «         ‰  	                    |dz  dd|dz  d›d�¦  «         dS )zV50 guild members concurrently inspect a linked +15 weapon snapshot with < 2ms latency.Úweapon_thai_co_15u   Há»—n Ä�á»™n Tháº§n Kiáº¿m +15r�   r%   r   rr   õ
   Bang Chá»§Úaff_godu   VÃµ Ä�áº¡o Cá»±c Háº¡ng    €‡Ã@r’   r–   c                óP   •— g | ]"}‰j                              d ‰j        ¦  «        ‘Œ#S )rD  )r   r¤   r¥   )r  Ú_r   r©   s     €€r   ú
<listcomp>zXTestTier4RealWorldScenarios.test_23_guild_raid_item_inspection_storm.<locals>.<listcomp>°  s1   ø€ ÐvÐvÐvÐgh�4Ô$×8Ò8Ð9LÈdÔNaÑbÔbÐvÐvÐvr   rˆ   g     @�@c              3  ó$   K  — | ]}|j         V — Œd S r´   )r¦   ©r  Úqs     r   r  zWTestTier4RealWorldScenarios.test_23_guild_raid_item_inspection_storm.<locals>.<genexpr>³  s$   è è € Ð8Ð8¨1˜AœJÐ8Ð8Ð8Ð8Ð8Ð8r   c              3  ó6   K  — | ]}|j         j        d k    V — ŒdS )rE  N)r¨   r�   rK  s     r   r  zWTestTier4RealWorldScenarios.test_23_guild_raid_item_inspection_storm.<locals>.<genexpr>´  s,   è è € ÐZÐZÈQ˜AœOÔ8¸LÒHÐZÐZÐZÐZÐZÐZr   g      I@g       @zAverage query took z.3fzms (exceeded 2.0ms SLA)N)
r   r¢   r£   r   rh   Úperf_counterrt   r6   r'  Ú
assertLess)r   Út_startÚqueriesÚ
elapsed_msr©   s   `   @r   Ú(test_23_guild_raid_item_inspection_stormzDTestTier4RealWorldScenarios.test_23_guild_raid_item_inspection_storm¨  s(  øøè è € àÔ Ô2×GÒGØ)Ð9YØ˜a¨¸È,Ý!¨9Ð@XÐekÐlÑlÔlÐnð Hñ 
ô 
ˆõ
 Ô#Ñ%Ô%ˆØvÐvÐvÐvÐvÕlqÐrtÑluÔluÐvÑvÔvˆÝÔ'Ñ)Ô)¨GÑ3°vÑ=ˆ
à�Š�Ð8Ð8°Ð8Ñ8Ô8Ñ8Ô8Ñ9Ô9Ð9Ø�Š�ÐZÐZÐRYÐZÑZÔZÑZÔZÑ[Ô[Ð[Ø�Š˜
 TÑ)¨3Ð0tÀjÐSWÑFWÐ0tÐ0tÐ0tÐ0tÑuÔuÐuÐuÐur   c           
   ƒ  ó  ‡K  — dŠdˆfd„}t          d¦  «        D ]!}| j                             dd	|z   |¦  «         Œ"t          d
¦  «        D ]d}t          d|z   d|› �dt          j        dd|› �¬¦  «        }| j                             |¦  «        ƒ d{V —†}|                      |j        ¦  «         Œe|  	                    ‰d¦  «         | j        j
                             ¦   «         }|                      |d         dd|d         › d�¦  «         dS )zTDispatches 100 rapid messages across 64 shards to 20 subscribers (2,000 deliveries).r   rH  r   r   r   c                ó   •— ‰dz  Šd S )Nr%   r,   )rH  Údelivered_counts    €r   Úon_msgzPTestTier4RealWorldScenarios.test_24_high_throughput_fanout_burst.<locals>.on_msgº  s   ø€ à˜qÑ ˆOˆOˆOr   r   zzone:burst_raidi@  rr   i(#  ÚStriker_é(   Ú
burst_raidzStrike sequence #rf   NiÐ  Úp99g      .@zFan-out p99 zms exceeded 15.0ms SLA)rH  r   r   r   )rt   r   r$  r	   r   r.   r5   r6   r7   rv   Úcluster_routerÚget_latency_statsrO  )r   rW  ry   Úmr?   r@   ÚstatsrV  s          @r   Ú$test_24_high_throughput_fanout_burstz@TestTier4RealWorldScenarios.test_24_high_throughput_fanout_burst·  sR  øè è € àˆð	!ð 	!ð 	!ð 	!ð 	!ð 	!õ �r‘”ð 	Tð 	TˆAØÔ×.Ò.Ð/@À$ÈÁ(ÈFÑSÔSÐSÐSå�s‘”ð 	)ð 	)ˆAÝ$Ø ™(°¸1°°ÈRÝ'Ô,°lÐLcÐ`aÐLcÐLcðñ ô ˆCð Ô)×:Ò:¸3Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?ˆCØ�OŠO˜CœKÑ(Ô(Ð(Ð(à×Ò˜¨$Ñ/Ô/Ð/ØÔ!Ô0×BÒBÑDÔDˆØ�Š˜˜eœ dÐ,_¸5À¼<Ð,_Ð,_Ð,_Ñ`Ô`Ð`Ð`Ð`r   Nr¬   )	r­   r®   r¯   r°   r   r;  rB  rS  r`  r,   r   r   r-  r-  p  sŒ   € € € € € Ø>Ð>ð;ð ;ð ;ð ;ð`ð `ð `ð `ð23ð 3ð 3ð 3ð2vð vð vð vðað að að að að ar   r-  Ú__main__)r°   Ú
__future__r   ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arr%  rh   ÚunittestÚtypingr   Úserver.chat.chat_servicer   Úserver.chat.chat_typesr   r   r   r	   ÚIsolatedAsyncioTestCaser   r²   rñ   r-  r­   Úmainr,   r   r   ú<module>ro     sÆ  ððð ð #Ð "Ð "Ð "Ð "Ð "à  € € € € € € € € € € € € €€€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ðN8ð N8ð N8ð N8ð N8˜xÔ?ñ N8ô N8ð N8ðbt,ð t,ð t,ð t,ð t, hÔ&Fñ t,ô t,ð t,ðnKcð Kcð Kcð Kcð Kc¨Ô(Hñ Kcô Kcð Kcð\[að [að [að [að [a (Ô"Bñ [aô [að [að| ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   