예제 #1
0
    def test_extract_volume_with_invalid_price_raises_value_error(self):
        # Arrange
        tick = QuoteTick(
            AUDUSD_SIM.id,
            Price.from_str("1.00000"),
            Price.from_str("1.00001"),
            Quantity.from_int(1),
            Quantity.from_int(1),
            0,
            0,
        )

        # Act, Assert
        with pytest.raises(ValueError):
            tick.extract_volume(0)
예제 #2
0
    def test_extract_volume_with_various_price_types_returns_expected_values(self):
        # Arrange
        tick = QuoteTick(
            AUDUSD_FXCM,
            Price("1.00000"),
            Price("1.00001"),
            Quantity(500000),
            Quantity(800000),
            UNIX_EPOCH,
        )

        # Act
        result1 = tick.extract_volume(PriceType.ASK)
        result2 = tick.extract_volume(PriceType.MID)
        result3 = tick.extract_volume(PriceType.BID)

        # Assert
        self.assertEqual(Quantity(800000), result1)
        self.assertEqual(Quantity(1300000), result2)
        self.assertEqual(Quantity(500000), result3)
예제 #3
0
    def test_extract_volume_with_various_price_types_returns_expected_values(self):
        # Arrange
        tick = QuoteTick(
            AUDUSD_SIM.id,
            Price.from_str("1.00000"),
            Price.from_str("1.00001"),
            Quantity.from_int(500000),
            Quantity.from_int(800000),
            0,
            0,
        )

        # Act
        result1 = tick.extract_volume(PriceType.ASK)
        result2 = tick.extract_volume(PriceType.MID)
        result3 = tick.extract_volume(PriceType.BID)

        # Assert
        assert result1 == Quantity.from_int(800000)
        assert result2 == Quantity.from_int(650000)  # Average size
        assert result3 == Quantity.from_int(500000)