§
    ”¢ªj8,  ã                   óÜ   — d Z ddlZddlmc mZ ddlmZm	Z	 ddl
Z
ddlmZ ddlmZmZmZmZ ddlmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZmZ d„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'dS )u½  AutoPOE2 - Unit Tests for Stash & Inventory Management (Doc 63 / SSoT 2026).

Kiá»ƒm thá»­ toÃ n diá»‡n há»‡ thá»‘ng Stash:
- TÃ­nh toÃ¡n tá»�a Ä‘á»™ vÃ  co giÃ£n Ä‘á»™ phÃ¢n giáº£i 1080p -> 1440p.
- PhÃ¢n loáº¡i tÃªn Tab Stash.
- Ä�Ã¡nh giÃ¡ quy táº¯c cáº¥t Ä‘á»“ (Deposit) vÃ  giá»¯ láº¡i (Keep) theo Pickit.
- Ä�Ã¡nh giÃ¡ quy táº¯c rÃºt Waystone (Withdraw).
- Giáº£ láº­p chu trÃ¬nh Ä‘iá»�u phá»‘i StashOrchestrator khÃ´ng cáº§n game client.
é    N)Ú	MagicMockÚpatch)ÚImage)ÚStashActionÚStashConfigÚStashTabTypeÚTAB_NAME_MAPPINGS)ÚStashTabInfoÚStashUiScanner)ÚStashItemMatrixÚSlotItemInfo)ÚStashEvaluator)ÚStashOrchestrator)ÚItemCategoryÚItemInspectionReportÚ
ItemRarityc                  ó"  — t          d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}}|  
                    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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}}| 
                    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}}dS )uN   Kiá»ƒm tra co giÃ£n tá»�a Ä‘á»™ tham chiáº¿u 1080p sang 1440p (tá»· lá»‡ 4/3).i€  i8  ©Úscreen_wÚscreen_hr   )i  ih  ©ú==©z%(py0)s == %(py3)sÚinv_0_0_1080©Úpy0Úpy3úassert %(py5)sÚpy5N)éÎ   éØ   Ústash_0_0_1080é 
  é   )éÃ  é6  Úinv_0_0_1440)i  i   Ústash_0_0_1440)r   Úget_inventory_slot_centerÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚget_stash_slot_center)
