§
    6ý®jz  ã                   ó\   — d Z ddlZddlmc mZ ddlZddlm	Z	 ddl
mZ d„ Zd„ Zd„ Zd„ ZdS )	zE
Tests for HideoutNavigator (Shoreline Hideout Corridor Navigation).
é    N)Ú	MagicMock)ÚHideoutNavigatorc                  ó,  — t          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}||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 )Né 
  é   ©Úscreen_wÚscreen_hç      ð?©ú==)z/%(py2)s
{%(py2)s = %(py0)s.scale_x
} == %(py5)sÚnav)Úpy0Úpy2Úpy5zassert %(py7)sÚpy7)z/%(py2)s
{%(py2)s = %(py0)s.scale_y
} == %(py5)s)r   Úscale_xÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚscale_y)r   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8s         ú4C:\Projects\AutoPOE2\tests\test_hideout_navigator.pyÚtest_hideout_navigator_initr#   
   sÔ  € Ý
 D°4Ð
8Ñ
8Ô
8€CØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐó    c                  ó  ‡‡— g } t          dd| j        ¬¦  «        }g Šˆfd„}g Šˆfd„}d„ }|                     |||d¬¦  «        }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}}t          ‰¦  «        }d}
||
k    }|sòt          j        d
|fd||
f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd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}||k    }|slt          j        d
|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}d}‰d         }||v }|slt          j        d|fd ||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}dS )!uN   Kiá»ƒm tra dá»«ng sá»›m khi phÃ¡t hiá»‡n Map Device quang há»�c sau cháº·ng 1.r   r   ©r	   r
   Úlog_callbackc                 ó8   •— ‰                      | ||f¦  «         d S ©N©Úappend©ÚdxÚdyÚdwellÚ
wasd_callss      €r"   Úmock_send_wasdz9test_navigate_corridor_early_exit.<locals>.mock_send_wasd   ó#   ø€ Ø×Ò˜2˜r 5˜/Ñ*Ô*Ð*Ð*Ð*r$   c                 ó:   •— ‰                      | ¦  «         d| › d�S ©Nzmock/z.pngr*   ©Ú	step_nameÚcapture_callss    €r"   Úmock_capturez7test_navigate_corridor_early_exit.<locals>.mock_capture   ó(   ø€ Ø×Ò˜YÑ'Ô'Ð'Ø&�yÐ&Ð&Ð&Ð&r$   c                 ó   — d| v rdS dS )NÚLEG_1©i°  iX  ©i—  i…  © ©Úimg_paths    r"   Úmock_find_devicez;test_navigate_corridor_early_exit.<locals>.mock_find_device   s   € Ø�hÐÐØ�;Øˆ{r$   r=   ©Úsend_wasd_funcÚcapture_funcÚfind_map_device_funcÚfallback_posr<   r   ©z%(py0)s == %(py3)sÚpos©r   Úpy3úassert %(py5)sr   Né   ©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenr0   ©r   Úpy1rJ   Úpy6úassert %(py8)sÚpy8r   ©ç      ð¿r   g      ø?©z%(py1)s == %(py4)s©rP   Úpy4úassert %(py6)srQ   r;   )Úin)z%(py1)s in %(py4)s©r   r+   Ú#navigate_from_salvage_to_map_devicer   r   r   r   r   r   r   r   rN   ©Úlogsr   r1   r8   rA   rH   Ú@py_assert2r   Ú@py_format4r    Ú@py_assert5r   Ú@py_format7Ú@py_format9Ú@py_assert0r   Ú@py_format5r7   r0   s                    @@r"   Ú!test_navigate_corridor_early_exitrf      sË  øø€ à€DÝ
 D°4ÀdÄkÐ
RÑ
RÔ
R€Cà€Jð+ð +ð +ð +ð +ð €Mð'ð 'ð 'ð 'ð 'ð
ð ð ð
 ×
1Ò
1Ø%Ø!Ø-Ø ð	 2ñ ô €Cð Ðˆ3�+ÒÐÐÐÕÔÐÐÐÐˆ3�+ÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔ�+ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÝˆz‰?Œ?Ð˜aÐˆ?˜aÒÐÐÐÕÔÐÐÐÐˆ?˜aÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆzÑÔÐÕÔˆzÑÔÐÐÕÔˆ?ÑÔÕÔ˜aÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØ�aŒ=Ð,Ð,Ð,ˆ=Ð,Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆ=Ð,Ð,Ñ,Ô,Õ,Ô,ˆ=Ñ,Ô,Õ,Ô,Ð,Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÐ&�m AÔ&Ð&ˆ7Ð&Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ7Ð&Ð&Ñ&Ô&Õ&Ô&ˆ7Ñ&Ô&Õ&Ô&Ð&Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&r$   c                  ó6	  ‡‡— g } t          dd| j        ¬¦  «        }g Šˆfd„}g Šˆfd„}d„ }|                     |||d¬¦  «        }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}}t          ‰¦  «        }d}
||
k    }|sòt          j        d
|fd||
f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd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}||k    }|slt          j        d
|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}‰d         }d}||k    }|slt          j        d
|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}‰d          }d!}||k    }|slt          j        d
|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}}t          ‰¦  «        }d"}
||
k    }|sòt          j        d
|fd||
f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd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 )$u\   Kiá»ƒm tra hoÃ n thÃ nh Ä‘á»§ 3 cháº·ng khi chá»‰ nhÃ¬n tháº¥y Map Device á»Ÿ Ä‘Ã­ch Ä‘áº¿n.r   r   r&   c                 ó8   •— ‰                      | ||f¦  «         d S r)   r*   r,   s      €r"   r1   z:test_navigate_corridor_full_3_legs.<locals>.mock_send_wasd7   r2   r$   c                 ó:   •— ‰                      | ¦  «         d| › d�S r4   r*   r5   s    €r"   r8   z8test_navigate_corridor_full_3_legs.<locals>.mock_capture;   r9   r$   c                 ó   — d| v rdS dS )NÚCOMPLETE©i~  iv  r=   r>   r?   s    r"   rA   z<test_navigate_corridor_full_3_legs.<locals>.mock_find_device@   s   € Ø˜Ð!Ð!Ø�;Øˆ{r$   r=   rB   rl   r   rG   rH   rI   rK   r   Né   rM   rN   r0   rO   rR   rS   r   rT   rV   rW   rY   rQ   rL   )rU   rU   g      @é   )g        rU   gÍÌÌÌÌÌü?é   r7   r[   r]   s                    @@r"   Ú"test_navigate_corridor_full_3_legsrp   1   s”  øø€ à€DÝ
 D°4ÀdÄkÐ
