mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-07-27 15:37:44 +00:00
953fb2d278
New test infrastructure:
1. pytest + pytest-cov installed
- requirements.txt updated
- pytest.ini configured
- .coveragerc for coverage
2. Test suite created (97 tests):
- test_backtest_engine.py (32 tests)
* BacktestMetrics: IC, Sharpe, Drawdown, Win Rate
* FactorBacktester: run_backtest, JSON export
* Edge cases: NaN, empty, insufficient data
- test_results_db.py (33 tests)
* ResultsDatabase: CRUD operations
* Queries: get_top_factors, get_aggregate_stats
* Database cleanup
- test_risk_management.py (32 tests)
* CorrelationAnalyzer: Matrix, uncorrelated factors
* PortfolioOptimizer: Mean-Variance, Risk Parity
* AdvancedRiskManager: Limit checks
3. Fixtures (conftest.py):
- 22 reusable test fixtures
- Mock data for all scenarios
- Sample factors, returns, equity curves
4. Coverage: 98.77% (target: >80%)
- BacktestMetrics: 100%
- FactorBacktester: 100%
- ResultsDatabase: 95.92%
- CorrelationAnalyzer: 100%
- PortfolioOptimizer: 100%
- AdvancedRiskManager: 100%
5. Documentation:
- test/backtesting/README.md
- How to run tests
- Generate coverage reports
Run tests:
pytest test/backtesting/ -v
Coverage report:
pytest test/backtesting/ --cov=rdagent/components/backtesting --cov-report=html
90 lines
1.3 KiB
Plaintext
90 lines
1.3 KiB
Plaintext
# Requirements for runtime.
|
|
pydantic-settings
|
|
|
|
python-Levenshtein
|
|
scikit-learn
|
|
filelock
|
|
loguru
|
|
fire
|
|
fuzzywuzzy
|
|
openai
|
|
litellm>=1.73 # to support `from litellm import get_valid_models`
|
|
azure.identity
|
|
pyarrow
|
|
rich
|
|
tqdm
|
|
typer
|
|
|
|
numpy # we use numpy as default data format. So we have to install numpy
|
|
pandas # we use pandas as default data format. So we have to install pandas
|
|
pandarallel # parallelize pandas
|
|
matplotlib
|
|
langchain
|
|
langchain-community
|
|
tiktoken
|
|
pymupdf # Extract shotsreens from pdf
|
|
|
|
# PDF related
|
|
pypdf
|
|
azure-ai-formrecognizer
|
|
|
|
# factor implementations
|
|
tables
|
|
|
|
# CI Fix Tool
|
|
tree-sitter-python
|
|
tree-sitter
|
|
|
|
python-dotenv
|
|
|
|
# infrastructure related.
|
|
docker
|
|
|
|
# crawler related
|
|
webdriver-manager
|
|
|
|
# demo related
|
|
streamlit>=1.47 # to support input_c.text_area(..., height="content", ...)
|
|
plotly
|
|
st-theme
|
|
randomname
|
|
flask
|
|
flask-cors
|
|
networkx
|
|
|
|
# kaggle crawler
|
|
selenium
|
|
kaggle
|
|
nbformat # also used for notebook conversion
|
|
|
|
# tool
|
|
setuptools-scm
|
|
seaborn
|
|
azure.ai.inference
|
|
|
|
# data folder desc
|
|
humanize
|
|
genson
|
|
|
|
# mlflow
|
|
mlflow
|
|
azureml-mlflow
|
|
types-pytz
|
|
|
|
# Agent
|
|
pydantic-ai-slim[mcp,openai,prefect]
|
|
nest-asyncio
|
|
|
|
# visualize SFT train
|
|
tensorboard # tensorboard --logdir git_ignore_folder/RD-Agent_workspace
|
|
prefect
|
|
|
|
# HuggingFace datasets
|
|
datasets
|
|
|
|
# DuckDuckGo search
|
|
duckduckgo-search
|
|
|
|
# Testing
|
|
pytest
|
|
pytest-cov |