Úmatrix_1080r   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6r"   Úmatrix_1440r'   r(   s
             ú0C:\Projects\AutoPOE2\tests\test_stash_manager.pyÚtest_stash_coordinates_scalingr:       sŒ  € õ "¨4¸$Ð?Ñ?Ô?€KØ×8Ò8¸¸AÑ>Ô>€LØ&Ð&ˆ<˜;Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ<˜;Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ<Ñ&Ô&Ð&Õ&Ô&ˆ<Ñ&Ô&Ð&Ð&Õ&Ô&˜;Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&à ×6Ò6°q¸!Ñ<Ô<€NØ'Ð'ˆ>˜ZÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ>˜ZÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆ>Ñ'Ô'Ð'Õ'Ô'ˆ>Ñ'Ô'Ð'Ð'Õ'Ô'˜ZÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'õ "¨4¸$Ð?Ñ?Ô?€KØ×8Ò8¸¸AÑ>Ô>€LØ&Ð&ˆ<˜;Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ<˜;Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ<Ñ&Ô&Ð&Õ&Ô&ˆ<Ñ&Ô&Ð&Ð&Õ&Ô&˜;Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&à ×6Ò6°q¸!Ñ<Ô<€NØ'Ð'ˆ>˜ZÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ>˜ZÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆ>Ñ'Ô'Ð'Õ'Ô'ˆ>Ñ'Ô'Ð'Ð'Õ'Ô'˜ZÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ó    c            	      ón  — t          dd¬¦  «        } | j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}| j        }d} ||¦  «        }t          j        }||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        | ¦  «        rt	          j	        | ¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        ndt	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}}dS )u9   Kiá»ƒm tra nháº­n diá»‡n vÃ  phÃ¢n loáº¡i tÃªn Stash Tab.r#   r$   r   ÚCURRENCYr   )zx%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._classify_tab_name
}(%(py4)s)
} == %(py10)s
{%(py10)s = %(py8)s.CURRENCY
}Úscannerr   )r   Úpy2Úpy4Úpy6Úpy8Úpy10zassert %(py12)sÚpy12NÚCurrÚ	Waystones)zy%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._classify_tab_name
}(%(py4)s)
} == %(py10)s
{%(py10)s = %(py8)s.WAYSTONES
}zT16 MapsÚGEMS)zt%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._classify_tab_name
}(%(py4)s)
} == %(py10)s
{%(py10)s = %(py8)s.GEMS
}z
Uncut GemsÚ	FRAGMENTS)zy%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._classify_tab_name
}(%(py4)s)
} == %(py10)s
{%(py10)s = %(py8)s.FRAGMENTS
}zDump 1)zt%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._classify_tab_name
}(%(py4)s)
} == %(py10)s
{%(py10)s = %(py8)s.DUMP
}z
Random Tab)zw%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._classify_tab_name
}(%(py4)s)
} == %(py10)s
{%(py10)s = %(py8)s.GENERAL
})r   Ú_classify_tab_namer   r=   r*   r+   r,   r-   r.   r/   r0   r1   Ú	WAYSTONESrG   rH   ÚDUMPÚGENERAL)r>   r5   Ú@py_assert3Ú@py_assert5Ú@py_assert9Ú@py_assert7Ú@py_format11Ú@py_format13s           r9   Útest_tab_name_classificationrS   3   sz  € å d°TÐ:Ñ:Ô:€GØÔ%ÐJ jÐJÐ%Ð% jÑ1Ô1ÐJµ\Ô5JÐJÐ1Ð5JÒJÐJÐJÑJÕJÔJÐJÐJÐJÐJÐ1Ð5JÐJÑJÔJÐJÕJÔJÑJÔJÐJÐJÕJÔJˆ7ÑJÔJÐJÕJÔJˆ7ÑJÔJÐJÐJÕJÔJÐ%ÑJÔJÕJÔJ jÑJÔJÕJÔJÐ1ÑJÔJÐJÕJÔJÑJÔJÐJÐJÕJÔJµ\ÑJÔJÐJÕJÔJµ\ÑJÔJÐJÐJÕJÔJÐ5JÑJÔJÐJÐJÑJÐJÐJÐJÐJÐJÑJÐJÕJÕJÔJÐJÑJÔJÑJÔJÐJÐJÐJÐJÐJÐJÐJÐJÐJÐJÐJØÔ%ÐF fÐFÐ%Ð% fÑ-Ô-ÐFµÔ1FÐFÐ-Ð1FÒFÐFÐFÑFÕFÔFÐFÐFÐFÐFÐ-Ð1FÐFÑFÔFÐFÕFÔFÑFÔFÐFÐFÕFÔFˆ7ÑFÔFÐFÕFÔFˆ7ÑFÔFÐFÐFÕFÔFÐ%ÑFÔFÕFÔF fÑFÔFÕFÔFÐ-ÑFÔFÐFÕFÔFÑFÔFÐFÐFÕFÔFµÑFÔFÐFÕFÔFµÑFÔFÐFÐFÕFÔFÐ1FÑFÔFÐFÐFÑFÐFÐFÐFÐFÐFÑFÐFÕFÕFÔFÐFÑFÔFÑFÔFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFØÔ%ÐL kÐLÐ%Ð% kÑ2Ô2ÐLµlÔ6LÐLÐ2Ð6LÒLÐLÐLÑLÕLÔLÐLÐLÐLÐLÐ2Ð6LÐLÑLÔLÐLÕLÔLÑLÔLÐLÐLÕLÔLˆ7ÑLÔLÐLÕLÔLˆ7ÑLÔLÐLÐLÕLÔLÐ%ÑLÔLÕLÔL kÑLÔLÕLÔLÐ2ÑLÔLÐLÕLÔLÑLÔLÐLÐLÕLÔLµlÑLÔLÐLÕLÔLµlÑLÔLÐLÐLÕLÔLÐ6LÑLÔLÐLÐLÑLÐLÐLÐLÐLÐLÑLÐLÕLÕLÔLÐLÑLÔLÑLÔLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLØÔ%ÐK jÐKÐ%Ð% jÑ1Ô1ÐKµ\Ô5KÐKÐ1Ð5KÒKÐKÐKÑKÕKÔKÐKÐKÐKÐKÐ1Ð5KÐKÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔKˆ7ÑKÔKÐKÕKÔKˆ7ÑKÔKÐKÐKÕKÔKÐ%ÑKÔKÕKÔK jÑKÔKÕKÔKÐ1ÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔKµ\ÑKÔKÐKÕKÔKµ\ÑKÔKÐKÐKÕKÔKÐ5KÑKÔKÐKÐKÑKÐKÐKÐKÐKÐKÑKÐKÕKÕKÔKÐKÑKÔKÑKÔKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKØÔ%ÐB fÐBÐ%Ð% fÑ-Ô-ÐBµÔ1BÐBÐ-Ð1BÒBÐBÐBÑBÕBÔBÐBÐBÐBÐBÐ-Ð1BÐBÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔBˆ7ÑBÔBÐBÕBÔBˆ7ÑBÔBÐBÐBÕBÔBÐ%ÑBÔBÕBÔB fÑBÔBÕBÔBÐ-ÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔBµÑBÔBÐBÕBÔBµÑBÔBÐBÐBÕBÔBÐ1BÑBÔBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBØÔ%ÐH lÐHÐ%Ð% lÑ3Ô3ÐHµ|Ô7HÐHÐ3Ð7HÒHÐHÐHÑHÕHÔHÐHÐHÐHÐHÐ3Ð7HÐHÑHÔHÐHÕHÔHÑHÔHÐHÐHÕHÔHˆ7ÑHÔHÐHÕHÔHˆ7ÑHÔHÐHÐHÕHÔHÐ%ÑHÔHÕHÔH lÑHÔHÕHÔHÐ3ÑHÔHÐHÕHÔHÑHÔHÐHÐHÕHÔHµ|ÑHÔHÐHÕHÔHµ|ÑHÔHÐHÐHÕHÔHÐ7HÑHÔHÐHÐHÑHÐHÐHÐHÐHÐHÑHÐHÕHÕHÔHÐHÑHÔHÑHÔHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHØÔ%ÐL kÐLÐ%Ð% kÑ2Ô2ÐLµlÔ6LÐLÐ2Ð6LÒLÐLÐLÑLÕLÔLÐLÐLÐLÐLÐ2Ð6LÐLÑLÔLÐLÕLÔLÑLÔLÐLÐLÕLÔLˆ7ÑLÔLÐLÕLÔLˆ7ÑLÔLÐLÐLÕLÔLÐ%ÑLÔLÕLÔL kÑLÔLÕLÔLÐ2ÑLÔLÐLÕLÔLÑLÔLÐLÐLÕLÔLµlÑLÔLÐLÕLÔLµlÑLÔLÐLÐLÕLÔLÐ6LÑLÔLÐLÐLÑLÐLÐLÐLÐLÐLÑLÐLÕLÕLÔLÐLÑLÔLÑLÔLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLØÔ%ÐD hÐDÐ%Ð% hÑ/Ô/ÐDµ<Ô3DÐDÐ/Ð3DÒDÐDÐDÑDÕDÔDÐDÐDÐDÐDÐ/Ð3DÐDÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔDˆ7ÑDÔDÐDÕDÔDˆ7ÑDÔDÐDÐDÕDÔDÐ%ÑDÔDÕDÔD hÑDÔDÕDÔDÐ/ÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔDµ<ÑDÔDÐDÕDÔDµ<ÑDÔDÐDÐDÕDÔDÐ3DÑDÔDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÕDÕDÔDÐDÑDÔDÑDÔDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDØÔ%ÐK lÐKÐ%Ð% lÑ3Ô3ÐKµ|Ô7KÐKÐ3Ð7KÒKÐKÐKÑKÕKÔKÐKÐKÐKÐKÐ3Ð7KÐKÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔKˆ7ÑKÔKÐKÕKÔKˆ7ÑKÔKÐKÐKÕKÔKÐ%ÑKÔKÕKÔK lÑKÔKÕKÔKÐ3ÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔKµ|ÑKÔKÐKÕKÔKµ|ÑKÔKÐKÐKÕKÔKÐ7KÑKÔKÐKÐKÑKÐKÐKÐKÐKÐKÑKÐKÕKÕKÔKÐKÑKÔKÑKÔKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKr;   c                  ó†  — t          d¬¦  «        } t          | ¬¦  «        }t          ddt          j        ¬¦  «        }|                     |¦  «        }|j        }t          j        }||k    }|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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}t          ddt          j        ¬¦  «        }	|                     |	d¬¦  «        }
|
j        }t          j        }||k    }|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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|
j        }t&          j        }||k    }|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        t&          ¦  «        rt          j        t&          ¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|                     |	d¬¦  «        }|j        }t          j        }||k    }|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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|j        }t&          j        }||k    }|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        t&          ¦  «        rt          j        t&          ¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}t          t          d¬¦  «        ¬¦  «        }t-          d¦  «        D �]G}|                     |	|¬¦  «        }|j        }t          j        }||k    }|�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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }t          j        d|› d�¦  «        dz   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}�ŒI|                     |	d¬¦  «        }|j        }t          j        }||k    }|�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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }t          j        d¦  «        dz   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}t          ddt          j        ¬¦  «        }|                     |¦  «        }|j        }t          j        }||k    }|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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|j        }t&          j        }||k    }|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        t&          ¦  «        rt          j        t&          ¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}t          d!d"t          j        ¬¦  «        }|                     |¦  «        }|j        }t          j        }||k    }|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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|j        }t&          j        }||k    }|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        t&          ¦  «        rt          j        t&          ¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}t          d%d&t          j        t6          j        ¬'¦  «        }|                     |¦  «        }|j        }t          j        }||k    }|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        t          ¦  «        rt          j        t          ¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|j        }t&          j        }||k    }|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        t&          ¦  «        rt          j        t&          ¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}dS )*uP   Kiá»ƒm tra logic phÃ¢n luá»“ng vÃ  ra quyáº¿t Ä‘á»‹nh cáº¥t Ä‘á»“ / giá»¯ láº¡i.é   ©Úkeep_waystones_count©ÚconfigzScroll of Wisdom)Ú	item_nameÚ	base_typeÚcategoryr   )zH%(py2)s
{%(py2)s = %(py0)s.action
} == %(py6)s
{%(py6)s = %(py4)s.KEEP
}Úd1r   ©r   r?   r@   rA   úassert %(py8)srB   NzWaystone (Tier 15)ÚWaystoner   )Úcurrent_waystones_keptÚd2)zV%(py2)s
{%(py2)s = %(py0)s.target_tab_type
} == %(py6)s
{%(py6)s = %(py4)s.WAYSTONES
}r   )zK%(py2)s
{%(py2)s = %(py0)s.action
} == %(py6)s
{%(py6)s = %(py4)s.DEPOSIT
}Úd3é   Údecision_keepz	Waystone u     pháº£i Ä‘Æ°á»£c KEEP khi keep=5z
>assert %(py8)sÚdecision_depu3   Waystone thá»© 6 pháº£i Ä‘Æ°á»£c DEPOSIT khi keep=5z	Chaos OrbÚd4)zU%(py2)s
{%(py2)s = %(py0)s.target_tab_type
} == %(py6)s
{%(py6)s = %(py4)s.CURRENCY
}zUncut Skill Gem (Tier 19)zUncut Skill GemÚd5)zQ%(py2)s
{%(py2)s = %(py0)s.target_tab_type
} == %(py6)s
{%(py6)s = %(py4)s.GEMS
}zSpire of TormentzGothic Quarterstaff)rZ   r[   r\   ÚrarityÚd6)zQ%(py2)s
{%(py2)s = %(py0)s.target_tab_type
} == %(py6)s
{%(py6)s = %(py4)s.DUMP
})r   r   r   r   r=   Úevaluate_inventory_itemÚactionr   ÚKEEPr*   r+   r,   r-   r.   r/   r0   r1   ÚWAYSTONEÚtarget_tab_typer   rJ   ÚDEPOSITÚrangeÚ_format_assertmsgÚOTHERrG   ÚWEAPONr   ÚRARErK   )ÚcfgÚ	evaluatorÚscrollr]   r5   rN   rM   Ú@py_format7Ú@py_format9Ú	waystone1rb   rc   Úevaluator_5Úire   rf   Úchaosrg   Úgemrh   Úgearrj   s                         r9   Ú%test_stash_evaluator_deposit_and_keepr�   A   sŒ  € å
¨1Ð
-Ñ
-Ô
-€CÝ cÐ*Ñ*Ô*€Iõ "Ø$Ø$ÝÔ&ðñ ô €Fð
 
