§
    Ùh®jB.  ã                   óR   — d Z ddlZddlmc mZ ddlZddlm	Z	  G d„ d¦  «        Z
dS )u'  AutoPOE2 - Unit Tests for MapClearEvaluator V2 (Doc 69 Â§3.4 / Stage 5 In-Map).
================================================================================
Kiá»ƒm thá»­ toÃ n diá»‡n bá»™ tháº©m Ä‘á»‹nh hoÃ n táº¥t báº£n Ä‘á»“ chuáº©n thÆ°Æ¡ng máº¡i V2:
- Báº¥t biáº¿n INV-MAP-LEGITIMATE-CLEAR-V2:
  Báº£n Ä‘á»“ CHá»ˆ Ä�Æ¯á»¢C CÃ”NG NHáº¬N HOÃ€N Táº¤T khi thá»�a mÃ£n Ä�á»’NG THá»œI cáº£ 3 trá»¥ cá»™t:
    1. Trá»¥ cá»™t 1: Thá»�i gian á»Ÿ trong map >= min_duration_sec (>= 90s).
    2. Trá»¥ cá»™t 2: QuÃ£ng Ä‘Æ°á»�ng tuáº§n tra thá»±c táº¿ >= min_traverse_units (>= 1200u).
    3. Trá»¥ cá»™t 3: Má»¥c tiÃªu cá»‘t lÃµi (Má»Ÿ sÆ°Æ¡ng Minimap >= 80% HOáº¶C Boss Slain).
