§
    üU¼jÎ  ã                   óZ  — d 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 ej                             d e ee¦  «                             ¦   «         j        j        j        dz  ¦  «        ¦  «         ddlmZ ddlmZmZ  G d„ de	j        ¦  «        Zed	k    r e	j        ¦   «          dS dS )
z{
Unit tests for Divine Weapons, Primal Bloodstones & World Lore Assets.
Strictly complies with Engineering Standards 2026.
é    N)ÚPathÚserver)Úget_base_weapon_catalog)Ú	GripStyleÚWeaponClassc                   ó6   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„ZdS )	ÚTestDivineWeaponsAndRelicsÚreturnNc                 óÊ   — t          ¦   «         | _        t          t          ¦  «                             ¦   «         j        j        j        | _        | j        dz  dz  dz  | _        d S )NÚclientÚwebappÚassets)r   Úcatalogr   Ú__file__ÚresolveÚparentÚworkspace_rootÚ
assets_dir)Úselfs    úBC:\Projects\FreeExile\tests\unit\test_divine_weapons_and_relics.pyÚsetUpz TestDivineWeaponsAndRelics.setUp   sO   € Ý.Ñ0Ô0ˆŒÝ"¥8™nœn×4Ò4Ñ6Ô6Ô=ÔDÔKˆÔØÔ-°Ñ8¸8ÑCÀhÑNˆŒˆˆó    c                 óš  — g d¢}|D ]Ã}|                       || j        d|› �¦  «         | j        |         }|                      |j        d¦  «         |                      |j        t
          j        ¦  «         |                      |j        d¦  «         |  	                    |j
        ¦  «         |                      |j
        j        d¦  «         ŒÄdS )zIVerifies 5 Divine Relic Weapons are registered with iLvl 85 requirements.)ÚWPN_DIVINE_SWORD_XICH_HUYETÚWPN_DIVINE_AXE_THON_COTÚWPN_DIVINE_BOW_TICH_COTÚWPN_DIVINE_SPEAR_THAN_PHUÚWPN_DIVINE_STAFF_THAI_HUzMissing divine weapon: éU   g     Àr@g        N)ÚassertInr   ÚassertEqualÚrequired_levelÚ