×	*Ò	*¨6Ñ	2Ô	2€BØŒ9Ð(�Ô(Ð(ˆ9Ð(Ò(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆ9Ð(Ð(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆ2Ñ(Ô(Ð(Õ(Ô(ˆ2Ñ(Ô(Ð(Ð(Õ(Ô(ˆ9Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(�Ñ(Ô(Ð(Õ(Ô(�Ñ(Ô(Ð(Ð(Õ(Ô(Ð(Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(õ %Ø&ØÝÔ&ðñ ô €Ið
 
×	*Ò	*¨9ÈQÐ	*Ñ	OÔ	O€BØŒ9Ð(�Ô(Ð(ˆ9Ð(Ò(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆ9Ð(Ð(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆ2Ñ(Ô(Ð(Õ(Ô(ˆ2Ñ(Ô(Ð(Ð(Õ(Ô(ˆ9Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(�Ñ(Ô(Ð(Õ(Ô(�Ñ(Ô(Ð(Ð(Õ(Ô(Ð(Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÔÐ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ˆ2Ñ7Ô7Ð7Õ7Ô7ˆ2Ñ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Ô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Ð7Ð7ð 
×	*Ò	*¨9ÈQÐ	*Ñ	OÔ	O€BØŒ9Ð+�Ô+Ð+ˆ9Ð+Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+ˆ9Ð+Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Ð+Õ+Ô+ˆ9Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+�Ñ+Ô+Ð+Õ+Ô+�Ñ+Ô+Ð+Ð+Õ+Ô+Ð+Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔÐ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ˆ2Ñ7Ô7Ð7Õ7Ô7ˆ2Ñ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Ô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Ð7Ð7õ !­ÈÐ(KÑ(KÔ(KÐLÑLÔL€KÝ�1‰XŒXð iñ iˆØ#×;Ò;¸IÐ^_Ð;Ñ`Ô`ˆØÔ#Ðh¥{Ô'7ÐhÐ#Ð'7Ò7ÐhÐhÑhÕhÔhÐhÐhÐhÐhÐ#Ð'7ÐhÑhÔhÐhÕhÔhÑhÔhÐhÐhÕhÔhˆ}ÑhÔhÐhÕhÔhˆ}ÑhÔhÐhÐhÕhÔhÐ#ÑhÔhÐhÕhÔhÑhÔhÐhÐhÕhÔh¥{ÑhÔhÐhÕhÔh¥{ÑhÔhÐhÐhÕhÔhÐ'7ÑhÔhÐhÐhÑhÐhÕhÔhÐ9hÀQÐ9hÐ9hÐ9hÑhÔhÐhÑhÐhÐhÐhÑhÐhÕhÕhÔhÐhÑhÔhÑhÔhÐhÐhÐhÐhÐhÐhÐhÑhØ×6Ò6°yÐYZÐ6Ñ[Ô[€LØÔÐl¥+Ô"5ÐlÐÐ"5Ò5ÐlÐlÑlÕlÔlÐlÐlÐlÐlÐÐ"5ÐlÑlÔlÐlÕlÔlÑlÔlÐlÐlÕlÔlˆ<ÑlÔlÐlÕlÔlˆ<ÑlÔlÐlÐlÕlÔlÐÑlÔlÐlÕlÔlÑlÔlÐlÐlÕlÔl¥+ÑlÔlÐlÕlÔl¥+ÑlÔlÐlÐlÕlÔlÐ"5ÑlÔlÐlÐlÑlÐlÕlÔlÐ7lÑlÔlÐlÑlÐlÐlÐlÑlÐlÕlÕlÔlÐlÑlÔlÑlÔlÐlÐlÐlÐlÐlÐlÐlõ !ØØÝÔ&ðñ ô €Eð
 
×	*Ò	*¨5Ñ	1Ô	1€BØŒ9Ð+�Ô+Ð+ˆ9Ð+Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+ˆ9Ð+Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Ð+Õ+Ô+ˆ9Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+�Ñ+Ô+Ð+Õ+Ô+�Ñ+Ô+Ð+Ð+Õ+Ô+Ð+Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔÐ6¥Ô!6Ð6ÐÐ!6Ò6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6ÐÐ!6Ð6Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6ˆ2Ñ6Ô6Ð6Õ6Ô6ˆ2Ñ6Ô6Ð6Ð6Õ6Ô6ÐÑ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6¥Ñ6Ô6Ð6Õ6Ô6¥Ñ6Ô6Ð6Ð6Õ6Ô6Ð!6Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6õ Ø-Ø#ÝÔ#ðñ ô €Cð
 
×	*Ò	*¨3Ñ	/Ô	/€BØŒ9Ð+�Ô+Ð+ˆ9Ð+Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+ˆ9Ð+Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Ð+Õ+Ô+ˆ9Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+�Ñ+Ô+Ð+Õ+Ô+�Ñ+Ô+Ð+Ð+Õ+Ô+Ð+Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔÐ2¥Ô!2Ð2ÐÐ!2Ò2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2ÐÐ!2Ð2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆ2Ñ2Ô2Ð2Õ2Ô2ˆ2Ñ2Ô2Ð2Ð2Õ2Ô2ÐÑ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2¥Ñ2Ô2Ð2Õ2Ô2¥Ñ2Ô2Ð2Ð2Õ2Ô2Ð!2Ñ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2õ  Ø$Ø'ÝÔ$ÝŒð	ñ ô €Dð 
×	*Ò	*¨4Ñ	0Ô	0€BØŒ9Ð+�Ô+Ð+ˆ9Ð+Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+ˆ9Ð+Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Õ+Ô+ˆ2Ñ+Ô+Ð+Ð+Õ+Ô+ˆ9Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+�Ñ+Ô+Ð+Õ+Ô+�Ñ+Ô+Ð+Ð+Õ+Ô+Ð+Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔÐ2¥Ô!2Ð2ÐÐ!2Ò2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2ÐÐ!2Ð2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆ2Ñ2Ô2Ð2Õ2Ô2ˆ2Ñ2Ô2Ð2Ð2Õ2Ô2ÐÑ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2¥Ñ2Ô2Ð2Õ2Ô2¥Ñ2Ô2Ð2Ð2Õ2Ô2Ð!2Ñ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2r;   c                  ó  — t          d¬¦  «        } t          | ¬¦  «        }|j        }d} ||¬¦  «        }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        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}x}}|j        }d} ||¬¦  «        }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        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}x}}|j        }d} ||¬¦  «        }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        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}x}}dS )uI   Kiá»ƒm tra Ä‘iá»�u kiá»‡n rÃºt Waystone bá»• sung khi tÃºi Ä‘á»“ thiáº¿u.rU   rV   rX   r   )Ú current_inventory_waystone_countT©Úis)z%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.should_withdraw_waystone
}(current_inventory_waystone_count=%(py4)s)
} is %(py9)srw   )r   r?   r@   rA   Úpy9zassert %(py11)sÚpy11NFé   )r   r   Úshould_withdraw_waystoner*   r+   r,   r-   r.   r/   r0   r1   )	rv   rw   r5   rM   rN   Ú@py_assert8rP   Ú@py_format10Ú@py_format12s	            r9   Útest_stash_evaluator_withdrawr�   †   sŸ  € å
¨1Ð
-Ñ
-Ô
-€CÝ cÐ*Ñ*Ô*€Ið Ô-ÐYÈqÐYÐ-Ð-ÈqÐQÑQÔQÐYÐUYÐYÐQÐUYÐYÐYÐYÐYÕYÔYÐYÐYÐYÐYÐQÐUYÐYÑYÔYÐYÕYÔYÑYÔYÐYÐYÕYÔYˆ9ÑYÔYÐYÕYÔYˆ9ÑYÔYÐYÐYÕYÔYÐ-ÑYÔYÕYÔYÈqÑYÔYÕYÔYÐQÑYÔYÕYÔYÐUYÑYÔYÐYÐYÑYÐYÐYÐYÐYÐYÑYÐYÕYÕYÔYÐYÑYÔYÑYÔYÐYÐYÐYÐYÐYÐYÐYÐYÐYÐYÐYàÔ-ÐZÈqÐZÐ-Ð-ÈqÐQÑQÔQÐZÐUZÐZÐQÐUZÐZÐZÐZÐZÕZÔZÐZÐZÐZÐZÐQÐUZÐZÑZÔZÐZÕZÔZÑZÔZÐZÐZÕZÔZˆ9ÑZÔZÐZÕZÔZˆ9ÑZÔZÐZÐZÕZÔZÐ-ÑZÔZÕZÔZÈqÑZÔZÕZÔZÐQÑZÔZÕZÔZÐUZÑZÔZÐZÐZÑZÐZÐZÐZÐZÐZÑZÐZÕZÕZÔZÐZÑZÔZÑZÔZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZàÔ-ÐZÈqÐZÐ-Ð-ÈqÐQÑQÔQÐZÐUZÐZÐQÐUZÐZÐZÐZÐZÕZÔZÐZÐZÐZÐZÐQÐUZÐZÑZÔZÐZÕZÔZÑZÔZÐZÐZÕZÔZˆ9ÑZÔZÐZÕZÔZˆ9ÑZÔZÐZÐZÕZÔZÐ-ÑZÔZÕZÔZÈqÑZÔZÕZÔZÐQÑZÔZÕZÔZÐUZÑZÔZÐZÐZÑZÐZÐZÐZÐZÐZÑZÐZÕZÕZÔZÐZÑZÔZÑZÔZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZÐZr;   c            
      óT  — t          dd¬¦  «        } t          j        ddd¬¦  «        }dd	d	d
ddddœdœgdœdddddddœdœgdœdddddddœdœgdœgi}t          d|¬¦  «        5  |                      |¦  «        }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"         }	|	j        }d	}||k    }|st          j        d|fd#||f¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }dd |iz  }t          t          j        |¦  «        ¦  «        ‚d!x}	x}x}}|d"         }	|	j        }t           j        }
||
k    }|sÇt          j        d|fd%||
f¦  «        t          j        |	¦  «        t          j        |¦  «        d&t          j	        ¦   «         v st          j
        t           ¦  «        rt          j        t           ¦  «        nd&t          j        |
¦  «        d'œz  }d(d)|iz  }t          t          j        |¦  «        ¦  «        ‚d!x}	x}x}}
|d*         }	|	j        }d}||k    }|st          j        d|fd#||f¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }dd |iz  }t          t          j        |¦  «        ¦  «        ‚d!x}	x}x}}|d*         }	|	j        }t           j        }
||
k    }|sÇt          j        d|fd+||
f¦  «        t          j        |	¦  «        t          j        |¦  «        d&t          j	        ¦   «         v st          j
        t           ¦  «        rt          j        t           ¦  «        nd&t          j        |
¦  «        d'œz  }d(d)|iz  }t          t          j        |¦  «        ¦  «        ‚d!x}	x}x}}
|d,         }	|	j        }d}||k    }|st          j        d|fd#||f¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }dd |iz  }t          t          j        |¦  «        ¦  «        ‚d!x}	x}x}}|d,         }	|	j        }t           j        }
||
k    }|sÇt          j        d|fd-||
f¦  «        t          j        |	¦  «        t          j        |¦  «        d&t          j	        ¦   «         v st          j
        t           ¦  «        rt          j        t           ¦  «        nd&t          j        |
¦  «        d'œz  }d(d)|iz  }t          t          j        |¦  «        ¦  «        ‚d!x}	x}x}}
|                      t           j        ¦  «        }d!}||u}|s—t          j        d.|fd/||f¦  «        d0t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd0t          j        |¦  «        d1œz  }d2d3|iz  }t          t          j        |¦  «        ¦  «        ‚d!x}}|j        }d	}||k    }|sªt          j        d|fd4||f¦  «        d0t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd0t          j        |¦  «        t          j        |¦  «        d5œz  }d6d7|iz  }t          t          j        |¦  «        ¦  «        ‚d!x}x}}|                      d8¦  «        }d!}||u}|s—t          j        d.|fd/||f¦  «        d9t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd9t          j        |¦  «        d1œz  }d2d3|iz  }t          t          j        |¦  «        ¦  «        ‚d!x}}|j        }t           j        }||k    }|sòt          j        d|fd:||f¦  «        d9t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd9t          j        |¦  «        d&t          j	        ¦   «         v st          j
        t           ¦  «        rt          j        t           ¦  «        nd&t          j        |¦  «        d;œz  }dd |iz  }t          t          j        |¦  «        ¦  «        ‚d!x}x}}d!d!d!¦  «         d!S # 1 swxY w Y   d!S )<u,   Kiá»ƒm tra quÃ©t Tab Bar báº±ng Mock WinOCR.r#   r$   r   ÚRGB©r#   r$   )é   r‘   r‘   ©ÚcolorÚlinesÚCurrencyé2   r‘   éP   é   )ÚxÚyÚwidthÚheight)ÚtextÚbounding_rect)r�   ÚwordsrF   é    éZ   ÚGemsi  é<   zwinocr.recognize_pil_sync©Úreturn_valueé   r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚtabs)r   Úpy1r   rA   r_   rB   Nr   )z,%(py3)s
{%(py3)s = %(py1)s.name
} == %(py6)s)r©   r   rA   )zN%(py3)s
{%(py3)s = %(py1)s.tab_type
} == %(py7)s
{%(py7)s = %(py5)s.CURRENCY
}r   )r©   r   r   Úpy7úassert %(py9)sr†   rU   )zO%(py3)s
{%(py3)s = %(py1)s.tab_type
} == %(py7)s
{%(py7)s = %(py5)s.WAYSTONES
}rˆ   )zJ%(py3)s
{%(py3)s = %(py1)s.tab_type
} == %(py7)s
{%(py7)s = %(py5)s.GEMS
})úis not)z%(py0)s is not %(py3)sÚcurr_tabr   r   r   )z,%(py2)s
{%(py2)s = %(py0)s.name
} == %(py5)s©r   r?   r   úassert %(py7)srª   r`   Úway_tab)zO%(py2)s
{%(py2)s = %(py0)s.tab_type
} == %(py6)s
{%(py6)s = %(py4)s.WAYSTONES
}r^   )r   r   Únewr   Úscan_stash_tabsr§   r*   r+   r,   r-   r.   r/   r0   r1   ÚnameÚtab_typer   r=   rJ   rG   Úfind_tab_by_typeÚfind_tab_by_name)r>   Úfake_imgÚmock_ocr_resultr¨   r4   rN   Ú@py_assert4ry   rz   Ú@py_assert0Ú@py_assert6Ú@py_format8r‹   r­   r5   r6   r7   rM   r°   s                      r9   Útest_stash_ui_scanner_mock_ocrr½   “   s]  € å d°TÐ:Ñ:Ô:€Gõ Œy˜ °LÐAÑAÔA€Hð 	à"Ø#-ÀbÈrÐ\^ÐjlÐ@mÐ@mÐnÐnÐoðð ð
 $Ø#.ÀsÐQSÐ^`ÐlnÐAoÐAoÐpÐpÐqðð ð
 Ø#)À#ÈBÐY[ÐgiÐ<jÐ<jÐkÐkÐlðð ð
