def test_should_calculate_profit(self, token1, token2):
        # given
        step1 = Conversion(token1, token2, Ray.from_number(1.01),
                           Wad.from_number(1000), 'met1')
        step1.source_amount = Wad.from_number(100)
        step1.target_amount = Wad.from_number(101)
        step2 = Conversion(token2, token1, Ray.from_number(1.02),
                           Wad.from_number(1000), 'met2')
        step2.source_amount = Wad.from_number(101)
        step2.target_amount = Wad.from_number(103.02)

        # when
        sequence = Sequence([step1, step2])

        # then
        assert sequence.profit(token1) == Wad.from_number(3.02)
        assert sequence.profit(token2) == Wad.from_number(0)
예제 #2
0
def test_nicely_convert_to_string_with_amounts(token1, token2):
    # given
    conversion = Conversion(token1, token2, Ray.from_number(1.01), Wad.from_number(1000), 'met()')
    conversion.source_amount = Wad.from_number(50)
    conversion.target_amount = Wad.from_number(50.5)

    # expect
    assert str(conversion) == "[50.000000000000000000 0x0101010101010101010101010101010101010101 -> 50.500000000000000000 0x0202020202020202020202020202020202020202 @1.010000000000000000000000000" \
                              " by met() (max=1000.000000000000000000 0x0101010101010101010101010101010101010101)]"