Coverage report: 100%

Files Functions Classes

coverage.py v7.15.3, created at 2026-08-06 04:52 +0000

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
src/jquantstats/__init__.py (no class)   100% 10 0 0   100% 0 0   100%
src/jquantstats/_cache.py (no class)   100% 16 0 0   100% 2 0   100%
src/jquantstats/_cost_model.py CostModel   100% 9 0 0   100% 6 0   100%
src/jquantstats/_cost_model.py (no class)   100% 13 0 0   100% 0 0   100%
src/jquantstats/_data_reshape.py _ReshapeMixin   100% 36 0 0   100% 8 0   100%
src/jquantstats/_data_reshape.py (no class)   100% 20 0 3   100% 0 0   100%
src/jquantstats/_plots/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_plots/_data/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_plots/_data/_core.py DataPlots   100% 5 0 0   100% 0 0   100%
src/jquantstats/_plots/_data/_core.py (no class)   100% 17 0 2   100% 0 0   100%
src/jquantstats/_plots/_data/_cumulative.py _CumulativePlotsMixin   100% 57 0 0   100% 16 0   100%
src/jquantstats/_plots/_data/_cumulative.py (no class)   100% 13 0 2   100% 0 0   100%
src/jquantstats/_plots/_data/_dashboard.py (no class)   100% 44 0 0   100% 10 0   100%
src/jquantstats/_plots/_data/_distribution.py _DistributionPlotsMixin   100% 32 0 0   100% 8 0   100%
src/jquantstats/_plots/_data/_distribution.py (no class)   100% 11 0 2   100% 0 0   100%
src/jquantstats/_plots/_data/_drawdown.py _DrawdownPlotsMixin   100% 35 0 0   100% 4 0   100%
src/jquantstats/_plots/_data/_drawdown.py (no class)   100% 11 0 2   100% 0 0   100%
src/jquantstats/_plots/_data/_montecarlo.py _MonteCarloPlotsMixin   100% 63 0 2   100% 20 0   100%
src/jquantstats/_plots/_data/_montecarlo.py (no class)   100% 12 0 2   100% 0 0   100%
src/jquantstats/_plots/_data/_periodic.py _PeriodicPlotsMixin   100% 53 0 0   100% 6 0   100%
src/jquantstats/_plots/_data/_periodic.py (no class)   100% 27 0 2   100% 4 0   100%
src/jquantstats/_plots/_data/_rolling.py _RollingPlotsMixin   100% 68 0 0   100% 16 0   100%
src/jquantstats/_plots/_data/_rolling.py (no class)   100% 21 0 2   100% 0 0   100%
src/jquantstats/_plots/_data/_styling.py (no class)   100% 55 0 0   100% 14 0   100%
src/jquantstats/_plots/_portfolio/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_plots/_portfolio/_core.py PortfolioPlots   100% 1 0 0   100% 0 0   100%
src/jquantstats/_plots/_portfolio/_core.py (no class)   100% 10 0 2   100% 0 0   100%
src/jquantstats/_plots/_portfolio/_diagnostics.py _DiagnosticPlotsMixin   100% 58 0 0   100% 16 0   100%
src/jquantstats/_plots/_portfolio/_diagnostics.py (no class)   100% 12 0 2   100% 0 0   100%
src/jquantstats/_plots/_portfolio/_nav.py _NavPlotsMixin   100% 46 0 0   100% 22 0   100%
src/jquantstats/_plots/_portfolio/_nav.py (no class)   100% 13 0 2   100% 0 0   100%
src/jquantstats/_plots/_portfolio/_rolling.py _RollingPortfolioPlotsMixin   100% 32 0 0   100% 8 0   100%
src/jquantstats/_plots/_portfolio/_rolling.py (no class)   100% 15 0 2   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioStatsLike   100% 0 0 8   100% 0 0   100%
src/jquantstats/_plots/_protocol.py PortfolioLike   100% 0 0 32   100% 0 0   100%
src/jquantstats/_plots/_protocol.py (no class)   100% 6 0 70   100% 0 0   100%
src/jquantstats/_portfolio_attribution.py PortfolioAttributionMixin   100% 16 0 2   100% 2 0   100%
src/jquantstats/_portfolio_attribution.py (no class)   100% 13 0 11   100% 0 0   100%
src/jquantstats/_portfolio_base.py _PortfolioMembers   100% 0 0 6   100% 0 0   100%
src/jquantstats/_portfolio_base.py (no class)   100% 4 0 21   100% 0 0   100%
src/jquantstats/_portfolio_constructors.py PortfolioConstructorMixin   100% 24 0 2   100% 10 0   100%
src/jquantstats/_portfolio_constructors.py (no class)   100% 30 0 12   100% 14 0   100%
src/jquantstats/_portfolio_cost.py PortfolioCostMixin   100% 57 0 0   100% 26 0   100%
src/jquantstats/_portfolio_cost.py (no class)   100% 15 0 0   100% 0 0   100%
src/jquantstats/_portfolio_nav.py PortfolioNavMixin   100% 30 0 2   100% 8 0   100%
src/jquantstats/_portfolio_nav.py (no class)   100% 27 0 5   100% 0 0   100%
src/jquantstats/_portfolio_transform.py PortfolioTransformMixin   100% 42 0 2   100% 20 0   100%
src/jquantstats/_portfolio_transform.py (no class)   100% 19 0 10   100% 0 0   100%
src/jquantstats/_portfolio_turnover.py PortfolioTurnoverMixin   100% 20 0 0   100% 4 0   100%
src/jquantstats/_portfolio_turnover.py (no class)   100% 12 0 2   100% 0 0   100%
src/jquantstats/_protocol.py StatsLike   100% 0 0 2   100% 0 0   100%
src/jquantstats/_protocol.py DataLike   100% 0 0 18   100% 0 0   100%
src/jquantstats/_protocol.py (no class)   100% 4 0 39   100% 0 0   100%
src/jquantstats/_reports/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_reports/_data.py Reports   100% 31 0 0   100% 6 0   100%
src/jquantstats/_reports/_data.py (no class)   100% 45 0 2   100% 16 0   100%
src/jquantstats/_reports/_formatting.py (no class)   100% 16 0 0   100% 4 0   100%
src/jquantstats/_reports/_html.py (no class)   100% 70 0 0   100% 20 0   100%
src/jquantstats/_reports/_metrics.py (no class)   100% 153 0 0   100% 24 0   100%
src/jquantstats/_reports/_portfolio.py Report   100% 50 0 0   100% 6 0   100%
src/jquantstats/_reports/_portfolio.py (no class)   100% 49 0 2   100% 12 0   100%
src/jquantstats/_reports/_protocol.py PlotsLike   100% 0 0 16   100% 0 0   100%
src/jquantstats/_reports/_protocol.py PortfolioLike   100% 0 0 12   100% 0 0   100%
src/jquantstats/_reports/_protocol.py (no class)   100% 6 0 43   100% 0 0   100%
src/jquantstats/_stats/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic.py _BasicStatsMixin   100% 91 0 2   100% 22 0   100%
src/jquantstats/_stats/_basic.py (no class)   100% 44 0 0   100% 0 0   100%
src/jquantstats/_stats/_basic_core.py _BasicCoreMixin   100% 84 0 0   100% 10 0   100%
src/jquantstats/_stats/_basic_core.py (no class)   100% 60 0 5   100% 0 0   100%
src/jquantstats/_stats/_benchmark.py _BenchmarkStatsMixin   100% 64 0 1   100% 12 0   100%
src/jquantstats/_stats/_benchmark.py (no class)   100% 18 0 2   100% 0 0   100%
src/jquantstats/_stats/_capture.py _CaptureStatsMixin   100% 14 0 2   100% 6 0   100%
src/jquantstats/_stats/_capture.py (no class)   100% 11 0 5   100% 0 0   100%
src/jquantstats/_stats/_concentration.py _ConcentrationStatsMixin   100% 10 0 0   100% 4 0   100%
src/jquantstats/_stats/_concentration.py (no class)   100% 8 0 0   100% 0 0   100%
src/jquantstats/_stats/_core.py (no class)   100% 55 0 16   100% 14 0   100%
src/jquantstats/_stats/_drawdown.py _DrawdownMixin   100% 37 0 0   100% 8 0   100%
src/jquantstats/_stats/_drawdown.py (no class)   100% 19 0 5   100% 0 0   100%
src/jquantstats/_stats/_internals.py (no class)   100% 17 0 0   100% 4 0   100%
src/jquantstats/_stats/_montecarlo.py _MonteCarloStatsMixin   100% 55 0 2   100% 16 0   100%
src/jquantstats/_stats/_montecarlo.py (no class)   100% 18 0 5   100% 0 0   100%
src/jquantstats/_stats/_performance.py _RiskStatsMixin   100% 113 0 5   100% 38 0   100%
src/jquantstats/_stats/_performance.py (no class)   100% 31 0 7   100% 0 0   100%
src/jquantstats/_stats/_periodic.py _PeriodicReportingMixin   100% 73 0 0   100% 22 0   100%
src/jquantstats/_stats/_periodic.py (no class)   100% 11 0 5   100% 0 0   100%
src/jquantstats/_stats/_reporting.py _ReportingStatsMixin   100% 88 0 2   100% 30 0   100%
src/jquantstats/_stats/_reporting.py (no class)   100% 22 0 6   100% 0 0   100%
src/jquantstats/_stats/_rolling.py _RollingStatsMixin   100% 63 0 0   100% 22 0   100%
src/jquantstats/_stats/_rolling.py (no class)   100% 20 0 5   100% 0 0   100%
src/jquantstats/_stats/_stats.py Stats   100% 8 0 0   100% 0 0   100%
src/jquantstats/_stats/_stats.py (no class)   100% 30 0 2   100% 0 0   100%
src/jquantstats/_stats/_summary.py _SummaryStatsMixin   100% 47 0 22   100% 12 0   100%
src/jquantstats/_stats/_summary.py (no class)   100% 13 0 25   100% 0 0   100%
src/jquantstats/_types.py (no class)   100% 4 0 0   100% 0 0   100%
src/jquantstats/_utils/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
src/jquantstats/_utils/_construction.py (no class)   100% 80 0 3   100% 34 0   100%
src/jquantstats/_utils/_data.py DataUtils   100% 72 0 1   100% 16 0   100%
src/jquantstats/_utils/_data.py (no class)   100% 27 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py PortfolioUtils   100% 14 0 0   100% 0 0   100%
src/jquantstats/_utils/_portfolio.py (no class)   100% 23 0 0   100% 0 0   100%
src/jquantstats/_utils/_protocol.py PortfolioLike   100% 0 0 4   100% 0 0   100%
src/jquantstats/_utils/_protocol.py (no class)   100% 3 0 13   100% 0 0   100%
src/jquantstats/data.py Data   100% 64 0 3   100% 22 0   100%
src/jquantstats/data.py (no class)   100% 43 0 0   100% 0 0   100%
src/jquantstats/exceptions.py JQuantStatsError   100% 0 0 0   100% 0 0   100%
src/jquantstats/exceptions.py MissingDateColumnError   100% 9 0 0   100% 2 0   100%
src/jquantstats/exceptions.py InvalidCashPositionTypeError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py InvalidPricesTypeError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NonPositiveAumError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py RowCountMismatchError   100% 3 0 0   100% 0 0   100%
src/jquantstats/exceptions.py IntegerIndexBoundError   100% 3 0 0   100% 0 0   100%
src/jquantstats/exceptions.py PositionExprColumnError   100% 4 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NoAssetColumnsError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NegativeCostBpsError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NegativeAnnualFeeError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py InvalidMaxBpsError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py UncleanSeriesError   100% 4 0 0   100% 0 0   100%
src/jquantstats/exceptions.py MuSchemaError   100% 3 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NullsInReturnsError   100% 4 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NoBenchmarkError   100% 1 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NonPositiveWindowError   100% 2 0 0   100% 0 0   100%
src/jquantstats/exceptions.py NonPositivePeriodsPerYearError   100% 1 0 0   100% 0 0   100%
src/jquantstats/exceptions.py BenchmarkAlignmentWarning   100% 0 0 0   100% 0 0   100%
src/jquantstats/exceptions.py (no class)   100% 38 0 0   100% 0 0   100%
src/jquantstats/portfolio.py Portfolio   100% 42 0 0   100% 24 0   100%
src/jquantstats/portfolio.py (no class)   100% 65 0 0   100% 0 0   100%
src/jquantstats/result.py Result   100% 26 0 0   100% 8 0   100%
src/jquantstats/result.py (no class)   100% 11 0 0   100% 0 0   100%
Total     100% 3255 0 494   100% 658 0   100%

No items found using the specified filter.