ð€Oõ" 
Ð*¸Ð	IÑ	IÔ	Ið :ð :Ø×&Ò& xÑ0Ô0ˆÝ�4‰yŒyÐ˜AÐˆy˜AŠ~ÐÐÐÕÔÐÐÐÐˆy˜AÐÑÔÐÕÔÑÔÐÐÕÔ�sÑÔÐÕÔ�sÑÔÐÐÐÕÔÑÔÐÐÕÔ�4ÑÔÐÕÔ�4ÑÔÐÐÕÔˆyÑÔÕÔ˜AÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØ�AŒwÐ)ˆwŒ|Ð)˜zÐ)ˆ|˜zÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)ˆ|˜zÐ)Ñ)Ô)Õ)Ô)ˆwÑ)Ô)Õ)Ô)ˆ|Ñ)Ô)Õ)Ô)˜zÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø�AŒwÐ8ˆwÔÐ8¥<Ô#8Ð8ÐÐ#8Ò8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8ÐÐ#8Ð8Ñ8Ô8Õ8Ô8ˆwÑ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Ñ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Ø�AŒwÐ*ˆwŒ|Ð*˜{Ð*ˆ|˜{Ò*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*ˆ|˜{Ð*Ñ*Ô*Õ*Ô*ˆwÑ*Ô*Õ*Ô*ˆ|Ñ*Ô*Õ*Ô*˜{Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø�AŒwÐ9ˆwÔÐ9¥<Ô#9Ð9ÐÐ#9Ò9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9ÐÐ#9Ð9Ñ9Ô9Õ9Ô9ˆwÑ9Ô9Õ9Ô9ÐÑ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9¥<Ñ9Ô9Ð9Õ9Ô9¥<Ñ9Ô9Ð9Ð9Õ9Ô9Ð#9Ñ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø�AŒwÐ%ˆwŒ|Ð%˜vÐ%ˆ|˜vÒ%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆ|˜vÐ%Ñ%Ô%Õ%Ô%ˆwÑ%Ô%Õ%Ô%ˆ|Ñ%Ô%Õ%Ô%˜vÑ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ø�AŒwÐ4ˆwÔÐ4¥<Ô#4Ð4ÐÐ#4Ò4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4ÐÐ#4Ð4Ñ4Ô4Õ4Ô4ˆwÑ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Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4ð ×+Ò+­LÔ,AÑBÔBˆØ#Ð#ˆx˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆx˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆxÑ#Ô#Ð#Õ#Ô#ˆxÑ#Ô#Ð#Ð#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#ØŒ}Ð* 
Ð*ˆ} 
Ò*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*ˆ} 
Ð*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆxÑ*Ô*Ð*Õ*Ô*ˆxÑ*Ô*Ð*Ð*Õ*Ô*ˆ}Ñ*Ô*Õ*Ô* 
Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*à×*Ò*¨:Ñ6Ô6ˆØ"Ð"ˆw˜dÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆw˜dÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆwÑ"Ô"Ð"Õ"Ô"ˆwÑ"Ô"Ð"Ð"Õ"Ô"˜dÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÔÐ9¥<Ô#9Ð9ÐÐ#9Ò9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9ÐÐ#9Ð9Ñ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9ˆwÑ9Ô9Ð9Õ9Ô9ˆwÑ9Ô9Ð9Ð9Õ9Ô9ÐÑ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9¥<Ñ9Ô9Ð9Õ9Ô9¥<Ñ9Ô9Ð9Ð9Õ9Ô9Ð#9Ñ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9ð#:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   Á%d+fæf!æ$f!c                  óâ  ‡— t          j        ddd¬¦  «        Št          d¬¦  «        } t          dd| ˆfd	„¬
¦  «        }d|_        t          j        |j        dd¬¦  «        5  t          j        |dd¬¦  «        5  t          d¦  «        5 }t          d¦  «        5 }t          j        |j        d¦  «        5 }t          ddddd¬¦  «        }t          ddddd¬¦  «        }t          ddddd¬¦  «        }t          j        |j	        d|||g¬¦  «        5  | 
                    ‰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}
}	|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"¦  «         n# 1 swxY w Y   |                     ¦   «          |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"¦  «         n# 1 swxY w Y   d"d"d"¦  «         n# 1 swxY w Y   d"d"d"¦  «         n# 1 swxY w Y   d"d"d"¦  «         n# 1 swxY w Y   d"d"d"¦  «         d"S # 1 swxY w Y   d"S ))uH   Kiá»ƒm tra chu trÃ¬nh Ä‘iá»�u phá»‘i StashOrchestrator vá»›i mock input.r�   r�   ©é
   rÀ   rÀ   r’   F©Úbackground_inputr#   r$   c                  ó   •— ‰ S ©N© ©r·   s   €r9   ú<lambda>z4test_stash_orchestrator_mock_cycle.<locals>.<lambda>É   ó   ø€ ˜X€ r;   ©r   r   rY   Úcapture_funcr   Úis_stash_openTr¤   Ú_ensure_focusz1src.assistant_tool.stash.stash_orchestrator.clickz6src.assistant_tool.stash.stash_orchestrator.ctrl_clickÚclose_stashr%   r&   )ÚcolÚrowÚcenter_xÚcenter_yÚis_occupiedrU   i	  rˆ   iO  Úscan_inventory_occupancy)Úinspect_items_liver   r   Ú	depositedr   r   r   N)z2%(py2)s
{%(py2)s = %(py0)s.call_count
} == %(py5)sÚmock_ctrl_clickr®   r¯   rª   Ú
mock_close)r   r±   r   r   Úhwndr   ÚobjectÚ
ui_scannerr   ÚmatrixÚdeposit_inventory_itemsr*   r+   r,   r-   r.   r/   r0   r1   Ú
call_countrÍ   )rv   ÚorchestratorÚ
mock_clickrÖ   r×   Úslot0Úslot1Ú
slot_emptyrÕ   r4   r5   r6   r7   r¹   rM   r¼   r·   s                   @r9   Ú"test_stash_orchestrator_mock_cyclerã   ¿   sõ  ø€ õ Œy˜ °LÐAÑAÔA€Hå
 uÐ
