Coverage report: 100%

Files Functions Classes

coverage.py v7.14.1, created at 2026-06-23 06:13 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src/jquantstats/__init__.py (no function)   100% 10 0 0   100% 0 0   100%
src/jquantstats/_cache.py cached_in_slot   100% 2 0 0   100% 0 0   100%
src/jquantstats/_cache.py cached_in_slot.decorator   100% 3 0 0   100% 0 0   100%
src/jquantstats/_cache.py cached_in_slot.decorator.wrapper   100% 5 0 0   100% 2 0   100%
src/jquantstats/_cache.py (no function)   100% 6 0 0   100% 0 0   100%
src/jquantstats/_cost_model.py CostModel.__post_init__   100% 6 0 0   100% 6 0   100%
src/jquantstats/_cost_model.py CostModel.per_unit   100% 1 0 0   100% 0 0   100%
src/jquantstats/_cost_model.py CostModel.turnover_bps   100% 1 0 0   100% 0 0   100%
src/jquantstats/_cost_model.py CostModel.zero   100% 1 0 0   100% 0 0   100%
src/jquantstats/_cost_model.py (no function)   100% 13 0 0   100% 0 0   100%
src/jquantstats/_plots/__init__.py (no function)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py _hex_to_rgba   100% 3 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py _ticker_colors   100% 2 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py _date_range_selector   100% 1 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py _apply_base_layout   100% 7 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py _apply_figsize   100% 3 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py _bar_colors   100% 4 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py _compute_drawdown_periods   100% 21 0 0   100% 8 0   100%
src/jquantstats/_plots/_data.py _plot_performance_dashboard   100% 32 0 0   100% 10 0   100%
src/jquantstats/_plots/_data.py DataPlots.__init__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py DataPlots.assets   100% 1 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py DataPlots.__repr__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py DataPlots.snapshot   100% 2 0 0   100% 0 0   100%
src/jquantstats/_plots/_data.py DataPlots.returns   100% 13 0 0   100% 4 0   100%
src/jquantstats/_plots/_data.py DataPlots.compare   100% 19 0 0   100% 6 0   100%
src/jquantstats/_plots/_data.py DataPlots.log_returns   100% 13 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.daily_returns   100% 13 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.yearly_returns   100% 15 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.monthly_returns   100% 14 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.monthly_heatmap   100% 20 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.histogram   100% 13 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.distribution   100% 19 0 0   100% 6 0   100%
src/jquantstats/_plots/_data.py DataPlots.montecarlo   100% 24 0 0   100% 8 0   100%
src/jquantstats/_plots/_data.py DataPlots.montecarlo_distribution   100% 29 0 2   100% 8 0   100%
src/jquantstats/_plots/_data.py DataPlots.montecarlo_distribution._metric_value   100% 10 0 0   100% 4 0   100%
src/jquantstats/_plots/_data.py DataPlots.drawdown   100% 15 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.drawdowns_periods   100% 20 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.earnings   100% 13 0 0   100% 4 0   100%
src/jquantstats/_plots/_data.py DataPlots.rolling_sharpe   100% 14 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.rolling_sortino   100% 19 0 0   100% 4 0   100%
src/jquantstats/_plots/_data.py DataPlots.rolling_volatility   100% 13 0 0   100% 2 0   100%
src/jquantstats/_plots/_data.py DataPlots.rolling_beta   100% 27 0 0   100% 6 0   100%
src/jquantstats/_plots/_data.py (no function)   100% 41 0 2   100% 0 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.__init__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.lead_lag_ir_plot   100% 18 0 0   100% 6 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.snapshot   100% 18 0 0   100% 6 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots._apply_nav_layout   100% 6 0 0   100% 4 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.lagged_performance_plot   100% 11 0 0   100% 6 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.rolling_sharpe_plot   100% 13 0 0   100% 6 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.rolling_volatility_plot   100% 12 0 0   100% 6 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.annual_sharpe_plot   100% 12 0 0   100% 2 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.correlation_heatmap   100% 6 0 0   100% 2 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.monthly_returns_heatmap   100% 22 0 0   100% 6 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.smoothed_holdings_performance_plot   100% 11 0 0   100% 6 0   100%
src/jquantstats/_plots/_portfolio.py PortfolioPlots.trading_cost_impact_plot   100% 12 0 0   100% 2 0   100%
src/jquantstats/_plots/_portfolio.py (no function)   100% 24 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioStatsLike.sharpe   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioStatsLike.rolling_sharpe   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioStatsLike.rolling_volatility   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioStatsLike.annual_breakdown   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.prices   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.aum   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.cost_model   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.nav_accumulated   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.tilt   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.timing   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.net_cost_nav   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.drawdown   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.assets   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.monthly   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.profits   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.stats   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.lag   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.smoothed_holding   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.trading_cost_impact   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike.correlation   100% 0 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py (no function)   100% 6 0 70   100% 0 0   100%
src/jquantstats/_portfolio_attribution.py PortfolioAttributionMixin.from_cash_position   100% 0 0 2   100% 0 0   100%
src/jquantstats/_portfolio_attribution.py PortfolioAttributionMixin.tilt   100% 2 0 0   100% 0 0   100%
src/jquantstats/_portfolio_attribution.py PortfolioAttributionMixin.timing   100% 3 0 0   100% 0 0   100%
src/jquantstats/_portfolio_attribution.py PortfolioAttributionMixin.tilt_timing_decomp   100% 11 0 0   100% 2 0   100%
src/jquantstats/_portfolio_attribution.py (no function)   100% 13 0 11   100% 0 0   100%
src/jquantstats/_portfolio_base.py _PortfolioMembers.data   100% 0 0 1   100% 0 0   100%
src/jquantstats/_portfolio_base.py _PortfolioMembers.assets   100% 0 0 1   100% 0 0   100%
src/jquantstats/_portfolio_base.py _PortfolioMembers.returns   100% 0 0 1   100% 0 0   100%
src/jquantstats/_portfolio_base.py _PortfolioMembers.profit   100% 0 0 1   100% 0 0   100%
src/jquantstats/_portfolio_base.py _PortfolioMembers.nav_accumulated   100% 0 0 1   100% 0 0   100%
src/jquantstats/_portfolio_base.py _PortfolioMembers.turnover   100% 0 0 1   100% 0 0   100%
src/jquantstats/_portfolio_base.py (no function)   100% 4 0 20   100% 0 0   100%
src/jquantstats/_portfolio_cost.py PortfolioCostMixin.position_delta_costs   100% 8 0 0   100% 2 0   100%
src/jquantstats/_portfolio_cost.py PortfolioCostMixin.net_cost_nav   100% 6 0 0   100% 2 0   100%
src/jquantstats/_portfolio_cost.py PortfolioCostMixin.cost_adjusted_returns   100% 11 0 0   100% 6 0   100%
src/jquantstats/_portfolio_cost.py PortfolioCostMixin.trading_cost_impact   100% 19 0 0   100% 6 0   100%
src/jquantstats/_portfolio_cost.py (no function)   100% 12 0 0   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin._assert_clean_series   100% 0 0 2   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.profits   100% 5 0 0   100% 2 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.profit   100% 9 0 0   100% 2 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.nav_accumulated   100% 1 0 0   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.monthly   100% 5 0 0   100% 2 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.nav_compounded   100% 1 0 0   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.highwater   100% 1 0 0   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.drawdown   100% 1 0 0   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin.all   100% 6 0 0   100% 2 0   100%
src/jquantstats/_portfolio_nav.py (no function)   100% 27 0 5   100% 0 0   100%
src/jquantstats/_portfolio_turnover.py PortfolioTurnoverMixin.turnover   100% 7 0 0   100% 2 0   100%
src/jquantstats/_portfolio_turnover.py PortfolioTurnoverMixin.turnover_weekly   100% 4 0 0   100% 2 0   100%
src/jquantstats/_portfolio_turnover.py PortfolioTurnoverMixin.turnover_summary   100% 9 0 0   100% 0 0   100%
src/jquantstats/_portfolio_turnover.py (no function)   100% 12 0 2   100% 0 0   100%
src/jquantstats/_protocol.py StatsLike.summary   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.returns   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.index   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.benchmark   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.all   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.assets   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.date_col   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.stats   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike._periods_per_year   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike.items   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py (no function)   100% 4 0 38   100% 0 0   100%
src/jquantstats/_reports/__init__.py (no function)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _safe   100% 5 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _pct   100% 1 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _comp_since   100% 6 0 0   100% 2 0   100%
src/jquantstats/_reports/_data.py _cagr_since   100% 12 0 0   100% 4 0   100%
src/jquantstats/_reports/_data.py _cutoff_months   100% 11 0 0   100% 4 0   100%
src/jquantstats/_reports/_data.py _add_overview_rows   100% 3 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _add_risk_adjusted_rows   100% 5 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _add_drawdown_rows   100% 6 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _add_trading_rows   100% 9 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _add_recent_returns_rows   100% 11 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _add_full_mode_rows   100% 54 0 0   100% 8 0   100%
src/jquantstats/_reports/_data.py _build_metrics_df   100% 8 0 0   100% 6 0   100%
src/jquantstats/_reports/_data.py _metrics_table_html   100% 28 0 0   100% 14 0   100%
src/jquantstats/_reports/_data.py _drawdowns_section_html   100% 17 0 0   100% 6 0   100%
src/jquantstats/_reports/_data.py _try_plotly_div   100% 4 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py _build_full_html   100% 3 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py Reports.__init__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py Reports.metrics   100% 21 0 0   100% 6 0   100%
src/jquantstats/_reports/_data.py Reports.full   100% 34 0 0   100% 16 0   100%
src/jquantstats/_reports/_data.py (no function)   100% 31 0 2   100% 0 0   100%
src/jquantstats/_reports/_formatting.py _is_finite   100% 3 0 0   100% 2 0   100%
src/jquantstats/_reports/_formatting.py _fmt   100% 3 0 0   100% 2 0   100%
src/jquantstats/_reports/_formatting.py _plotly_div   100% 2 0 0   100% 0 0   100%
src/jquantstats/_reports/_formatting.py _table_html   100% 1 0 0   100% 0 0   100%
src/jquantstats/_reports/_formatting.py (no function)   100% 7 0 0   100% 0 0   100%
src/jquantstats/_reports/_portfolio.py _stats_table_html   100% 24 0 0   100% 12 0   100%
src/jquantstats/_reports/_portfolio.py _figure_div   100% 1 0 0   100% 0 0   100%
src/jquantstats/_reports/_portfolio.py Report.__init__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_reports/_portfolio.py Report.to_html   100% 41 0 0   100% 6 0   100%
src/jquantstats/_reports/_portfolio.py Report.to_html._div   100% 3 0 0   100% 0 0   100%
src/jquantstats/_reports/_portfolio.py Report.to_html._try_div   100% 5 0 0   100% 0 0   100%
src/jquantstats/_reports/_portfolio.py (no function)   100% 20 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.snapshot   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.rolling_sharpe_plot   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.rolling_volatility_plot   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.annual_sharpe_plot   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.monthly_returns_heatmap   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.correlation_heatmap   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.lead_lag_ir_plot   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike.trading_cost_impact_plot   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PortfolioLike.prices   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PortfolioLike.aum   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PortfolioLike.assets   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PortfolioLike.plots   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PortfolioLike.stats   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PortfolioLike.turnover_summary   100% 0 0 2   100% 0 0   100%
src/jquantstats/_reports/_protocol.py (no function)   100% 6 0 43   100% 0 0   100%
src/jquantstats/_stats/__init__.py (no function)   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._positive   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._negative   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._mean_positive_expr   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._mean_negative_expr   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._gaussian_quantile   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.skew   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.kurtosis   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.avg_return   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.avg_win   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.avg_loss   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.comp   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.geometric_mean   100% 9 0 0   100% 4 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.volatility   100% 6 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.payoff_ratio   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.profit_ratio   100% 9 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.profit_factor   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.value_at_risk   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._conditional_value_at_risk_impl   100% 7 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.conditional_value_at_risk   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._drawdown_with_baseline   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._ulcer_index_series   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.ulcer_index   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.ulcer_performance_index   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.serenity_index   100% 13 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.win_rate   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.autocorr_penalty   100% 6 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._max_consecutive   100% 4 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.consecutive_wins   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.consecutive_losses   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.risk_of_ruin   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.tail_ratio   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.cpc_index   100% 4 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.common_sense_ratio   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.outliers   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.remove_outliers   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.outlier_win_ratio   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.outlier_loss_ratio   100% 3 0 2   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.gain_to_pain_ratio   100% 6 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.risk_return_ratio   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.kelly_criterion   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.best   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.worst   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.exposure   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin._pearson_corr_shifted   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.autocorr   100% 7 0 0   100% 4 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin.acf   100% 13 0 0   100% 8 0   100%
src/jquantstats/_stats/_basic.py (no function)   100% 97 0 5   100% 0 0   100%
src/jquantstats/_stats/_core.py _drawdown_series   100% 4 0 0   100% 0 0   100%
src/jquantstats/_stats/_core.py _to_float   100% 5 0 0   100% 4 0   100%
src/jquantstats/_stats/_core.py _std_is_negligible   100% 4 0 0   100% 2 0   100%
src/jquantstats/_stats/_core.py _mean   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_core.py columnwise_stat   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_core.py columnwise_stat   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_core.py columnwise_stat   100% 4 0 0   100% 2 0   100%
src/jquantstats/_stats/_core.py columnwise_stat.decorator   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_core.py columnwise_stat.decorator.wrapper   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_core.py to_frame   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_core.py to_frame   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_core.py to_frame   100% 4 0 0   100% 2 0   100%
src/jquantstats/_stats/_core.py to_frame.decorator   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_core.py to_frame.decorator.wrapper   100% 6 0 0   100% 2 0   100%
src/jquantstats/_stats/_core.py (no function)   100% 15 0 12   100% 0 0   100%
src/jquantstats/_stats/_drawdown.py _DrawdownMixin.compsum   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_drawdown.py _DrawdownMixin.drawdown   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_drawdown.py _DrawdownMixin.prices   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_drawdown.py _DrawdownMixin.max_drawdown_single_series   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_drawdown.py _DrawdownMixin.max_drawdown   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_drawdown.py _DrawdownMixin.drawdown_details   100% 26 0 0   100% 8 0   100%
src/jquantstats/_stats/_drawdown.py (no function)   100% 19 0 5   100% 0 0   100%
src/jquantstats/_stats/_internals.py _comp_return   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_internals.py _nav_series   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_internals.py _annualization_factor   100% 3 0 0   100% 2 0   100%
src/jquantstats/_stats/_internals.py _downside_deviation   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_internals.py (no function)   100% 7 0 0   100% 0 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin._validate_positive_integer   100% 3 0 0   100% 2 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin._block_bootstrap_paths   100% 7 0 2   100% 0 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin._simulate_distribution   100% 12 0 0   100% 4 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin.montecarlo   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin.montecarlo_sharpe   100% 12 0 0   100% 4 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin.montecarlo_drawdown   100% 7 0 0   100% 2 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin.montecarlo_cagr   100% 11 0 0   100% 4 0   100%
src/jquantstats/_stats/_montecarlo.py (no function)   100% 17 0 5   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.autocorr_penalty   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.geometric_mean   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.sharpe   100% 9 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.sharpe_variance   100% 14 0 0   100% 4 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.probabilistic_sharpe_ratio   100% 14 0 1   100% 4 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.hhi_positive   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.hhi_negative   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.sortino   100% 9 0 2   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.omega   100% 13 0 0   100% 6 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin._probabilistic_ratio_from_base   100% 9 0 0   100% 4 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.probabilistic_sortino_ratio   100% 6 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.probabilistic_adjusted_sortino_ratio   100% 6 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.probabilistic_ratio   100% 15 0 0   100% 8 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.probabilistic_ratio._sharpe_base   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.probabilistic_ratio._sortino_base   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.smart_sharpe   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.smart_sortino   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.adjusted_sortino   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.r_squared   100% 11 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.information_ratio   100% 15 0 0   100% 2 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.greeks   100% 14 0 0   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin.treynor_ratio   100% 24 0 1   100% 8 0   100%
src/jquantstats/_stats/_performance.py (no function)   100% 43 0 7   100% 0 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin.monthly_returns   100% 20 0 0   100% 8 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin.distribution   100% 10 0 0   100% 2 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin.distribution._agg   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin.distribution._iqr_split   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin.compare   100% 26 0 0   100% 8 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin.compare._agg_series   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin.worst_n_periods   100% 8 0 0   100% 4 0   100%
src/jquantstats/_stats/_periodic.py (no function)   100% 10 0 5   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.avg_return   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.avg_win   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.avg_loss   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.win_rate   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.profit_factor   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.payoff_ratio   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.best   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.worst   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.volatility   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.sharpe   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.skew   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.kurtosis   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.value_at_risk   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.conditional_value_at_risk   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.max_drawdown   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.exposure   100% 0 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.periods_per_year   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.avg_drawdown   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.cagr   100% 7 0 1   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.expected_return   100% 19 0 0   100% 8 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.expected_return._geomean   100% 4 0 0   100% 2 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.expected_return._raw_expected_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.rar   100% 3 0 0   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.calmar   100% 8 0 0   100% 2 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.recovery_factor   100% 5 0 0   100% 2 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.max_drawdown_duration   100% 21 0 0   100% 8 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.monthly_win_rate   100% 14 0 0   100% 6 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.up_capture   100% 13 0 2   100% 6 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.down_capture   100% 13 0 2   100% 6 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.annual_breakdown   100% 44 0 2   100% 12 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.summary   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin.summary._safe   100% 5 0 0   100% 0 0   100%
src/jquantstats/_stats/_reporting.py (no function)   100% 26 0 21   100% 0 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin.implied_volatility   100% 4 0 0   100% 2 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin._pct_rank_series   100% 6 0 0   100% 0 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin.pct_rank   100% 8 0 0   100% 4 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin.rolling_sortino   100% 11 0 0   100% 4 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin.rolling_sharpe   100% 6 0 0   100% 2 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin.rolling_greeks   100% 20 0 0   100% 6 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin.rolling_volatility   100% 8 0 0   100% 4 0   100%
src/jquantstats/_stats/_rolling.py (no function)   100% 19 0 5   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats.__init__   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats.__repr__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats.assets   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats.returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats.benchmark   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats.date_col   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats.index   100% 1 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py (no function)   100% 26 0 2   100% 0 0   100%
src/jquantstats/_types.py (no function)   100% 4 0 0   100% 0 0   100%
src/jquantstats/_utils/__init__.py (no function)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.__init__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.__repr__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils._combined   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils._asset_cols   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils._require_temporal_index   100% 6 0 1   100% 2 0   100%
src/jquantstats/_utils/_data.py DataUtils.to_prices   100% 2 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.to_log_returns   100% 2 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.to_volatility_adjusted_returns   100% 4 0 0   100% 2 0   100%
src/jquantstats/_utils/_data.py DataUtils.to_volatility_adjusted_returns.vol_estimator   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.log_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.rebase   100% 3 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.winsorise   100% 11 0 0   100% 2 0   100%
src/jquantstats/_utils/_data.py DataUtils.group_returns   100% 7 0 0   100% 2 0   100%
src/jquantstats/_utils/_data.py DataUtils.aggregate_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.to_excess_returns   100% 3 0 0   100% 0 0   100%
src/jquantstats/_utils/_data.py DataUtils.exponential_stdev   100% 5 0 0   100% 2 0   100%
src/jquantstats/_utils/_data.py DataUtils.exponential_cov   100% 19 0 0   100% 4 0   100%
src/jquantstats/_utils/_data.py DataUtils.exponential_cov._ewm   100% 3 0 0   100% 2 0   100%
src/jquantstats/_utils/_data.py (no function)   100% 27 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.__init__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.__repr__   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils._du   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.to_prices   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.to_log_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.log_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.rebase   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.group_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.aggregate_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.to_excess_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.to_volatility_adjusted_returns   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.exponential_stdev   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.winsorise   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils.exponential_cov   100% 1 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py (no function)   100% 23 0 0   100% 0 0   100%
src/jquantstats/_utils/_protocol.py PortfolioLike.data   100% 0 0 2   100% 0 0   100%
src/jquantstats/_utils/_protocol.py PortfolioLike.assets   100% 0 0 2   100% 0 0   100%
src/jquantstats/_utils/_protocol.py (no function)   100% 3 0 13   100% 0 0   100%
src/jquantstats/data.py _to_polars   100% 3 0 0   100% 2 0   100%
src/jquantstats/data.py _apply_null_strategy   100% 12 0 0   100% 8 0   100%
src/jquantstats/data.py interpolate   100% 20 0 3   100% 8 0   100%
src/jquantstats/data.py _subtract_risk_free   100% 9 0 0   100% 6 0   100%
src/jquantstats/data.py Data.__post_init__   100% 9 0 0   100% 8 0   100%
src/jquantstats/data.py Data.from_returns   100% 26 0 0   100% 14 0   100%
src/jquantstats/data.py Data.from_prices   100% 13 0 0   100% 6 0   100%
src/jquantstats/data.py Data.__repr__   100% 7 0 1   100% 0 0   100%
src/jquantstats/data.py Data.plots   100% 2 0 0   100% 0 0   100%
src/jquantstats/data.py Data.stats   100% 2 0 0   100% 0 0   100%
src/jquantstats/data.py Data.reports   100% 2 0 0   100% 0 0   100%
src/jquantstats/data.py Data.utils   100% 2 0 0   100% 0 0   100%
src/jquantstats/data.py Data.date_col   100% 1 0 0   100% 0 0   100%
src/jquantstats/data.py Data.assets   100% 3 0 0   100% 2 0   100%
src/jquantstats/data.py Data.all   100% 3 0 0   100% 2 0   100%
src/jquantstats/data.py Data.resample   100% 5 0 0   100% 0 0   100%
src/jquantstats/data.py Data.resample.resample_frame   100% 2 0 0   100% 0 0   100%
src/jquantstats/data.py Data.describe   100% 5 0 0   100% 0 0   100%
src/jquantstats/data.py Data.copy   100% 3 0 0   100% 2 0   100%
src/jquantstats/data.py Data.head   100% 2 0 0   100% 0 0   100%
src/jquantstats/data.py Data.tail   100% 2 0 0   100% 0 0   100%
src/jquantstats/data.py Data.truncate   100% 23 0 0   100% 10 0   100%
src/jquantstats/data.py Data._periods_per_year   100% 9 0 2   100% 2 0   100%
src/jquantstats/data.py Data.items   100% 3 0 0   100% 2 0   100%
src/jquantstats/data.py (no function)   100% 48 0 5   100% 0 0   100%
src/jquantstats/exceptions.py MissingDateColumnError.__init__   100% 8 0 0   100% 2 0   100%
src/jquantstats/exceptions.py InvalidCashPositionTypeError.__init__   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py InvalidPricesTypeError.__init__   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NonPositiveAumError.__init__   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py RowCountMismatchError.__init__   100% 3 0 0   100% 0 0   100%
src/jquantstats/exceptions.py IntegerIndexBoundError.__init__   100% 3 0 0   100% 0 0   100%
src/jquantstats/exceptions.py PositionExprColumnError.__init__   100% 4 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NoAssetColumnsError.__init__   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NegativeCostBpsError.__init__   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py InvalidMaxBpsError.__init__   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py UncleanSeriesError.__init__   100% 4 0 0   100% 0 0   100%
src/jquantstats/exceptions.py MuSchemaError.__init__   100% 3 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NullsInReturnsError.__init__   100% 4 0 0   100% 0 0   100%
src/jquantstats/exceptions.py (no function)   100% 29 0 0   100% 0 0   100%
src/jquantstats/portfolio.py _evaluate_position_expr   100% 5 0 0   100% 2 0   100%
src/jquantstats/portfolio.py Portfolio._build_data_bridge   100% 5 0 0   100% 2 0   100%
src/jquantstats/portfolio.py Portfolio.__post_init__   100% 10 0 0   100% 10 0   100%
src/jquantstats/portfolio.py Portfolio._date_range   100% 5 0 0   100% 2 0   100%
src/jquantstats/portfolio.py Portfolio.cost_model   100% 1 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.__repr__   100% 4 0 0   100% 2 0   100%
src/jquantstats/portfolio.py Portfolio.describe   100% 2 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.from_risk_position   100% 21 0 0   100% 16 0   100%
src/jquantstats/portfolio.py Portfolio.from_risk_position._span   100% 3 0 0   100% 2 0   100%
src/jquantstats/portfolio.py Portfolio.from_risk_position._vol   100% 4 0 0   100% 2 0   100%
src/jquantstats/portfolio.py Portfolio.from_position   100% 5 0 0   100% 2 0   100%
src/jquantstats/portfolio.py Portfolio.from_cash_position   100% 6 0 0   100% 4 0   100%
src/jquantstats/portfolio.py Portfolio._assert_clean_series   100% 4 0 0   100% 4 0   100%
src/jquantstats/portfolio.py Portfolio.assets   100% 1 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.data   100% 1 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.stats   100% 1 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.plots   100% 1 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.report   100% 1 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.utils   100% 2 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio.truncate   100% 19 0 0   100% 10 0   100%
src/jquantstats/portfolio.py Portfolio.lag   100% 7 0 0   100% 4 0   100%
src/jquantstats/portfolio.py Portfolio.smoothed_holding   100% 10 0 0   100% 6 0   100%
src/jquantstats/portfolio.py Portfolio.correlation   100% 4 0 0   100% 0 0   100%
src/jquantstats/portfolio.py (no function)   100% 69 0 4   100% 0 0   100%
src/jquantstats/result.py Result.__post_init__   100% 7 0 0   100% 6 0   100%
src/jquantstats/result.py Result.create_reports   100% 19 0 0   100% 2 0   100%
src/jquantstats/result.py (no function)   100% 11 0 0   100% 0 0   100%
Total     100% 2994 0 434   100% 664 0   100%

No items found using the specified filter.