§
    óŽ»j  ã                   óÌ   — d Z ddlZddlmc mZ ddlZddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZmZmZmZ  G d„ d	ej        ¦  «        Zed
k    r ej        ¦   «          dS dS )zx
Unit tests for FreeExile Savage Barter Economy, Salvage Yields,
Feral Corruption Item Sinks, and Inflation Monitoring.
é    N)ÚSavageCurrencyTypeÚCorruptionResultType)ÚSalvageEngine)ÚFeralCorruptionEngine)ÚInflationMonitor)ÚGearItemÚ
ItemRarityÚAffixÚ	AffixTypec                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestEconomyMechanicsc                 ó€   — t          ¦   «         | _        t          d¬¦  «        | _        t	          d¬¦  «        | _        d S )Né*   ©Úrng_seedgš™™™™™©?)Úmarket_tax_rate)r   Úsalvage_enginer   Úcorruption_enginer   Úinflation_monitor)Úselfs    úGC:\Projects\FreeExile\tests\unit\test_economy_salvage_and_corruption.pyÚsetUpzTestEconomyMechanics.setUp   s:   € Ý+™oœoˆÔÝ!6ÀÐ!CÑ!CÔ!CˆÔÝ!1À$Ð!GÑ!GÔ!GˆÔÐÐó    c                 ó6  — t          dddt          j        ¬¦  «        }| j                             |d¬¦  «        \  }}}|                      |j        d¦  «         |                      |d¦  «         |                      |d¦  «         t          dd	d
t          j        t          dt          j
        dddd¦  «        t          dt          j        dddd¦  «        t          dt          j
        dddd¦  «        t          dt          j        dddd¦  «        g¬¦  «        }| j                             ||¬¦  «        \  }}}|                      |j        d¦  «         |                      |d¦  «         |                      |d¦  «         |                      d|j        ¦  «         d S )NÚwhite_1u   Thiáº¿t Ä�ao Rá»‰ SÃ©té
   )Ú	item_uuidÚ	item_nameÚ
item_levelÚrarityr   )Úcurrent_player_dusté   Úrare_1u   Cá»• Kiáº¿m Huyáº¿t SÃ¡téV   ÚPhysÚphysé2   é-   ÚCritÚcrité   é   é   ÚFireÚfireé   é   ÚSpeedÚspeedé   é   ©r   r   r   r    Úaffixesé   ÚMANH_CO_COT_AN)r   r	   Ú	PHAM_PHAMr   Úprocess_salvageÚassertEqualÚdust_shardsÚCUC_PHAMr
   r   ÚPREFIXÚSUFFIXÚassertInÚbonus_fragments)	r   Ú
white_itemÚres1Údust1Ústones1Ú	rare_itemÚres2Údust2Ústones2s	            r   Ú*test_salvage_yield_and_bloodstone_assemblyz?TestEconomyMechanics.test_salvage_yield_and_bloodstone_assembly   s¡  € åØØ.ØÝÔ'ð	
ñ 
ô 
ˆ
ð  $Ô2×BÒBÀ:ÐcdÐBÑeÔeÑˆˆe�WØ×Ò˜Ô)¨1Ñ-Ô-Ð-Ø×Ò˜ Ñ"Ô"Ð"Ø×Ò˜ !Ñ$Ô$Ð$õ ØØ0ØÝÔ&å�f�iÔ.°¸¸BÀÑCÔCÝ�f�iÔ.°¸¸2¸rÑBÔBÝ�f�iÔ.°¸¸BÀÑCÔCÝ�g�yÔ/°¸!¸RÀÑDÔDð	ð
ñ 
ô 
ˆ	ð  $Ô2×BÒBÀ9ÐbgÐBÑhÔhÑˆˆe�WØ×Ò˜Ô)¨2Ñ.Ô.Ð.à×Ò˜ !Ñ$Ô$Ð$Ø×Ò˜ Ñ#Ô#Ð#Ø�ŠÐ&¨Ô(<Ñ=Ô=Ð=Ð=Ð=r   c                 óF  — t          dddt          j        t          dt          j        dddd¦  «        g¬	¦  «        }| j                             |d
¬¦  «        \  }}|                      |j	        ¦  «         |  
                    d|j        ¦  «         t          d¬¦  «        }t          ¦   «         }t          d¦  «        D �]"}t          d|› �d|› �dt          j        t          dt          j        dddd¦  «        g¬	¦  «        }|                     |¦  «        \  }}	|                     |j        ¦  «         |j        t"          j        k    r0|                      |j        ¦  «         |                      |	¦  «         Œ»|j        t"          j        k    rR|                      |j        ¦  «         |                      |	j        d         j                             d¦  «        ¦  «         �Œ$|  
                    t"          j        |¦  «         |  
                    t"          j        |¦  «         d S )NÚcorrupt_test_1u   Huyáº¿t LÃ´i Ma TrÆ°á»£ngéP   u	   LÃ´i SÃ¡tÚ	lightningr4   r'   é#   r6   T)Úis_already_corruptedu"   khÃ´ng thá»ƒ biáº¿n dá»‹ láº§n haiéd   r   Úitem_u
   TÃ  Binh #u   SÃ¡t ThÆ°Æ¡ngÚdmgr   r   u   [Dá»‹ Biáº¿n TÃ  Huyáº¿t])r   r	   r>   r
   r   r?   r   Úcorrupt_itemÚassertFalseÚsuccessrA   Úmessager   ÚsetÚrangeÚaddÚresult_typer   ÚPERMANENT_DESTROYÚ