grip_styler   Ú
TWO_HANDEDÚassertGreaterÚ
max_damageÚassertIsNotNoneÚimplicit_modÚvalue)r   Údivine_keysÚkeyÚweapons       r   Ú#test_divine_weapons_catalog_entriesz>TestDivineWeaponsAndRelics.test_divine_weapons_catalog_entries   sß   € ð
ð 
ð 
ˆð ð 	?ð 	?ˆCØ�MŠM˜#˜tœ|Ð-LÀsÐ-LÐ-LÑMÔMÐMØ”\ #Ô&ˆFØ×Ò˜VÔ2°BÑ7Ô7Ð7Ø×Ò˜VÔ.µ	Ô0DÑEÔEÐEØ×Ò˜vÔ0°%Ñ8Ô8Ð8Ø× Ò  Ô!4Ñ5Ô5Ð5Ø×Ò˜vÔ2Ô8¸#Ñ>Ô>Ð>Ð>ð	?ð 	?r   c                 óR  — g d¢}| j         dz  }|D ]•}||› d�z  }||› d�z  }|                      |                     ¦   «         d|› �¦  «         |                      |                     ¦   «         d|› �¦  «         |                      |                     ¦   «         j        d¦  «         Œ–dS )	z=Verifies weapon icons and normal maps exist in client assets.)Úwpn_abyssal_chainguard_swordÚwpn_dragonbone_maw_greataxeÚwpn_spinal_recurve_greatbowÚwpn_runic_skullspear_halberdÚwpn_etheric_demonstaffÚweaponsú.pngú_normal.pngzMissing PNG: úMissing Normal Map: éè  N©r   Ú
assertTrueÚexistsr%   ÚstatÚst_size)r   r4   Úwpn_dirÚwÚpng_pÚnorm_ps         r   Ú test_divine_weapons_assets_existz;TestDivineWeaponsAndRelics.test_divine_weapons_assets_exist)   sË   € ð
ð 
ð 
ˆð ”/ IÑ-ˆØð 	;ð 	;ˆAØ ˜j˜j˜jÑ(ˆEØ !Ð0Ð0Ð0Ñ0ˆFØ�OŠO˜EŸLšL™NœNÐ,C¸EÐ,CÐ,CÑDÔDÐDØ�OŠO˜FŸMšM™OœOÐ-LÀFÐ-LÐ-LÑMÔMÐMØ×Ò˜uŸzšz™|œ|Ô3°TÑ:Ô:Ð:Ð:ð	;ð 	;r   c                 óR  — g d¢}| j         dz  }|D ]•}||› d�z  }||› d�z  }|                      |                     ¦   «         d|› �¦  «         |                      |                     ¦   «         d|› �¦  «         |                      |                     ¦   «         j        d¦  «         Œ–dS )	z9Verifies 6 Primal Relic Currencies and normal maps exist.)Úcurr_blood_soul_gemÚcurr_nether_bone_nail_hqÚcurr_primal_bone_seal_hqÚcurr_chaos_bloodstoneÚcurr_void_mirror_shardÚcurr_life_bone_marrowÚ
currenciesr5   r6   zMissing Currency PNG: r7   r8   Nr9   )r   ÚrelicsÚcurr_dirÚrr@   rA   s         r   Ú*test_primal_bloodstone_relics_assets_existzETestDivineWeaponsAndRelics.test_primal_bloodstone_relics_assets_exist:   sË   € ð
ð 
ð 
ˆð ”? \Ñ1ˆØð 	;ð 	;ˆAØ !˜z˜z˜zÑ)ˆEØ 1Ð 1Ð 1Ð 1Ñ1ˆFØ�OŠO˜EŸLšL™NœNÐ,LÀUÐ,LÐ,LÑMÔMÐMØ�OŠO˜FŸMšM™OœOÐ-LÀFÐ-LÐ-LÑMÔMÐMØ×Ò˜uŸzšz™|œ|Ô3°TÑ:Ô:Ð:Ð:ð	;ð 	;r   c                 óê  — | j         dz  }| j         dz  }|                      |dz                       ¦   «         ¦  «         |                      |dz                       ¦   «         ¦  «         |                      |dz                       ¦   «         ¦  «         |                      |dz                       ¦   «         j        d¦  «         |                      |dz                       ¦   «         j        d¦  «         dS )z?Verifies cinematic loading screens and panoramic banners exist.ÚloadingÚbannerszloading_forsaken_shore.jpgzloading_eldritch_crypt.jpgzbanner_deadlands_panorama.jpgiPÃ  Nr9   )r   Úload_dirÚban_dirs      r   Ú&test_loading_screens_and_banners_existzATestDivineWeaponsAndRelics.test_loading_screens_and_banners_existL   sæ   € à”? YÑ.ˆØ”/ IÑ-ˆà�Š˜Ð$@Ñ@×HÒHÑJÔJÑKÔKÐKØ�Š˜Ð$@Ñ@×HÒHÑJÔJÑKÔKÐKØ�Š˜Ð#BÑB×JÒJÑLÔLÑMÔMÐMð 	×Ò˜HÐ'CÑC×IÒIÑKÔKÔSÐUZÑ[Ô[Ð[Ø×Ò˜GÐ&EÑE×KÒKÑMÔMÔUÐW\Ñ]Ô]Ð]Ð]Ð]r   )r
   N)Ú__name__Ú
__module__Ú__qualname__r   r-   rB   rN   rT   © r   r   r	   r	      s‚   € € € € € ðOð Oð Oð Oð
?ð ?ð ?ð ?ð$;ð ;ð ;ð ;ð";ð ;ð ;ð ;ð$^ð ^ð ^ð ^ð ^ð ^r   r	   Ú__main__)Ú__doc__ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arÚosÚsysÚunittestÚpathlibr   ÚpathÚinsertÚstrr   r   r   Úserver.world.weapon_catalogr   Úserver.world.weapon_typesr   r   ÚTestCaser	   rU   ÚmainrX   r   r   ú<module>rl      s(  ððð ð
 € € € € € € € € € € € € €	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð à „‡‚��3�3�t�t˜H‘~”~×-Ò-Ñ/Ô/Ô6Ô=ÔDÀxÑOÑPÔPÑ QÔ QÐ Qà ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ðF^ð F^ð F^ð F^ð F^ Ô!2ñ F^ô F^ð F^ðR ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   