- Triá»‡t tiÃªu 100% bug "Ä‘Ã¡nh 1 con quÃ¡i xong káº¿t luáº­n map clear" hoáº·c "vÃ o ngÃµ cá»¥t yÃªn áº¯ng 25s thoÃ¡t map sá»›m".
é    N)ÚMapClearEvaluatorc                   óT   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ ZdS )Ú!TestMapClearEvaluatorV2InvariantsuX   Kiá»ƒm thá»­ cÃ¡c báº¥t biáº¿n cá»§a MapClearEvaluator V2 (INV-MAP-LEGITIMATE-CLEAR-V2).c                 óÔ  — t          ddd¬¦  «        }|                     dddd¬¦  «         |                     d	¬
¦  «        \  }}d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}|                     dddd¬¦  «         |                     d¬
¦  «        \  }}d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}|                     d¬
¦  «        \  }}d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}dS )ul   Trá»¥ cá»™t 1: DÃ¹ chá»‰ cÃ²n 0 quÃ¡i váº­t, náº¿u elapsed < 90s thÃ¬ TUYá»†T Ä�á»�I KHÃ”NG hoÃ n táº¥t map.ç     €V@çš™™™™™é?ç     À’@©Úmin_duration_secÚtarget_coverageÚmin_traverse_unitsç      Y@é   gš™™™™™¹?©Úpos_xÚpos_yÚmonsters_nearÚcoverage_ratiog      .@©Úelapsed_secF©Úis©z%(py0)s is %(py3)sÚ
is_cleared©Úpy0Úpy3úassert %(py5)sÚpy5NÚ ©ú==©z%(py0)s == %(py3)sÚreasonç      i@r   g333333Ó?ç      N@gš™™™™yV@©r   Úupdate_telemetryÚevaluate_clearÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation©ÚselfÚ	evaluatorr   r$   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6s           ú6C:\Projects\AutoPOE2\tests\test_map_clear_evaluator.pyÚ=test_rejects_clear_before_min_duration_regardless_of_monstersz_TestMapClearEvaluatorV2Invariants.test_rejects_clear_before_min_duration_regardless_of_monsters   s9  € å%°tÈTÐflÐmÑmÔmˆ	ð 	×"Ò"¨°eÈ1Ð]aÐ"ÑbÔbÐbØ&×5Ò5À$Ð5ÑGÔGÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð 	×"Ò"¨°eÈ1Ð]aÐ"ÑbÔbÐbØ&×5Ò5À$Ð5ÑGÔGÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð '×5Ò5À$Ð5ÑGÔGÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐó    c                 ó	  — t          ddd¬¦  «        }|                     ddddd¬	¦  «         |j        }d}||k    }|sªt          j        d
|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||u }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|                     ddddd¬	¦  «         |                     dd¬¦  «        \  }}d}	||	u }|s—t          j        d|fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	d}	||	k    }|s—t          j        d
|fd ||	f¦  «        d!t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd!t          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	|                     d"d"¬¦  «        \  }}d}	||	u }|s—t          j        d|fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	d}	||	k    }|s—t          j        d
|fd ||	f¦  «        d!t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd!t          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	dS )#u…   Triá»‡t tiÃªu lá»—i gá»‘c: Ä�Ã¡nh 1 con quÃ¡i á»Ÿ cá»­a map, sau Ä‘Ã³ Ä‘á»©ng yÃªn hoáº·c Ä‘i nháº¹ -> Báº®T BUá»˜C tráº£ vá»� False.r   r   r	   r
   r   r   gš™™™™™©?g      @©r   r   r   r   Únow_secr!   ©z9%(py2)s
{%(py2)s = %(py0)s.packs_encountered
} == %(py5)sr4   ©r   Úpy2r   úassert %(py7)sÚpy7Nr   ©z8%(py2)s
{%(py2)s = %(py0)s.quiet_start_time
} is %(py5)sg      ^@r   g{®Gáz´?g      $@ç     ÀW@©r   r>   Fr   r   r   r   r   r    r#   r$   g      n@)r   r(   Úpacks_encounteredr*   r+   r,   r-   r.   r/   r0   r1   Úquiet_start_timer)   ©r3   r4   r6   Ú@py_assert4Ú@py_assert3r8   Ú@py_format8r   r$   r5   r7   s              r9   Ú=test_single_monster_killed_at_entrance_strictly_rejects_clearz_TestMapClearEvaluatorV2Invariants.test_single_monster_killed_at_entrance_strictly_rejects_clear(   sk  € å%°tÈTÐflÐmÑmÔmˆ	ð 	×"Ò"¨°eÈ1Ð]aÐknÐ"ÑoÔoÐoØÔ*Ð/¨aÐ/Ð*¨aÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð*¨aÐ/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ˆyÑ/Ô/Ð/Õ/Ô/ˆyÑ/Ô/Ð/Ð/Õ/Ô/Ð*Ñ/Ô/Õ/Ô/¨aÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØÔ)Ð1¨TÐ1Ð)¨TÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð)¨TÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Ð1Õ1Ô1Ð)Ñ1Ô1Õ1Ô1¨TÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð 	×"Ò"¨°eÈ1Ð]aÐkoÐ"ÑpÔpÐpð '×5Ò5À$ÐPTÐ5ÑUÔUÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð '×5Ò5À%ÐQVÐ5ÑWÔWÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr;   c                 ó  — t          ddd¬¦  «        }t          d¦  «        D ] }|                     d|dz  z   dd¬	¦  «         Œ!|j        }d}||k    }|sªt	          j        d
|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|                     ddddd¬¦  «         |                     dd¬¦  «        \  }}	d}
||
u }|s—t	          j        d|fd||
f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |
¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}
d}
|	|
k    }|s—t	          j        d|fd |	|
f¦  «        d!t          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        nd!t	          j	        |
¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}
dS )"u—   Lá»— há»•ng quiet_start_time: Ä�i vÃ o vÃ¹ng váº¯ng quÃ¡i (dead-end) 25s nhÆ°ng chÆ°a Ä‘á»§ 80% sÆ°Æ¡ng vÃ  chÆ°a diá»‡t Boss -> KHÃ”NG Ä�Æ¯á»¢C CLEAR.r   r   r	   r
   é   r   r%   é   ©r   r   r   ©ú>=©z@%(py2)s
{%(py2)s = %(py0)s.total_distance_traversed
} >= %(py5)sr4   r@   rB   rC   Nç     à•@r   g      Ð?r=   g     @`@rF   Fr   r   r   r   r   r   r    r!   r#   r$   ©r   Úranger(   Útotal_distance_traversedr*   r+   r,   r-   r.   r/   r0   r1   r)   )r3   r4   Úir6   rJ   rK   r8   rL   r   r$   r5   r7   s               r9   ÚFtest_quiet_area_in_dead_end_cannot_fake_clear_without_boss_or_coveragezhTestMapClearEvaluatorV2Invariants.test_quiet_area_in_dead_end_cannot_fake_clear_without_boss_or_coverage>   s  € å%°tÈTÐflÐmÑmÔmˆ	õ �q‘”ð 	`ð 	`ˆAØ×&Ò&¨U°a¸%±iÑ-@ÈÐ]^Ð&Ñ_Ô_Ð_Ð_ØÔ1Ð;°VÐ;Ð1°VÒ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð1°VÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆyÑ;Ô;Ð;Õ;Ô;ˆyÑ;Ô;Ð;Ð;Õ;Ô;Ð1Ñ;Ô;Õ;Ô;°VÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð 	×"Ò"¨°uÈAÐ^bÐlqÐ"ÑrÔrÐrð '×5Ò5À%ÐQVÐ5ÑWÔWÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr;   c                 óÐ  — t          ddd¬¦  «        }|                     ddd¬¦  «         |                     ddd	d
¬¦  «         |j        }d}||k     }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|                     d¬¦  «        \  }}d}	||	u }|s—t          j        d|fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	d}	||	k    }|s—t          j        d|fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	dS ) uv   Trá»¥ cá»™t 2: Boss bá»‹ háº¡ gá»¥c sá»›m nhÆ°ng chÆ°a tuáº§n tra Ä‘á»§ 1200u -> Báº®T BUá»˜C tá»« chá»‘i clear sá»›m.r   r   r	   r
   r   é   rQ   g      y@r   T)r   r   r   Ú
boss_slain)ú<)z?%(py2)s
{%(py2)s = %(py0)s.total_distance_traversed
} < %(py5)sr4   r@   rB   rC   NrE   r   Fr   r   r   r   r   r   r    r!   r#   r$   ©r   r(   rX   r*   r+   r,   r-   r.   r/   r0   r1   r)   rI   s              r9   Ú=test_boss_slain_alone_without_traverse_distance_rejects_clearz_TestMapClearEvaluatorV2Invariants.test_boss_slain_alone_without_traverse_distance_rejects_clearP   s×  € å%°tÈTÐflÐmÑmÔmˆ	ð 	×"Ò"¨°eÈ1Ð"ÑMÔMÐMØ×"Ò"¨°eÈ1ÐY]Ð"Ñ^Ô^Ð^ØÔ1Ð:°FÐ:Ð1°FÒ:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð1°FÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆyÑ:Ô:Ð:Õ:Ô:ˆyÑ:Ô:Ð:Ð:Õ:Ô:Ð1Ñ:Ô:Õ:Ô:°FÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:à&×5Ò5À$Ð5ÑGÔGÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr;   c                 ó0  — t          ddd¬¦  «        }|                     ddd¬¦  «         |                     ddd	¬¦  «         |                     d
dd¬¦  «         |                     dddd¬¦  «         |j        }d
}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|                     d¬¦  «        \  }}d}	||	u }|s—t          j        d|fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	d}	||	k    }|s—t          j        d|fd ||	f¦  «        d!t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd!t          j        |	¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}	dS )"uw   Trá»¥ cá»™t 2: Tá»· lá»‡ má»Ÿ sÆ°Æ¡ng Ä‘áº¡t 85% nhÆ°ng quÃ£ng Ä‘Æ°á»�ng tuáº§n tra < 1200u -> Tá»« chá»‘i hoÃ n táº¥t.r   r   r	   r
   r   r\   rQ   ç     Àr@é   ç     @@é   ç     À‚@rP   ç333333ë?r   r!   ©z@%(py2)s
{%(py2)s = %(py0)s.total_distance_traversed
} == %(py5)sr4   r@   rB   rC   Nr   Fr   r   r   r   r   r   r    r#   r$   r_   rI   s              r9   ÚFtest_coverage_80_percent_alone_without_traverse_distance_rejects_clearzhTestMapClearEvaluatorV2Invariants.test_coverage_80_percent_alone_without_traverse_distance_rejects_clear]   s  € å%°tÈTÐflÐmÑmÔmˆ	ð 	×"Ò"¨°eÈ1Ð"ÑMÔMÐMØ×"Ò"¨°eÈ1Ð"ÑMÔMÐMØ×"Ò"¨°eÈ1Ð"ÑMÔMÐMØ×"Ò"¨°eÈ1Ð]aÐ"ÑbÔbÐbØÔ1Ð:°UÐ:Ð1°UÒ:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð1°UÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆyÑ:Ô:Ð:Õ:Ô:ˆyÑ:Ô:Ð:Ð:Õ:Ô:Ð1Ñ:Ô:Õ:Ô:°UÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:à&×5Ò5À%Ð5ÑHÔHÑˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr;   c                 ó€  — t          ddd¬¦  «        }|                     ddd¬¦  «         |                     ddd	¬¦  «         |                     d
ddd¬¦  «         |                     dd¬¦  «        \  }}d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}dS )uf   Trá»¥ cá»™t 3: Core SHM State 9 (MAP_COMPLETED_PORTAL_OUT) khÃ´ng Ä‘Æ°á»£c phÃ©p bypass 3 trá»¥ cá»™t.r   r   r	   r
   r   r\   rQ   rb   rP   rd   r   gš™™™™™É?r   é	   )r   Úcore_lifecycle_stateFr   r   r   r   r   r   Nr    r!   r#   r$   r'   r2   s           r9   Ú5test_core_lifecycle_state_cannot_bypass_three_pillarszWTestMapClearEvaluatorV2Invariants.test_core_lifecycle_state_cannot_bypass_three_pillarsl   s  € å%°tÈTÐflÐmÑmÔmˆ	ð 	×"Ò"¨°eÈ1Ð"ÑMÔMÐMØ×"Ò"¨°eÈ1Ð"ÑMÔMÐMØ×"Ò"¨°eÈ1Ð]aÐ"ÑbÔbÐbØ&×5Ò5À%Ð^_Ð5Ñ`Ô`Ñˆ
�FØ"Ð"ˆz˜UÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆz˜UÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Õ"Ô"ˆzÑ"Ô"Ð"Ð"Õ"Ô"˜UÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐˆv˜Š|ÐÐÐÕÔÐÐÐÐˆv˜ÐÑÔÐÕÔÑÔÐÐÕÔˆvÑÔÐÕÔˆvÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr;   c                 ó.  — t          ddd¬¦  «        }g d¢}|D ]\  }}|                     ||d¬¦  «         Œ|j        }d}||k    }|sªt          j        d|fd	||f¦  «        d
t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j
        |	¦  «        ¦  «        ‚dx}x}}|                     ddddd¬¦  «         |                     dd¬¦  «        \  }
}d}|
|u }|s—t          j        d|fd|
|f¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd d!œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d"}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd d!œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}dS )#uj   Há»™i tá»¥ 3 trá»¥ cá»™t: Elapsed >= 90s + Distance >= 1200u + Boss Slain -> CÃ´ng nháº­n hoÃ n táº¥t map.r   r   r	   r
   ©)r   r   )g     àu@r   )rf   r   )g     �Š@r   )g     0‘@r   )g     •@r   re   rQ   rR   rT   r4   r@   rB   rC   NrU   r   r   Tg
×£p=
ç?)r   r   r   r]   r   rE   rF   r   r   r   r   r   r   u   Map Boss Ä‘Ã£ bá»‹ tiÃªu diá»‡t©Úin©z%(py1)s in %(py3)sr$   ©Úpy1r   z>= 1200ur_   )r3   r4   Ú	positionsÚpxÚpyr6   rJ   rK   r8   rL   r   r$   r5   r7   Ú@py_assert0s                  r9   Ú9test_all_three_pillars_met_with_boss_slain_triggers_clearz[TestMapClearEvaluatorV2Invariants.test_all_three_pillars_met_with_boss_slain_triggers_clearx   sÎ  € å%°tÈTÐflÐmÑmÔmˆ	ð
ð 
ð 
ˆ	ð  ð 	Lð 	L‰FˆB�Ø×&Ò&¨R°rÈÐ&ÑKÔKÐKÐKàÔ1Ð;°VÐ;Ð1°VÒ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð1°VÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆyÑ;Ô;Ð;Õ;Ô;ˆyÑ;Ô;Ð;Ð;Õ;Ô;Ð1Ñ;Ô;Õ;Ô;°VÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð 	×"Ò"¨°uÈAÐZ^ÐosÐ"ÑtÔtÐtØ&×5Ò5À$ÐPTÐ5ÑUÔUÑˆ
�Fà!Ð!ˆz˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆz˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ø0Ð:Ð0°FÐ:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð0°FÐ:Ñ:Ô:Õ:Ô:Ð0Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:°FÑ:Ô:Ð:Õ:Ô:°FÑ:Ô:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:ØÐ#ˆz˜VÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆz˜VÐ#Ñ#Ô#Õ#Ô#ˆzÑ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#˜VÑ#Ô#Ð#Õ#Ô#˜VÑ#Ô#Ð#Ð#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#r;   c                 óª  — t          ddd¬¦  «        }g d¢}|D ]\  }}|                     ||d¬¦  «         Œ|                     dd	d
d¬¦  «         |                     dd¬¦  «        \  }}d}||u }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }	dd|	iz  }
t          t          j
        |
¦  «        ¦  «        ‚dx}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }	dd|	iz  }
t          t          j
        |
¦  «        ¦  «        ‚dx}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }	dd|	iz  }
t          t          j
        |
¦  «        ¦  «        ‚dx}}dS )uj   Há»™i tá»¥ 3 trá»¥ cá»™t: Elapsed >= 90s + Distance >= 1200u + Minimap Coverage >= 80% -> HoÃ n táº¥t map.r   r   r	   r
   ro   rP   rQ   rU   r   r   g¸…ëQ¸ê?r   g     €[@rF   Tr   r   r   r   r   r   Nu&   Minimap Ä‘Ã£ má»Ÿ sÆ°Æ¡ng Ä‘áº¡t 83.5%rp   rr   r$   rs   z>= 80%r'   )r3   r4   ru   rv   rw   r   r$   r5   r6   r7   r8   rx   s               r9   ÚBtest_all_three_pillars_met_with_coverage_80_percent_triggers_clearzdTestMapClearEvaluatorV2Invariants.test_all_three_pillars_met_with_coverage_80_percent_triggers_clearŽ   sê  € å%°tÈTÐflÐmÑmÔmˆ	ð
ð 
ð 
ˆ	ð  ð 	Lð 	L‰FˆB�Ø×&Ò&¨R°rÈÐ&ÑKÔKÐKÐKð 	×"Ò"¨°uÈAÐ^cÐ"ÑdÔdÐdØ&×5Ò5À%ÐQVÐ5ÑWÔWÑˆ
�Fà!Ð!ˆz˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆz˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ø7ÐAÐ7¸6ÐAÐAÐAÐAÕAÔAÐAÐAÐAÐAÐ7¸6ÐAÑAÔAÕAÔAÐ7ÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔA¸6ÑAÔAÐAÕAÔA¸6ÑAÔAÐAÐAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÕAÕAÔAÐAÑAÔAÑAÔAÐAÐAÐAÐAÐAØÐ!ˆx˜6Ð!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆx˜6Ð!Ñ!Ô!Õ!Ô!ˆxÑ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!˜6Ñ!Ô!Ð!Õ!Ô!˜6Ñ!Ô!Ð!Ð!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!r;   c                 óF  — t          ddd¬¦  «        }t          d¦  «        D ] }|                     d|dz  z   dd¬	¦  «         Œ!|j        }d}||k    }|sªt	          j        d
|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|                     ddddd¬¦  «         |                     dd¬¦  «        \  }}	d}
||
u }|s—t	          j        d|fd||
f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |
¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}
d}||	v }
|
s—t	          j        d|
fd ||	f¦  «        t	          j	        |¦  «        d!t          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        nd!d"œz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}
d#}||	v }
|
s—t	          j        d|
fd ||	f¦  «        t	          j	        |¦  «        d!t          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        nd!d"œz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}
dS )$u_   Há»™i tá»¥ 3 trá»¥ cá»™t kÃ¨m xÃ¡c nháº­n khu vá»±c hoÃ n toÃ n yÃªn áº¯ng (quiet area >= 25s).r   r   r	   r
   rO   r   g     @j@re   rQ   rR   rT   r4   r@   rB   rC   Ng     p—@r   rg   r=   g      `@rF   Tr   r   r   r   r   r   u   hoÃ n toÃ n yÃªn áº¯ngrp   rr   r$   rs   z85.0%rV   )r3   r4   Ústepr6   rJ   rK   r8   rL   r   r$   r5   r7   rx   s                r9   Ú7test_all_three_pillars_met_with_quiet_area_confirmationzYTestMapClearEvaluatorV2Invariants.test_all_three_pillars_met_with_quiet_area_confirmation¢   sË  € å%°tÈTÐflÐmÑmÔmˆ	õ ˜!‘H”Hð 	að 	aˆDØ×&Ò&¨U°T¸E±\Ñ-AÈÐ^_Ð&Ñ`Ô`Ð`Ð`ØÔ1Ð;°VÐ;Ð1°VÒ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð1°VÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆyÑ;Ô;Ð;Õ;Ô;ˆyÑ;Ô;Ð;Ð;Õ;Ô;Ð1Ñ;Ô;Õ;Ô;°VÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð 	×"Ò"¨°uÈAÐ^bÐlqÐ"ÑrÔrÐrð '×5Ò5À%ÐQVÐ5ÑWÔWÑˆ
