orderflow_backtest/tests/test_storage_parsing.py

49 lines
1.1 KiB
Python

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