import sys from pathlib import Path import pytest # Ensure project root is on sys.path for direct module imports sys.path.append(str(Path(__file__).resolve().parents[1])) from storage import Storage, OrderbookLevel def test_parse_orderbook_side_happy_path(): storage = Storage("BTC-USDT") text = str([ (100.0, 1.5, 0, 2), (101.0, 2.25, 1, 3), ]) side = {} storage._parse_orderbook_side(text, side) assert 100.0 in side and 101.0 in side level_100 = side[100.0] level_101 = side[101.0] assert isinstance(level_100, OrderbookLevel) assert level_100.price == 100.0 assert level_100.size == 1.5 assert level_100.liquidation_count == 0 assert level_100.order_count == 2 assert level_101.size == 2.25 assert level_101.liquidation_count == 1 assert level_101.order_count == 3 def test_parse_orderbook_side_ignores_zero_size(): storage = Storage("BTC-USDT") text = str([ (100.0, 0.0, 0, 0), (101.0, 1.0, 0, 1), ]) side = {} storage._parse_orderbook_side(text, side) assert 100.0 not in side assert 101.0 in side