RÑ
RÔ
R€Cà€Jð+ð +ð +ð +ð +ð €Mð'ð 'ð 'ð 'ð 'ð
ð ð ð
 ×
1Ò
1Ø%Ø!Ø-Ø ð	 2ñ ô €Cð Ðˆ3�+ÒÐÐÐÕÔÐÐÐÐˆ3�+ÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔ�+ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÝˆz‰?Œ?Ð˜aÐˆ?˜aÒÐÐÐÕÔÐÐÐÐˆ?˜aÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆzÑÔÐÕÔˆzÑÔÐÐÕÔˆ?ÑÔÕÔ˜aÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØ�aŒ=Ð,Ð,Ð,ˆ=Ð,Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆ=Ð,Ð,Ñ,Ô,Õ,Ô,ˆ=Ñ,Ô,Õ,Ô,Ð,Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø�aŒ=Ð-Ð-Ð-ˆ=Ð-Ò-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-ˆ=Ð-Ð-Ñ-Ô-Õ-Ô-ˆ=Ñ-Ô-Õ-Ô-Ð-Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø�aŒ=Ð,Ð,Ð,ˆ=Ð,Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆ=Ð,Ð,Ñ,Ô,Õ,Ô,ˆ=Ñ,Ô,Õ,Ô,Ð,Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ýˆ}ÑÔÐ" Ð"Ð Ò"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"Ð Ð"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"�3Ñ"Ô"Ð"Õ"Ô"�3Ñ"Ô"Ð"Ð"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆ}Ñ"Ô"Ð"Õ"Ô"ˆ}Ñ"Ô"Ð"Ð"Õ"Ô"ÐÑ"Ô"Õ"Ô" Ñ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"r$   c                  ó¨  — ddl } d}| j                             |¦  «        �r0t          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
        |¦  «        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}x}}dS dS )uA   Kiá»ƒm tra nháº­n diá»‡n Salvage Bench trÃªn áº£nh chá»¥p tháº­t.r   Nz2captures\20260917_195750_774_LIVE_VERIFICATION.pngi¥  i{  r   T)Úis)zY%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.is_at_salvage_bench
}(%(py3)s)
} is %(py8)sr   Úreal_img)r   r   rJ   r   rS   zassert %(py10)sÚpy10)ÚosÚpathÚexistsr   Úis_at_salvage_benchr   r   r   r   r   r   r   r   )	ru   rs   r   r   r   Ú@py_assert7Ú@py_assert6rc   Ú@py_format11s	            r"   Ú%test_is_at_salvage_bench_real_capturer|   T   s‰  € à€I€I€IØD€HØ	„w‡~‚~�hÑÔñ 9Ý¨°sÐ;Ñ;Ô;ˆØÔ&Ð8Ð&Ð& xÑ0Ô0Ð8°DÐ8Ð0°DÐ8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð0°DÐ8Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8ˆsÑ8Ô8Ð8Õ8Ô8ˆsÑ8Ô8Ð8Ð8Õ8Ô8Ð&Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8 xÑ8Ô8Ð8Õ8Ô8 xÑ8Ô8Ð8Ð8Õ8Ô8Ð0Ñ8Ô8Õ8Ô8°DÑ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Ð8Ð8Ð8Ð8ð9ð 9r$   )Ú__doc__Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   ÚpytestÚunittest.mockr   Ú$src.assistant_tool.hideout_navigatorr   r#   rf   rp   r|   r>   r$   r"   ú<module>r…      s    ððð ð € € € € € € € € € € € € €€€€Ø #Ð #Ð #Ð #Ð #Ð #Ø AÐ AÐ AÐ AÐ AÐ Aðð ð ð'ð 'ð 'ðB #ð  #ð  #ðF9ð 9ð 9ð 9ð 9r$   