Coverage report: 97%

Files Functions Classes

coverage.py v7.13.5, created at 2026-05-01 22:47 +0000

File function   statements missing excluded   coverage
src / qsmile / __init__.py (no function)   15 0 0   100%
src / qsmile / core / __init__.py (no function)   4 0 0   100%
src / qsmile / core / black76.py _validate_common   15 0 0   100%
src / qsmile / core / black76.py black76_call   16 0 0   100%
src / qsmile / core / black76.py black76_put   16 2 0   88%
src / qsmile / core / black76.py black76_implied_vol   34 0 0   100%
src / qsmile / core / black76.py (no function)   8 0 0   100%
src / qsmile / core / coords.py (no function)   12 0 0   100%
src / qsmile / core / daycount.py DayCount.year_fraction   6 0 0   100%
src / qsmile / core / daycount.py (no function)   7 0 0   100%
src / qsmile / core / maps.py _fixed_to_moneyness   4 2 0   50%
src / qsmile / core / maps.py _moneyness_to_fixed   4 2 0   50%
src / qsmile / core / maps.py _moneyness_to_log_moneyness   1 0 0   100%
src / qsmile / core / maps.py _log_moneyness_to_moneyness   1 0 0   100%
src / qsmile / core / maps.py _log_moneyness_to_standardised   4 0 0   100%
src / qsmile / core / maps.py _standardised_to_log_moneyness   4 2 0   50%
src / qsmile / core / maps.py _vol_to_variance   1 0 0   100%
src / qsmile / core / maps.py _variance_to_vol   1 0 0   100%
src / qsmile / core / maps.py _variance_to_total_variance   1 0 0   100%
src / qsmile / core / maps.py _total_variance_to_variance   1 0 0   100%
src / qsmile / core / maps.py _vol_to_price   5 2 0   60%
src / qsmile / core / maps.py _price_to_vol   9 2 0   78%
src / qsmile / core / maps.py _ladder_path   6 0 0   100%
src / qsmile / core / maps.py compose_x_maps   2 0 0   100%
src / qsmile / core / maps.py compose_y_maps   2 0 0   100%
src / qsmile / core / maps.py apply_x_chain   4 0 0   100%
src / qsmile / core / maps.py apply_y_chain   11 3 0   73%
src / qsmile / core / maps.py (no function)   29 0 2   100%
src / qsmile / core / plot.py _require_matplotlib   5 0 0   100%
src / qsmile / core / plot.py plot_bid_ask   23 0 0   100%
src / qsmile / core / plot.py plot_line   19 2 0   89%
src / qsmile / core / plot.py (no function)   5 0 2   100%
src / qsmile / data / __init__.py (no function)   7 0 0   100%
src / qsmile / data / io.py SampleDataReader.__init__   3 0 0   100%
src / qsmile / data / io.py SampleDataReader.get_chain   3 0 0   100%
src / qsmile / data / io.py SampleDataReader._resolve_path   8 0 0   100%
src / qsmile / data / io.py SampleDataReader._build_chain   15 0 0   100%
src / qsmile / data / io.py (no function)   14 0 0   100%
src / qsmile / data / meta.py SmileMetadata.texpiry   1 0 0   100%
src / qsmile / data / meta.py SmileMetadata.__post_init__   12 0 0   100%
src / qsmile / data / meta.py (no function)   15 0 0   100%
src / qsmile / data / prices.py _calibrate_forward_df   20 2 0   90%
src / qsmile / data / prices.py delta_blend_ivols   21 0 0   100%
src / qsmile / data / prices.py OptionChain.__post_init__   33 2 0   94%
src / qsmile / data / prices.py OptionChain.__repr__   6 0 0   100%
src / qsmile / data / prices.py OptionChain.strikes   1 0 0   100%
src / qsmile / data / prices.py OptionChain.call_bid   1 0 0   100%
src / qsmile / data / prices.py OptionChain.call_ask   1 0 0   100%
src / qsmile / data / prices.py OptionChain.put_bid   1 0 0   100%
src / qsmile / data / prices.py OptionChain.put_ask   1 0 0   100%
src / qsmile / data / prices.py OptionChain.volume   1 0 0   100%
src / qsmile / data / prices.py OptionChain.open_interest   1 0 0   100%
src / qsmile / data / prices.py OptionChain.call_mid   1 0 0   100%
src / qsmile / data / prices.py OptionChain.put_mid   1 0 0   100%
src / qsmile / data / prices.py OptionChain.to_vols   40 2 0   95%
src / qsmile / data / prices.py OptionChain.filter   39 0 0   100%
src / qsmile / data / prices.py OptionChain.filter._non_monotone_mask   12 0 0   100%
src / qsmile / data / prices.py OptionChain.plot   16 2 0   88%
src / qsmile / data / prices.py (no function)   39 0 3   100%
src / qsmile / data / strikes.py StrikeArray.__init__   3 0 0   100%
src / qsmile / data / strikes.py StrikeArray.set   17 0 0   100%
src / qsmile / data / strikes.py StrikeArray.strikes   1 0 0   100%
src / qsmile / data / strikes.py StrikeArray.columns   1 0 0   100%
src / qsmile / data / strikes.py StrikeArray.values   3 0 0   100%
src / qsmile / data / strikes.py StrikeArray.get_values   3 0 0   100%
src / qsmile / data / strikes.py StrikeArray.has   1 0 0   100%
src / qsmile / data / strikes.py StrikeArray.__len__   1 0 0   100%
src / qsmile / data / strikes.py StrikeArray.filter   7 1 0   86%
src / qsmile / data / strikes.py StrikeArray.to_dataframe   1 0 0   100%
src / qsmile / data / strikes.py (no function)   18 0 0   100%
src / qsmile / data / vols.py VolData.__post_init__   29 0 0   100%
src / qsmile / data / vols.py VolData.native_x_coord   1 0 0   100%
src / qsmile / data / vols.py VolData.native_y_coord   1 0 0   100%
src / qsmile / data / vols.py VolData._is_native   1 0 0   100%
src / qsmile / data / vols.py VolData.x   5 0 0   100%
src / qsmile / data / vols.py VolData.y_bid   6 0 0   100%
src / qsmile / data / vols.py VolData.y_ask   6 0 0   100%
src / qsmile / data / vols.py VolData.volume   1 0 0   100%
src / qsmile / data / vols.py VolData.open_interest   1 0 0   100%
src / qsmile / data / vols.py VolData.y_mid   1 0 0   100%
src / qsmile / data / vols.py VolData.transform   9 0 0   100%
src / qsmile / data / vols.py VolData.from_mid_vols   13 0 0   100%
src / qsmile / data / vols.py VolData.evaluate   6 0 0   100%
src / qsmile / data / vols.py VolData.plot   2 0 0   100%
src / qsmile / data / vols.py (no function)   41 0 2   100%
src / qsmile / models / __init__.py (no function)   6 0 0   100%
src / qsmile / models / base.py SmileModel.__post_init__   3 0 0   100%
src / qsmile / models / base.py SmileModel.params   1 0 0   100%
src / qsmile / models / base.py SmileModel.to_array   1 0 0   100%
src / qsmile / models / base.py SmileModel.from_array   2 0 0   100%
src / qsmile / models / base.py SmileModel._evaluate   0 0 1   100%
src / qsmile / models / base.py SmileModel.initial_guess   0 0 1   100%
src / qsmile / models / base.py SmileModel.evaluate   9 0 0   100%
src / qsmile / models / base.py SmileModel.transform   4 0 0   100%
src / qsmile / models / base.py SmileModel.plot   7 0 0   100%
src / qsmile / models / base.py (no function)   30 0 5   100%
src / qsmile / models / result.py _residuals   3 0 0   100%
src / qsmile / models / result.py fit   11 0 0   100%
src / qsmile / models / result.py (no function)   16 0 0   100%
src / qsmile / models / sabr.py SABRModel.__post_init__   13 0 0   100%
src / qsmile / models / sabr.py SABRModel._evaluate   8 2 0   75%
src / qsmile / models / sabr.py SABRModel._hagan_implied_vol   15 0 0   100%
src / qsmile / models / sabr.py SABRModel.initial_guess   12 2 0   83%
src / qsmile / models / sabr.py (no function)   23 0 0   100%
src / qsmile / models / svi.py SVIModel.__post_init__   10 0 0   100%
src / qsmile / models / svi.py SVIModel._evaluate   3 0 0   100%
src / qsmile / models / svi.py SVIModel.initial_guess   12 2 0   83%
src / qsmile / models / svi.py (no function)   22 0 0   100%
Total     978 32 16   97%

No items found using the specified filter.