You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
from rich.console import Console
|
|
|
|
from apps.paper_trader import cli
|
|
|
|
|
|
def test_resolve_rank_configs_selects_runnable_single_book_rows(tmp_path: Path, monkeypatch) -> None:
|
|
monkeypatch.chdir(tmp_path)
|
|
journal_dir = tmp_path / "journal"
|
|
journal_dir.mkdir(parents=True)
|
|
config_dir = tmp_path / "configs" / "experiments"
|
|
config_dir.mkdir(parents=True)
|
|
(config_dir / "return_max_long_demo.json").write_text("{}")
|
|
|
|
registry = {
|
|
"entries": [
|
|
{
|
|
"experiment_name": "return_max_long_missing",
|
|
"strategy_family": "return_max_long",
|
|
"sqs_score": 81.6,
|
|
"trade_count": 10,
|
|
"valid_trade_count": 3,
|
|
"is_retired": False,
|
|
},
|
|
{
|
|
"experiment_name": "return_max_long_demo",
|
|
"strategy_family": "return_max_long",
|
|
"sqs_score": 70.0,
|
|
"trade_count": 10,
|
|
"valid_trade_count": 3,
|
|
"is_retired": False,
|
|
},
|
|
],
|
|
"updated_at": "2026-03-26T00:00:00+00:00",
|
|
}
|
|
(journal_dir / "experiment_registry.json").write_text(json.dumps(registry))
|
|
|
|
console = Console(record=True, width=140)
|
|
monkeypatch.setattr(cli, "_console", console)
|
|
|
|
configs = cli._resolve_rank_configs(1, 1)
|
|
|
|
assert configs == ["configs/experiments/return_max_long_demo.json"]
|
|
assert console.export_text() == ""
|