Browse Source

pytest: test mul and div units for Millisatoshi

ppa
Michael Schmoock 4 years ago
committed by Christian Decker
parent
commit
bd13726db7
  1. 43
      contrib/pyln-client/tests/test_units.py

43
contrib/pyln-client/tests/test_units.py

@ -269,3 +269,46 @@ def test_nonegative():
Millisatoshi("1sat") // -1
with pytest.raises(ValueError, match='Millisatoshi must be >= 0'):
Millisatoshi("1btc") // -1
def test_mul():
# msat * num := msat
amount = Millisatoshi(21) * 2
assert isinstance(amount, Millisatoshi)
assert amount == Millisatoshi(42)
amount = Millisatoshi(21) * 2.5
assert amount == Millisatoshi(52)
# msat * msat := msat^2 (which is not supported)
with pytest.raises(TypeError, match="not supported"):
Millisatoshi(21) * Millisatoshi(2)
def test_div():
# msat / num := msat
amount = Millisatoshi(42) / 2
assert isinstance(amount, Millisatoshi)
assert amount == Millisatoshi(21)
amount = Millisatoshi(42) / 2.6
assert amount == Millisatoshi(16)
# msat / msat := num (float ratio)
amount = Millisatoshi(42) / Millisatoshi(2)
assert isinstance(amount, float)
assert amount == 21.0
amount = Millisatoshi(8) / Millisatoshi(5)
assert amount == 1.6
# msat // num := msat
amount = Millisatoshi(42) // 2
assert isinstance(amount, Millisatoshi)
assert amount == Millisatoshi(21)
# msat // msat := num
amount = Millisatoshi(42) // Millisatoshi(3)
assert isinstance(amount, int)
assert amount == 14
amount = Millisatoshi(42) // Millisatoshi(3)
assert amount == 14
amount = Millisatoshi(42) // Millisatoshi(4)
assert amount == 10

Loading…
Cancel
Save