§
    ¤Ö©jÂ  ã                   óN   — d Z ddlZddlZddlmZ ddlmZmZmZm	Z	m
Z
 d„ Zd„ ZdS )z²
Tests for tools/character_snapshotter.py
Verifies schema v1 validity, abstract skill roles (Builder vs Finisher),
JSON serialization, and Markdown evolution journal generation.
é    N)ÚPath)Úbuild_character_snapshotÚsave_snapshotÚupdate_evolution_journalÚSNAPSHOTS_DIRÚEVOLUTION_MDc                  ór  — t          dddddddddd	d
¬¦  «        } | d         dk    sJ ‚d| v sJ ‚d| v sJ ‚d| v sJ ‚d| v sJ ‚d| v sJ ‚d| v sJ ‚d| v sJ ‚d| v sJ ‚| d         }|d         dk    sJ ‚|d         dk    sJ ‚|d         dk    sJ ‚|d         dk    sJ ‚|d         dk    sJ ‚| d         }|d         dk    sJ ‚|d         dk    sJ ‚|d          dk    sJ ‚|d!         dk    sJ ‚| d         }|d"         d#         d$k    sJ ‚|d"         d%         d	k    sJ ‚|d&         d#         d'k    sJ ‚|d&         d%         d
k    sJ ‚|d(         d#         d)k    sJ ‚|d*         d#         d+k    sJ ‚|d,         d#         d-k    sJ ‚|d.         d#         d/k    sJ ‚|d0         d#         d1k    sJ ‚|d2         d#         d3k    sJ ‚d S )4NÚ	TEST_HEROé\   ÚMonkzMartial ArtistzForbidden RitesiP  i,  i„  ÚMonkTempestFlurryÚMonkTempestBell)Úcharacter_nameÚlevelÚ
class_nameÚ
ascendancyÚleagueÚcur_esÚmax_esÚcur_wardÚcur_manaÚcombo_builder_gemÚfinisher_gemÚschema_versionzautopoe2.character_snapshot/v1Útimestamp_localÚtimestamp_utcÚ	characterÚvitalsÚskill_loadoutÚkeystones_and_ascendancyÚequipped_weaponÚevolution_contextÚnamer   ÚclassÚdefense_typezChaos Inoculation (CI)Úlife_invariantzHP 1/1 (Chaos Immune)Úlife_currenté   Úlife_maxÚenergy_shield_currentÚenergy_shield_maxÚslot_QÚroleÚCOMBO_BUILDERÚcurrent_gemÚslot_RÚCOMBO_FINISHERÚslot_RMBÚSUSTAINED_AOE_BUFFÚslot_MMBÚGAP_CLOSER_DEBUFFÚslot_TÚPRE_BUFF_INITIATIONÚslot_LMBÚPRIMARY_CLEARÚ
slot_SPACEÚMOBILITY_IFRAMEÚslot_FÚSKILL_8)r   )ÚsnapshotÚcharr   Úskillss       ú8C:\Projects\AutoPOE2\tests\test_character_snapshotter.pyÚ!test_character_snapshot_schema_v1rB      sà  € Ý'Ø"ØØØ#Ø ØØØØØ-Ø&ðñ ô €Hð Ð$Ô%Ð)IÒIÐIÐIÐIØ Ð(Ð(Ð(Ð(Ø˜hÐ&Ð&Ð&Ð&Ø˜(Ð"Ð"Ð"Ð"Ø�xÐÐÐÐØ˜hÐ&Ð&Ð&Ð&Ø%¨Ð1Ð1Ð1Ð1Ø Ð(Ð(Ð(Ð(Ø (Ð*Ð*Ð*Ð*ð �KÔ €DØ�Œ<˜;Ò&Ð&Ð&Ð&Ø�Œ=˜BÒÐÐÐØ�Œ=˜FÒ"Ð"Ð"Ð"Ø�ÔÐ#;Ò;Ð;Ð;Ð;ØÐ Ô!Ð%<Ò<Ð<Ð<Ð<ð �hÔ€FØ�.Ô! QÒ&Ð&Ð&Ð&Ø�*Ô Ò"Ð"Ð"Ð"ØÐ)Ô*¨dÒ2Ð2Ð2Ð2ØÐ%Ô&¨$Ò.Ð.Ð.Ð.ð �oÔ&€FØ�(Ô˜FÔ# Ò6Ð6Ð6Ð6Ø�(Ô˜MÔ*Ð.AÒAÐAÐAÐAØ�(Ô˜FÔ#Ð'7Ò7Ð7Ð7Ð7Ø�(Ô˜MÔ*Ð.?Ò?Ð?Ð?Ð?Ø�*Ô˜fÔ%Ð)=Ò=Ð=Ð=Ð=Ø�*Ô˜fÔ%Ð)<Ò<Ð<Ð<Ð<Ø�(Ô˜FÔ#Ð'<Ò<Ð<Ð<Ð<Ø�*Ô˜fÔ%¨Ò8Ð8Ð8Ð8Ø�,Ô Ô'Ð+<Ò<Ð<Ð<Ð<Ø�(Ô˜FÔ# yÒ0Ð0Ð0Ð0Ð0Ð0ó    c                 óþ  — | dz  }| dz  }dd l m} |                     |d|¦  «         |                     |d|¦  «         t          dddd	¬
¦  «        }|                     |¦  «        }|                     ¦   «         sJ ‚|j        dk    sJ ‚t          |dd¬¦  «        5 }t          j	        |¦  «        }d d d ¦  «         n# 1 swxY w Y   |d         d         dk    sJ ‚|d         d         d         dk    sJ ‚| 
                    |¦  «         |                     ¦   «         sJ ‚t          |dd¬¦  «        5 }|                     ¦   «         }	d d d ¦  «         n# 1 swxY w Y   d|	v sJ ‚d|	v sJ ‚d|	v sJ ‚d|	v sJ ‚d	|	v sJ ‚d S )NÚ	snapshotszCHARACTER_EVOLUTION.mdr   r   r   ÚBEONGUSIéZ   r   r   )r   r   r   r   z.jsonÚrzutf-8)Úencodingr   r#   r   r,   r/   u0   NHáº¬T KÃ� TIáº¾N HÃ“A & NÃ‚NG Cáº¤P NHÃ‚N Váº¬Tr.   )Útools.character_snapshotterÚcharacter_snapshotterÚsetattrr   r   ÚexistsÚsuffixÚopenÚjsonÚloadr   Úread)
