Files
NexQuant/requirements.txt
T
TPTBusiness 953fb2d278 test: Add backtesting tests with 98.77% coverage
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
2026-04-02 19:24:38 +02:00

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