def test_clamp(self, default_tax_policy, default_tax_rate): # Analogous test: # https://github.com/terra-project/core/blob/develop/x/treasury/internal/types/constraint_test.go#L10 tax_policy = default_tax_policy prev_rate = default_tax_rate # Case 1: try to update delta > change_max new_rate = prev_rate + tax_policy.change_max * 2 clamped_rate = tax_policy.clamp(prev_rate, new_rate) assert prev_rate + tax_policy.change_max == clamped_rate # Case 2: try to update delta > change_max (negative) new_rate = prev_rate - tax_policy.change_max * 2 clamped_rate = tax_policy.clamp(prev_rate, new_rate) assert prev_rate - tax_policy.change_max == clamped_rate # Case 3: try to update the new rate > min_rate prev_rate = tax_policy.rate_max new_rate = prev_rate + Dec.with_prec(1, 3) clamped_rate = tax_policy.clamp(prev_rate, new_rate) assert tax_policy.rate_max == clamped_rate # Case 4: try to update the new rate < minRate prev_rate = tax_policy.rate_min new_rate = tax_policy.rate_min - Dec.with_prec(1, 3) clamped_rate = tax_policy.clamp(prev_rate, new_rate) assert tax_policy.rate_min == clamped_rate
def default_tax_policy(): return PolicyConstraints( rate_min=Dec.with_prec(5, 4), rate_max=Dec.with_prec(1, 2), cap=Coin("usdr", 1), change_max=Dec.with_prec(25, 5), )
def test_cosmos_mul(self): examples = [ (Dec(-1), Dec(-1), Dec(1)), (Dec(3), Dec(7), Dec(21)), (Dec.with_prec(3333, 4), Dec.with_prec(333, 4), Dec.with_prec(1109889, 8),), ] for x in examples: assert x[0] * x[1] == x[2]
def test_cosmos_quo(self): examples = [ (Dec(-1), Dec(-1), Dec(1)), (Dec(3), Dec(7), Dec.with_prec(428571428571428571, 18)), ( Dec.with_prec(3333, 4), Dec.with_prec(333, 4), Dec("10.009009009009009009"), ), ] for x in examples: assert x[0] / x[1] == x[2]
def default_tax_rate(): return Dec.with_prec(1, 3)