def test_update():
    order = Order(price=10, volume=100, side=OrderSide.BUY)
    level = Level(orders=[order])
    assert level.volume() == 100
    order.update_volume(volume=50)
    level.update(order=order)
    assert level.volume() == 50
def test_update():
    level = Level(price=10.0)
    order = Order(price=10.0, size=100.0, side=OrderSide.BUY)
    level.add(order)
    assert level.volume() == 100.0
    order.update_size(size=50.0)
    level.update(order=order)
    assert level.volume() == 50.0
def test_delete_order():
    level = Level(price=100.0)
    orders = [
        Order(price=100.0, size=50.0, side=OrderSide.BUY, id="1"),
        Order(price=100.0, size=50.0, side=OrderSide.BUY, id="2"),
    ]
    level.bulk_add(orders=orders)
    level.delete(order=orders[1])
    assert level.volume() == 50.0
def test_zero_volume_level():
    level = Level(price=10.0)
    level.bulk_add(orders=[Order(price=10.0, size=0.0, side=OrderSide.BUY)])
    assert level.volume() == 0.0