ipdatepppdate

This commit is contained in:
2026-07-26 16:46:41 +02:00
parent 2620ecc0f1
commit ac04cf6817
30 changed files with 915 additions and 10309 deletions
+44 -8
View File
@@ -231,20 +231,56 @@ def test_is_golden_requires_both_args():
def test_market_saturation_factor_is_full_when_fresh():
assert economy.market_saturation_factor(0) == 1.0
assert economy.market_saturation_factor(0.0) == 1.0
def test_market_saturation_factor_steps_down():
assert economy.market_saturation_factor(40) < 1.0
assert economy.market_saturation_factor(600) == 0.40
assert economy.market_saturation_factor(40) > economy.market_saturation_factor(600)
assert economy.market_saturation_factor(8.0) < 1.0
assert economy.market_saturation_factor(96.0) == 0.40
assert economy.market_saturation_factor(8.0) > economy.market_saturation_factor(96.0)
def test_market_saturation_factor_is_monotone_non_increasing():
previous = 1.0
step = 0
while step <= 400:
supply = step * 0.5
factor = economy.market_saturation_factor(supply)
assert factor <= previous
previous = factor
step += 1
def test_supply_days_normalizes_by_grow_time():
shell = economy.crop_for("shell")
kernel = economy.crop_for("kernel")
assert economy.supply_days(shell, 0) == 0.0
assert economy.supply_days(shell, 5760) == economy.supply_days(kernel, 24)
assert economy.supply_days(shell, 2880) == 1.0
assert economy.supply_days(kernel, 12) == 1.0
def test_market_buff_factor_only_applies_to_starter_crops():
assert economy.market_buff_factor("kernel", 0.40) == 1.0
assert economy.market_buff_factor("shell", 1.0) == 1.0
assert economy.market_buff_factor("shell", 0.40) > 1.0
assert economy.market_buff_factor("shell", 0.0) <= economy.MARKET_BUFF_CAP
assert economy.market_buff_factor("kernel", 0.60) == 1.0
assert economy.market_buff_factor("shell", 0.0) == 1.0
assert economy.market_buff_factor("shell", 0.15) == 1.0375
assert economy.market_buff_factor("shell", 0.60) == economy.MARKET_BUFF_CAP
assert economy.market_buff_factor("shell", 0.90) == economy.MARKET_BUFF_CAP
def test_market_factor_bounds_across_domain():
floor = economy.MARKET_SATURATION_TIERS[-1][1]
for key in economy.MARKET_TRACKED_CROPS:
crop = economy.crop_for(key)
for harvests in range(0, 300000, 977):
saturation = economy.market_saturation_factor(economy.supply_days(crop, harvests))
for pressure in (0.0, 0.15, 0.30, 0.45, 0.60):
factor = saturation if saturation < 1.0 else economy.market_buff_factor(key, pressure)
assert floor <= factor <= economy.MARKET_BUFF_CAP
if saturation < 1.0:
assert factor == saturation
else:
assert factor >= 1.0
def test_effective_reward_coins_applies_market_factor():