�FØ!Ð!ˆz˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆz˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ø'Ð1Ð'¨6Ð1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð'¨6Ð1Ñ1Ô1Õ1Ô1Ð'Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1¨6Ñ1Ô1Ð1Õ1Ô1¨6Ñ1Ô1Ð1Ð1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1ØÐ ˆw˜&Ð Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆw˜&Ð Ñ Ô Õ Ô ˆwÑ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˜&Ñ Ô Ð Õ Ô ˜&Ñ Ô Ð Ð Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð r;   c                 ó  — t          ¦   «         }|                     dddd¬¦  «         |j        }d}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|                     dddd¬¦  «         |j        }d}||u }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}dS )uv   XÃ¡c minh quÃ¡i váº­t Ä‘Æ¡n láº» (monsters_near=1) phÃ¡ vá»¡ tráº¡ng thÃ¡i quiet vÃ  reset quiet_start_time vá»� None.r   r   ç      I@)r   r   r   r>   r!   )z8%(py2)s
{%(py2)s = %(py0)s.quiet_start_time
} == %(py5)sr4   r@   rB   rC   Ng     Àb@r   r&   r   rD   r?   )r   r(   rH   r*   r+   r,   r-   r.   r/   r0   r1   rG   ©r3   r4   r6   rJ   rK   r8   rL   s          r9   Ú5test_single_monster_encounter_resets_quiet_start_timezWTestMapClearEvaluatorV2Invariants.test_single_monster_encounter_resets_quiet_start_time´   sö  € å%Ñ'Ô'ˆ	ð 	×"Ò"¨°eÈ1ÐVZÐ"Ñ[Ô[Ð[ØÔ)Ð1¨TÐ1Ð)¨TÒ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð)¨TÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Ð1Õ1Ô1Ð)Ñ1Ô1Õ1Ô1¨TÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð 	×"Ò"¨°eÈ1ÐVZÐ"Ñ[Ô[Ð[ØÔ)Ð1¨TÐ1Ð)¨TÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð)¨TÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Ð1Õ1Ô1Ð)Ñ1Ô1Õ1Ô1¨TÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ØÔ*Ð/¨aÐ/Ð*¨aÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð*¨aÐ/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ˆyÑ/Ô/Ð/Õ/Ô/ˆyÑ/Ô/Ð/Ð/Õ/Ô/Ð*Ñ/Ô/Õ/Ô/¨aÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/r;   c                 ó2  — t          ¦   «         }|                     ddd¬¦  «         |                     dddddd¬	¦  «         |j        }d
}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||u }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|                     ¦   «          |j        }d
}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||u }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d
}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||u }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}|j        }d}||u }|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}dS )uQ   XÃ¡c minh reset() xÃ³a sáº¡ch toÃ n bá»™ bá»™ Ä‘áº¿m tráº¯c viá»…n cho map má»›i.r   r\   rQ   g     @o@r   TgÍÌÌÌÌÌì?r€   )r   r   r   r]   r   r>   g        )ú>)z?%(py2)s
{%(py2)s = %(py0)s.total_distance_traversed
} > %(py5)sr4   r@   rB   rC   Nr   )z2%(py2)s
{%(py2)s = %(py0)s.boss_slain
} is %(py5)sr!   )z;%(py2)s
{%(py2)s = %(py0)s.last_coverage_ratio
} == %(py5)srh   )z0%(py2)s
{%(py2)s = %(py0)s.last_pos
} is %(py5)sFr?   rD   )r   r(   rX   r*   r+   r,   r-   r.   r/   r0   r1   r]   Úlast_coverage_ratioÚresetÚlast_posrG   rH   r�   s          r9   Ú$test_reset_clears_all_internal_statezFTestMapClearEvaluatorV2Invariants.test_reset_clears_all_internal_stateÁ   sX  € å%Ñ'Ô'ˆ	Ø×"Ò"¨°eÈ1Ð"ÑMÔMÐMØ×"Ò"¨°eÈ1ÐY]Ðnrð  }AÐ"ñ  	Bô  	Bð  	BàÔ1Ð7°CÐ7Ð1°CÒ7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð1°CÐ7Ñ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7ˆyÑ7Ô7Ð7Õ7Ô7ˆyÑ7Ô7Ð7Ð7Õ7Ô7Ð1Ñ7Ô7Õ7Ô7°CÑ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ØÔ#Ð+ tÐ+Ð# tÐ+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð# tÐ+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆyÑ+Ô+Ð+Õ+Ô+ˆyÑ+Ô+Ð+Ð+Õ+Ô+Ð#Ñ+Ô+Õ+Ô+ tÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔ,Ð4°Ð4Ð,°Ò4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4Ð,°Ð4Ñ4Ô4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4ˆyÑ4Ô4Ð4Õ4Ô4ˆyÑ4Ô4Ð4Ð4Õ4Ô4Ð,Ñ4Ô4Õ4Ô4°Ñ4Ô4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4à�ŠÑÔÐØÔ1Ð8°SÐ8Ð1°SÒ8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð1°SÐ8Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8ˆyÑ8Ô8Ð8Õ8Ô8ˆyÑ8Ô8Ð8Ð8Õ8Ô8Ð1Ñ8Ô8Õ8Ô8°SÑ8Ô8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ØÔ!Ð) TÐ)Ð! TÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð! TÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆyÑ)Ô)Ð)Õ)Ô)ˆyÑ)Ô)Ð)Ð)Õ)Ô)Ð!Ñ)Ô)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÔ,Ð3°Ð3Ð,°Ò3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3Ð,°Ð3Ñ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3ˆyÑ3Ô3Ð3Õ3Ô3ˆyÑ3Ô3Ð3Ð3Õ3Ô3Ð,Ñ3Ô3Õ3Ô3°Ñ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ØÔ#Ð, uÐ,Ð# uÐ,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð# uÐ,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆyÑ,Ô,Ð,Õ,Ô,ˆyÑ,Ô,Ð,Ð,Õ,Ô,Ð#Ñ,Ô,Õ,Ô, uÑ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÔ*Ð/¨aÐ/Ð*¨aÒ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð*¨aÐ/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ˆyÑ/Ô/Ð/Õ/Ô/ˆyÑ/Ô/Ð/Ð/Õ/Ô/Ð*Ñ/Ô/Õ/Ô/¨aÑ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØÔ)Ð1¨TÐ1Ð)¨TÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð)¨TÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Õ1Ô1ˆyÑ1Ô1Ð1Ð1Õ1Ô1Ð)Ñ1Ô1Õ1Ô1¨TÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1r;   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r:   rM   rZ   r`   ri   rm   ry   r{   r~   r‚   rˆ   © r;   r9   r   r      s¿   € € € € € ØbÐbðð ð ð*ð ð ð,ð ð ð$ð ð ðð ð ð
ð 
ð 
ð$ð $ð $ð,"ð "ð "ð(!ð !ð !ð$0ð 0ð 0ð2ð 2ð 2ð 2ð 2r;   r   )rŒ   Úbuiltinsr,   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter*   ÚpytestÚ1src.assistant_tool.navigation.map_clear_evaluatorr   r   r�   r;   r9   ú<module>r”      s‚   ðð	ð 	ð € € € € € € € € € € € € €€€€Ø OÐ OÐ OÐ OÐ OÐ OðA2ð A2ð A2ð A2ð A2ñ A2ô A2ð A2ð A2ð A2r;   