assertTrueÚitem_destroyedÚassertIsNoneÚGOD_TIER_IMPLICITÚassertIsNotNoneÚimplicit_addedr7   ÚnameÚ
startswith)
r   ÚitemÚoutcome_rejectedÚ_ÚengineÚoutcomes_seenÚiÚ	test_itemÚoutcomeÚresulting_items
             r   Útest_feral_corruption_outcomesz3TestEconomyMechanics.test_feral_corruption_outcomes6   s  € åØ&Ø1ØÝÔ&Ý˜;­	Ô(8¸+ÀrÈ2ÈrÑRÔRÐSð
ñ 
ô 
ˆð #Ô4×AÒAÀ$Ð]aÐAÑbÔbÑÐ˜!Ø×ÒÐ)Ô1Ñ2Ô2Ð2Ø�ŠÐ:Ð<LÔ<TÑUÔUÐUõ '°Ð4Ñ4Ô4ˆå™œˆÝ�r‘”ð 	hñ 	hˆAÝ Ø% !˜+˜+Ø* qÐ*Ð*ØÝ!Ô*Ý˜µ	Ô0@À%ÈÈRÐQSÑTÔTÐUðñ ô ˆIð '-×&9Ò&9¸)Ñ&DÔ&DÑ#ˆG�^Ø×Ò˜gÔ1Ñ2Ô2Ð2ØÔ"Õ&:Ô&LÒLÐLØ—’ Ô 6Ñ7Ô7Ð7Ø×!Ò! .Ñ1Ô1Ð1Ð1ØÔ$Õ(<Ô(NÒNÐNØ×$Ò$ WÔ%;Ñ<Ô<Ð<Ø—’ Ô 6°qÔ 9Ô >× IÒ IÐJeÑ fÔ fÑgÔgÐgùð 	�ŠÕ*Ô<¸mÑLÔLÐLØ�ŠÕ*Ô<¸mÑLÔLÐLÐLÐLr   c                 óP  — | j                              dd¦  «         | j                              dd¦  «         | j                              dd¦  «        }|                      |d¦  «         | j                              d¦  «        }|                      |d¦  «         | j                              d¦  «        }|                      |d¦  «         | j                              dd¦  «         | j                              d¦  «        }|                      |d	d
¬¦  «         | j                              d¦  «        }|                      |d¦  «         | j                              ¦   «         }|                      |d         d¦  «         |  	                    d|¦  «         |  	                    d|¦  «         d S )NÚHUYET_HON_THACHiè  iX  i   éÈ   g      ô?gq=
×£pí?i�  g-²�ï§ê?r"   )Úplacesg      ð?Úprimary_currencyÚtotal_faucetsÚtotal_market_tax_burns)
r   Úrecord_faucetÚrecord_crafting_sinkÚrecord_market_trade_tax_burnr<   Ú calculate_server_inflation_indexÚget_dynamic_drop_modifierÚassertAlmostEqualÚget_economy_dashboard_reportrA   )r   Ú
tax_burnedÚsiiÚdrop_modÚnew_siiÚnew_drop_modÚreports          r   Ú)test_inflation_monitor_sii_and_elasticityz>TestEconomyMechanics.test_inflation_monitor_sii_and_elasticity_   s¥  € àÔ×,Ò,Ð->ÀÑEÔEÐEð 	Ô×3Ò3Ð4EÀsÑKÔKÐKð Ô+×HÒHÐIZÐ\`ÑaÔaˆ
Ø×Ò˜ SÑ)Ô)Ð)ð Ô$×EÒEÐFWÑXÔXˆØ×Ò˜˜dÑ#Ô#Ð#ð Ô)×CÒCÐDUÑVÔVˆØ×Ò˜ 4Ñ(Ô(Ð(ð 	Ô×3Ò3Ð4EÀsÑKÔKÐKØÔ(×IÒIÐJ[Ñ\Ô\ˆØ×Ò˜w¨°aÐÑ8Ô8Ð8ØÔ-×GÒGÐHYÑZÔZˆØ×Ò˜ sÑ+Ô+Ð+ð Ô'×DÒDÑFÔFˆØ×Ò˜Ð 2Ô3Ð5FÑGÔGÐGØ�Š�o vÑ.Ô.Ð.Ø�ŠÐ.°Ñ7Ô7Ð7Ð7Ð7r   N)Ú__name__Ú
__module__Ú__qualname__r   rK   ro   r„   © r   r   r   r      sX   € € € € € ðHð Hð Hð
 >ð  >ð  >ðD'Mð 'Mð 'MðR8ð 8ð 8ð 8ð 8r   r   Ú__main__)Ú__doc__ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arÚunittestÚserver.economy.economy_typesr   r   Úserver.economy.salvage_enginer   Ú server.economy.corruption_enginer   Ú server.economy.inflation_monitorr   Ú#server.world.primal_stones_craftingr   r	   r
   r   ÚTestCaser   r…   Úmainrˆ   r   r   ú<module>r™      s  ððð ð
 € € € € € € € € € € € € €€€€Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø BÐ BÐ BÐ BÐ BÐ BØ =Ð =Ð =Ð =Ð =Ð =Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ Vðp8ð p8ð p8ð p8ð p8˜8Ô,ñ p8ô p8ð p8ðf ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   