Coverage report: 100%

Files Functions Classes

coverage.py v7.13.5, created at 2026-03-19 05:23 +0000

File function   statements missing excluded   coverage
src / basanos / __init__.py (no function)   17 0 0   100%
src / basanos / _logging.py _to_serialisable   7 0 0   100%
src / basanos / _logging.py JSONFormatter.__init__   1 0 0   100%
src / basanos / _logging.py JSONFormatter.format   7 0 0   100%
src / basanos / _logging.py (no function)   10 0 0   100%
src / basanos / analytics / __init__.py (no function)   1 0 0   100%
src / basanos / analytics / _plots.py Plots.lead_lag_ir_plot   17 0 0   100%
src / basanos / analytics / _plots.py Plots.snapshot   16 0 0   100%
src / basanos / analytics / _plots.py Plots.lagged_performance_plot   18 0 0   100%
src / basanos / analytics / _plots.py Plots.rolling_sharpe_plot   15 0 0   100%
src / basanos / analytics / _plots.py Plots.rolling_volatility_plot   14 0 0   100%
src / basanos / analytics / _plots.py Plots.annual_sharpe_plot   12 0 0   100%
src / basanos / analytics / _plots.py Plots.correlation_heatmap   6 0 0   100%
src / basanos / analytics / _plots.py Plots.monthly_returns_heatmap   22 0 0   100%
src / basanos / analytics / _plots.py Plots.smoothed_holdings_performance_plot   18 0 0   100%
src / basanos / analytics / _plots.py Plots.trading_cost_impact_plot   12 0 0   100%
src / basanos / analytics / _plots.py (no function)   22 0 2   100%
src / basanos / analytics / _report.py _is_finite   3 0 0   100%
src / basanos / analytics / _report.py _fmt   3 0 0   100%
src / basanos / analytics / _report.py _stats_table_html   24 0 0   100%
src / basanos / analytics / _report.py _figure_div   1 0 0   100%
src / basanos / analytics / _report.py Report.to_html   32 0 0   100%
src / basanos / analytics / _report.py Report.to_html._div   3 0 0   100%
src / basanos / analytics / _report.py Report.to_html._try_div   5 0 0   100%
src / basanos / analytics / _report.py Report.save   6 0 0   100%
src / basanos / analytics / _report.py (no function)   22 0 2   100%
src / basanos / analytics / _stats.py _drawdown_series   4 0 0   100%
src / basanos / analytics / _stats.py _to_float   5 0 0   100%
src / basanos / analytics / _stats.py _to_float_or_none   5 0 0   100%
src / basanos / analytics / _stats.py Stats.__post_init__   4 0 0   100%
src / basanos / analytics / _stats.py Stats.assets   1 0 0   100%
src / basanos / analytics / _stats.py Stats._mean_positive_expr   2 0 0   100%
src / basanos / analytics / _stats.py Stats._mean_negative_expr   2 0 0   100%
src / basanos / analytics / _stats.py Stats.columnwise_stat   3 0 0   100%
src / basanos / analytics / _stats.py Stats.columnwise_stat.wrapper   1 0 0   100%
src / basanos / analytics / _stats.py Stats.skew   1 0 0   100%
src / basanos / analytics / _stats.py Stats.kurtosis   2 0 0   100%
src / basanos / analytics / _stats.py Stats.avg_return   2 0 0   100%
src / basanos / analytics / _stats.py Stats.avg_win   1 0 0   100%
src / basanos / analytics / _stats.py Stats.avg_loss   1 0 0   100%
src / basanos / analytics / _stats.py Stats.volatility   5 0 0   100%
src / basanos / analytics / _stats.py Stats.value_at_risk   3 0 0   100%
src / basanos / analytics / _stats.py Stats.conditional_value_at_risk   8 0 0   100%
src / basanos / analytics / _stats.py Stats.best   1 0 0   100%
src / basanos / analytics / _stats.py Stats.worst   1 0 0   100%
src / basanos / analytics / _stats.py Stats.win_rate   5 0 0   100%
src / basanos / analytics / _stats.py Stats.profit_factor   5 0 0   100%
src / basanos / analytics / _stats.py Stats.payoff_ratio   5 0 0   100%
src / basanos / analytics / _stats.py Stats.monthly_win_rate   12 0 0   100%
src / basanos / analytics / _stats.py Stats.worst_n_periods   8 0 0   100%
src / basanos / analytics / _stats.py Stats.up_capture   15 0 0   100%
src / basanos / analytics / _stats.py Stats.down_capture   15 0 0   100%
src / basanos / analytics / _stats.py Stats.sharpe   9 0 0   100%
src / basanos / analytics / _stats.py Stats.max_drawdown   1 0 0   100%
src / basanos / analytics / _stats.py Stats.avg_drawdown   5 0 0   100%
src / basanos / analytics / _stats.py Stats.max_drawdown_duration   20 0 0   100%
src / basanos / analytics / _stats.py Stats.calmar   6 0 0   100%
src / basanos / analytics / _stats.py Stats.recovery_factor   5 0 0   100%
src / basanos / analytics / _stats.py Stats.rolling_sharpe   6 0 0   100%
src / basanos / analytics / _stats.py Stats.rolling_volatility   9 0 0   100%
src / basanos / analytics / _stats.py Stats.annual_breakdown   17 0 0   100%
src / basanos / analytics / _stats.py Stats.summary   3 0 0   100%
src / basanos / analytics / _stats.py Stats.periods_per_year   11 0 0   100%
src / basanos / analytics / _stats.py (no function)   70 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.__post_init__   8 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.from_risk_position   3 0 1   100%
src / basanos / analytics / portfolio.py Portfolio.from_risk_position.vol   0 0 2   100%
src / basanos / analytics / portfolio.py Portfolio.from_cash_position   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.profits   9 0 2   100%
src / basanos / analytics / portfolio.py Portfolio._assert_clean_series   4 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.profit   9 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.nav_accumulated   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.returns   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.monthly   5 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.nav_compounded   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.highwater   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.drawdown   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.all   6 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.stats   2 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.truncate   19 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.lag   7 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.smoothed_holding   10 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.plots   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.report   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.assets   1 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.tilt   2 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.timing   3 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.tilt_timing_decomp   11 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.turnover   7 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.turnover_weekly   4 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.turnover_summary   9 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.cost_adjusted_returns   5 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.trading_cost_impact   10 0 0   100%
src / basanos / analytics / portfolio.py Portfolio.correlation   4 0 0   100%
src / basanos / analytics / portfolio.py (no function)   62 0 0   100%
src / basanos / exceptions.py NonSquareMatrixError.__init__   3 0 0   100%
src / basanos / exceptions.py DimensionMismatchError.__init__   3 0 0   100%
src / basanos / exceptions.py SingularMatrixError.__init__   4 0 0   100%
src / basanos / exceptions.py InsufficientDataError.__init__   4 0 0   100%
src / basanos / exceptions.py MissingDateColumnError.__init__   2 0 0   100%
src / basanos / exceptions.py ShapeMismatchError.__init__   3 0 0   100%
src / basanos / exceptions.py ColumnMismatchError.__init__   3 0 0   100%
src / basanos / exceptions.py NonPositivePricesError.__init__   2 0 0   100%
src / basanos / exceptions.py ExcessiveNullsError.__init__   4 0 0   100%
src / basanos / exceptions.py IntegerIndexBoundError.__init__   3 0 0   100%
src / basanos / exceptions.py InvalidPricesTypeError.__init__   2 0 0   100%
src / basanos / exceptions.py InvalidCashPositionTypeError.__init__   2 0 0   100%
src / basanos / exceptions.py RowCountMismatchError.__init__   3 0 0   100%
src / basanos / exceptions.py NonPositiveAumError.__init__   2 0 0   100%
src / basanos / exceptions.py MonotonicPricesError.__init__   2 0 0   100%
src / basanos / exceptions.py (no function)   33 0 16   100%
src / basanos / math / __init__.py (no function)   2 0 0   100%
src / basanos / math / _config_report.py _constraint_str   12 0 0   100%
src / basanos / math / _config_report.py _fmt_value   7 0 0   100%
src / basanos / math / _config_report.py _params_table_html   10 0 0   100%
src / basanos / math / _config_report.py _lambda_sweep_fig   11 0 0   100%
src / basanos / math / _config_report.py _guidance_table_html   2 0 0   100%
src / basanos / math / _config_report.py _figure_div   1 0 0   100%
src / basanos / math / _config_report.py ConfigReport.to_html   15 0 0   100%
src / basanos / math / _config_report.py ConfigReport.save   6 0 0   100%
src / basanos / math / _config_report.py (no function)   22 0 2   100%
src / basanos / math / _linalg.py valid   4 0 0   100%
src / basanos / math / _linalg.py is_positive_definite   5 0 0   100%
src / basanos / math / _linalg.py _check_and_warn_condition   3 0 0   100%
src / basanos / math / _linalg.py _cholesky_solve   5 0 0   100%
src / basanos / math / _linalg.py inv_a_norm   14 0 0   100%
src / basanos / math / _linalg.py solve   13 0 0   100%
src / basanos / math / _linalg.py (no function)   13 0 0   100%
src / basanos / math / _signal.py shrink2id   1 0 0   100%
src / basanos / math / _signal.py vol_adj   4 0 0   100%
src / basanos / math / _signal.py (no function)   5 0 0   100%
src / basanos / math / optimizer.py _ewm_corr_numpy   34 0 0   100%
src / basanos / math / optimizer.py BasanosConfig.report   2 0 0   100%
src / basanos / math / optimizer.py BasanosConfig.corr_greater_than_vola   4 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.__post_init__   24 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.assets   1 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.ret_adj   1 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.vola   1 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.cor   4 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.cor_tensor   1 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.cash_position   39 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.risk_position   6 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.position_leverage   4 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.condition_number   16 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.effective_rank   25 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.solver_residual   27 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.signal_utilisation   25 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.portfolio   4 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.sharpe_at_shrink   3 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.naive_sharpe   3 0 0   100%
src / basanos / math / optimizer.py BasanosEngine._ic_series   20 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.ic   1 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.rank_ic   1 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.ic_mean   3 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.ic_std   3 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.icir   5 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.rank_ic_mean   3 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.rank_ic_std   3 0 0   100%
src / basanos / math / optimizer.py BasanosEngine.config_report   2 0 0   100%
src / basanos / math / optimizer.py (no function)   84 0 2   100%
Total     1380 0 29   100%

No items found using the specified filter.