-Ñ
-Ô
-€CÝ$ØØØØ%Ð%Ð%Ð%ð	ñ ô €Lð €LÔõ 
Œ�lÔ-¨ÈTÐ	RÑ	RÔ	Rð *ð *Ý	Œ�l OÀ$Ð	GÑ	GÔ	Gð*ð *å	ÐBÑ	CÔ	Cð*àGQÝ	ÐGÑ	HÔ	Hð*ð M\Ý	Œ�lÔ-¨}Ñ	=Ô	=ð	*ð BLõ  ¨°DÀ3ÐTXÐYÑYÔYˆÝ ¨°DÀ3ÐTXÐYÑYÔYˆÝ! a¨Q¸ÈÐY^Ð_Ñ_Ô_ˆ
åŒ\˜,Ô-Ð/IÐY^Ð`eÐgqÐXrÐsÑsÔsð 	3ð 	3à$×<Ò<¸XÐZ_Ð<Ñ`Ô`ˆIà !Ð!�9 ’>Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!�9 Ð!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!�9Ñ!Ô!Ð!Õ!Ô!�9Ñ!Ô!Ð!Ð!Õ!Ô! Ñ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ø"Ô-Ð2°Ð2Ð-°Ò2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð-°Ð2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2�?Ñ2Ô2Ð2Õ2Ô2�?Ñ2Ô2Ð2Ð2Õ2Ô2Ð-Ñ2Ô2Õ2Ô2°Ñ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	× Ò Ñ"Ô"Ð"ØÔ$Ð)¨Ð)Ð$¨Ò)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð$¨Ð)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆzÑ)Ô)Ð)Õ)Ô)ˆzÑ)Ô)Ð)Ð)Õ)Ô)Ð$Ñ)Ô)Õ)Ô)¨Ñ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð)*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *sÉ   Á"O$Á:OÂ
N5ÂN	Â5ANÄE>JÊNÊJÊNÊ"JÊ#CNÍ;N	ÎNÎN	ÎNÎN	ÎN5ÎN"Î"N5Î%N"Î&N5Î)OÎ5N9Î9OÎ<N9Î=OÏ O$ÏO	ÏO$ÏO	ÏO$Ï$O(Ï+O(c            	      óÞ  ‡— t          j        ddd¬¦  «        Št          d¬¦  «        } t          dd| ˆfd	„¬
¦  «        }d|_        t          d¦  «        5 }t          d¦  «        5 }|                     dd¦  «         |                     ddddd¬¦  «         |                     ¦   «          | 	                    ¦   «          ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )uP   Kiá»ƒm tra cháº¿ Ä‘á»™ tÆ°Æ¡ng tÃ¡c ngáº§m PostMessageW trong StashOrchestrator.r�   r�   r¿   r’   TrÁ   r#   r$   c                  ó   •— ‰ S rÄ   rÅ   rÆ   s   €r9   rÇ   z:test_stash_orchestrator_background_input.<locals>.<lambda>í   rÈ   r;   rÉ   iE# zCsrc.assistant_tool.stash.stash_orchestrator.post_message_ctrl_clickz<src.assistant_tool.stash.stash_orchestrator.post_message_keyéd   éÈ   g{®Gáz¤?gš™™™™™¹?)Úhold_msÚdelay_afterN)
r   r±   r   r   rØ   r   Ú_ctrl_clickÚassert_called_once_withrÍ   Úassert_called_once)rv   rÞ   Úmock_pm_ctrlÚmock_pm_keyr·   s       @r9   Ú(test_stash_orchestrator_background_inputrï   å   s‰  ø€ åŒy˜ °LÐAÑAÔA€HÝ
 tÐ
,Ñ
,Ô
,€CÝ$ØØØØ%Ð%Ð%Ð%ð	ñ ô €Lð  €LÔå	ÐTÑ	UÔ	Uð )ÐYeÝ	ÐMÑ	NÔ	Nð)ØR]Ø× Ò   cÑ*Ô*Ð*Ø×,Ò,¨W°c¸3ÈÐZ]Ð,Ñ^Ô^Ð^à× Ò Ñ"Ô"Ð"Ø×&Ò&Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s7   ÁC"Á%AC
Â>C"Ã
C	ÃC"ÃC	ÃC"Ã"C&Ã)C&c            	      óª  — t          dd¬¦  «        } |                      dd¦  «        }d}|d         }||k    }d}||k    }|r|s�t          j        d||fd|||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d	œz  }d
d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}d}|d         }||k    }d}||k    }|r|s�t          j        d||fd|||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d	œz  }d
d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}t          j        ddd¬¦  «        }	t          dd¬¦  «        5  |  
                    |	¦  «        }
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d¦  «        }d}|d         }||k    }d}||k    }|r|s�t          j        d||fd|||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d	œz  }d
d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}d}|d         }||k    }d}||k    }|r|s�t          j        d||fd|||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d	œz  }d
d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}ddd¦  «         dS # 1 swxY w Y   dS )uj   Kiá»ƒm tra tÃ­nh toÃ¡n tá»�a Ä‘á»™ lÆ°á»›i trong cháº¿ Ä‘á»™ Windowed (4:3) vÃ  hiá»‡u chuáº©n tá»« áº£nh.é¥  é{  r   r   iŠ  i¨  )ú<=ró   )z%(py1)s <= %(py5)sz%(py5)s <= %(py7)s)r©   r   rª   r«   r†   Ni  rU   i&  r�   )rñ   rò   r¿   r’   z)src.common.vision_ocr.find_button_by_text)i’  é:   r¤   Tr„   )z%(py0)s is %(py3)sÚ
calibratedr   r   r   i£  )r   r)   r*   r+   r/   r0   r1   r   r±   r   Úcalibrate_from_imager,   r-   r.   )Ú
matrix_winÚslot_0_0rº   r¹   r4   r»   rM   r¼   r‹   r·   rõ   r5   r6   r7   Úcal_0_0s                  r9   Ú0test_windowed_aspect_ratio_and_image_calibrationrú   ú   s	  € õ !¨$¸Ð=Ñ=Ô=€JØ×3Ò3°A°qÑ9Ô9€HàÐ$�(˜1”+Ð$ˆ3�+Ò$Ð$ Ð$�+ Ò$Ð$Ð$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð$ˆ3�+ Ð$Ñ$Ô$Õ$Ô$ˆ3Ñ$Ô$Õ$Ô$�+Ñ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØÐ$�(˜1”+Ð$ˆ3�+Ò$Ð$ Ð$�+ Ò$Ð$Ð$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð$ˆ3�+ Ð$Ñ$Ô$Õ$Ô$ˆ3Ñ$Ô$Õ$Ô$�+Ñ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$õ Œy˜ °<Ð@Ñ@Ô@€HÝ	Ð:ÈÐ	SÑ	SÔ	Sð (ð (Ø×4Ò4°XÑ>Ô>ˆ
Ø!Ð!ˆz˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆz˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Õ!Ô!ˆzÑ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ø×6Ò6°q¸!Ñ<Ô<ˆØÐ'�g˜a”jÐ'ˆs�jÒ'Ð' CÐ'�j CÒ'Ð'Ð'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð'ˆs�j CÐ'Ñ'Ô'Õ'Ô'ˆsÑ'Ô'Õ'Ô'�jÑ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÐ'�g˜a”jÐ'ˆs�jÒ'Ð' CÐ'�j CÒ'Ð'Ð'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð'ˆs�j CÐ'Ñ'Ô'Õ'Ô'ˆsÑ'Ô'Õ'Ô'�jÑ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   ÆHOÏOÏO)(Ú__doc__Úbuiltinsr,   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter*   Úunittest.mockr   r   ÚpytestÚPILr   Ú(src.assistant_tool.stash.stash_constantsr   r   r   r	   Ú)src.assistant_tool.stash.stash_ui_scannerr
   r   Ú*src.assistant_tool.stash.stash_item_matrixr   r   Ú(src.assistant_tool.stash.stash_evaluatorr   Ú+src.assistant_tool.stash.stash_orchestratorr   Ú!src.assistant_tool.item_inspectorr   r   r   r:   rS   r�   r�   r½   rã   rï   rú   rÅ   r;   r9   ú<module>r	     s²  ððð ð € € € € € € € € € € € € Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð SÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ CÐ CÐ CÐ CÐ CÐ CØ IÐ IÐ IÐ IÐ IÐ Iðð ð ð ð ð ð ð ð ð ð(ð (ð (ð&Lð Lð LðB3ð B3ð B3ðJ
[ð 
[ð 
[ð):ð ):ð ):ðX#*ð #*ð #*ðL)ð )ð )ð*(ð (ð (ð (ð (r;   