Útmp_pathÚmonkeypatchÚtest_snapshots_dirÚtest_evolution_mdÚcsr>   Ú
saved_fileÚfÚloadedÚmd_texts
             rA   Ú(test_save_snapshot_and_evolution_journalr\   L   sn  € Ø! KÑ/ÐØ Ð#;Ñ;Ðà,Ð,Ð,Ð,Ð,Ð,Ø×Ò˜˜OÐ-?Ñ@Ô@Ð@Ø×Ò˜˜NÐ,=Ñ>Ô>Ð>å'Ø!ØØ-Ø&ð	ñ ô €Hð ×!Ò! (Ñ+Ô+€JØ×ÒÑÔÐÐÐØÔ Ò'Ð'Ð'Ð'å	ˆj˜#¨Ð	0Ñ	0Ô	0ð °AÝ”˜1‘”ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�+Ô˜vÔ&¨*Ò4Ð4Ð4Ð4Ø�/Ô" 8Ô,¨]Ô;Ð?RÒRÐRÐRÐRð ×Ò Ñ)Ô)Ð)Ø×#Ò#Ñ%Ô%Ð%Ð%Ð%å	Ð ¨wÐ	7Ñ	7Ô	7ð ¸1Ø—&’&‘(”(ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð >ÀÐHÐHÐHÐHØ˜Ð Ð Ð Ð Ø˜gÐ%Ð%Ð%Ð%Ø 'Ð)Ð)Ð)Ð)Ø Ð'Ð'Ð'Ð'Ð'Ð's$   ÂB=Â=CÃCÄ3EÅEÅE)Ú__doc__rP   ÚpytestÚpathlibr   rJ   r   r   r   r   r   rB   r\   © rC   rA   ú<module>ra      s¤   ððð ð €€€Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð41ð 41ð 41ðn$(ð $(ð $(ð $(ð $(rC   