§
    œT»jÖ	  ã            
       óJ  — d Z ddlZddlZddlZej                             dej                             ej                             ej                             e	¦  «        d¦  «        ¦  «        ¦  «         ddl
mZ  G d„ dej        ¦  «        Zedk    r ej        ¦   «          dS dS )z¨
Unit tests for FreeExile Multilingual Localization & Wiki Service.
Verifies completeness across 9 global languages, key parity, fallback chaining, and search lookups.
é    Nz../../server)ÚLocalizedWikiServicec                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestLocalizationAndWikic                 ó,   — t          ¦   «         | _        d S )N)r   Úservice)Úselfs    ú5C:\Projects\FreeExile\tests\unit\test_localization.pyÚsetUpzTestLocalizationAndWiki.setUp   s   € Ý+Ñ-Ô-ˆŒˆˆó    c                 ó¸   — h d£}t          | j                             ¦   «         ¦  «        }|                      |                     |¦  «        d||z
  › �¦  «         dS )z0Must load all 9 primary global gaming languages.>	   ÚdeÚenÚesÚjaÚkoÚruÚthÚviÚzhzMissing locales: N)Úsetr   Úget_supported_localesÚ
assertTrueÚissubset)r   ÚexpectedÚloadeds      r	   Útest_all_nine_locales_loadedz4TestLocalizationAndWiki.test_all_nine_locales_loaded   s_   € àIÐIÐIˆÝ�T”\×7Ò7Ñ9Ô9Ñ:Ô:ˆØ�Š˜×)Ò)¨&Ñ1Ô1Ð3ZÀxÐRXÑGXÐ3ZÐ3ZÑ[Ô[Ð[Ð[Ð[r   c                 óâ   — g d¢}dD ]g}|D ]b}| j                              ||¬¦  «        }|                      ||d|› d|› d�¦  «         |                      t	          |¦  «        dk    ¦  «         ŒcŒhdS )	z=Essential terminology keys must exist across all 9 languages.)Ú
game_titleÚstone_hon_nguyenÚstone_thien_menhÚstone_thai_hu_kinhÚmeridian_chartÚcombat_huyen_anh_boÚvault_titleÚvault_instant_buyout)	r   r   r   r   r   r   r   r   r   ©ÚlocalezKey 'z$' is missing translation in locale 'ú'r   N)r   Úget_termÚassertNotEqualr   Úlen)r   Úessential_keysÚlocÚkeyÚterms        r	   Ú!test_essential_terminology_parityz9TestLocalizationAndWiki.test_essential_terminology_parity   s©   € ð	
ð 	
ð 	
ˆð Jð 	/ð 	/ˆCØ%ð /ð /�Ø”|×,Ò,¨S¸Ð,Ñ=Ô=�Ø×#Ò# D¨#Ð/f°sÐ/fÐ/fÐ`cÐ/fÐ/fÐ/fÑgÔgÐgØ—’¥ D¡	¤	¨A¢Ñ.Ô.Ð.Ð.ð/ð	/ð 	/r   c                 ó”   — d| j         j        d         d<   | j                              dd¬¦  «        }|                      |d¦  «         dS )zIIf a key is missing in German, it falls back to English, then Vietnamese.zEnglish Fallbackr   Útest_fallback_keyr   r&   N)r   Údictionariesr)   ÚassertEqual)r   r/   s     r	   Ú-test_fallback_chain_to_english_and_vietnamesezETestLocalizationAndWiki.test_fallback_chain_to_english_and_vietnamese,   sS   € ð @RˆŒÔ! $Ô'Ð(;Ñ<àŒ|×$Ò$Ð%8ÀÐ$ÑFÔFˆØ×Ò˜Ð1Ñ2Ô2Ð2Ð2Ð2r   c                 óŠ  — | j                              dd¬¦  «        }|                      t          |¦  «        d¦  «         |                      |d         d         d¦  «         | j                              dd¬¦  «        }|                      t          |¦  «        d¦  «         |                      |d         d         d¦  «         d	S )
z8Search queries return matching terms in target language.u	   æ··å…ƒçŸ³r   r&   r   r.   r   zPrimal Chaosr   N)r   Úsearch_termsÚassertGreaterr+   r4   )r   Ú
results_zhÚ
results_ens      r	   Útest_localized_search_queryz3TestLocalizationAndWiki.test_localized_search_query4   s´   € à”\×.Ò.¨{À4Ð.ÑHÔHˆ
Ø×Ò�3˜z™?œ?¨AÑ.Ô.Ð.Ø×Ò˜ Aœ uÔ-Ð/AÑBÔBÐBà”\×.Ò.¨~ÀdÐ.ÑKÔKˆ
Ø×Ò�3˜z™?œ?¨AÑ.Ô.Ð.Ø×Ò˜ Aœ uÔ-Ð/AÑBÔBÐBÐBÐBr   N)Ú__name__Ú
__module__Ú__qualname__r
   r   r0   r5   r;   © r   r	   r   r      sg   € € € € € ð.ð .ð .ð\ð \ð \ð/ð /ð /ð&3ð 3ð 3ðCð Cð Cð Cð Cr   r   Ú__main__)Ú__doc__ÚunittestÚsysÚosÚpathÚinsertÚabspathÚjoinÚdirnameÚ__file__Úcommon.wiki_servicer   ÚTestCaser   r<   Úmainr?   r   r	   ú<module>rN      sÜ   ððð ð
 €€€Ø 
€
€
€
Ø 	€	€	€	à „‡‚��2”7—?’? 2¤7§<¢<°´·²ÀÑ0IÔ0IÈ>Ñ#ZÔ#ZÑ[Ô[Ñ \Ô \Ð \à 4Ð 4Ð 4Ð 4Ð 4Ð 4ð-Cð -Cð -Cð -Cð -C˜hÔ/ñ -Cô -Cð -Cð` ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   