Skip to content

Commit da34836

Browse files
author
miranov25
committed
housekeeping: update feature taxonomy for FIX1 test renames + bool feature
- Updated 6 QUANTILE feature entries to match FIX1 test names (Class 10 → TestQuantileDeterminism, Class 11 → TestQuantileBackwardCompat, renamed test methods in Classes 4, 5, 13) - Added COMPAT.bool_expression feature (11 tests, BUG_dfdraw_20260505) - Capability matrix regenerated: 53 features, 0 Broken Test results: 577 passed, 0 failed (unchanged)
1 parent 61b02d4 commit da34836

2 files changed

Lines changed: 56 additions & 31 deletions

File tree

UTILS/dfextensions/dfdraw/docs/CAPABILITY_MATRIX.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Capability Matrix — dfdraw
22

3-
**Generated:** 2026-04-30 20:27 UTC
3+
**Generated:** 2026-05-05 12:33 UTC
44
**Phase:** 13.15.DF
55
**Generator:** `scripts/generate_capability_matrix.py`
66
**Sources:** `tests/feature_taxonomy.py` + `tests/test_layer_classification.py`
@@ -10,11 +10,11 @@
1010
| Status | Count | % |
1111
|--------|------:|--:|
1212
| ✅ Verified | 7 | 13% |
13-
| ☑️ Smoke-only | 45 | 87% |
13+
| ☑️ Smoke-only | 46 | 87% |
1414
| 🧨 Broken | 0 | 0% |
1515
| 📋 Planned | 0 | 0% |
16-
| **Total features** | **52** | |
17-
| **Total proof tests** | **213** | |
16+
| **Total features** | **53** | |
17+
| **Total proof tests** | **226** | |
1818
| **Invariance tests** | **28** | |
1919

2020
**Status key:**
@@ -89,11 +89,13 @@
8989
| ☑️ | **VECTOR.kwarg_surface** — Vector dispatch forwards named-parameter surface + facet guard (FIX1) | 6 | 0 |
9090
| | **QUANTILE** | | |
9191
| ☑️ | **QUANTILE.error_bars** — Quantile error_bars mode (asymmetric bars from symmetric pair) | 8 | 0 |
92-
| ☑️ | **QUANTILE.band** — Quantile band mode (fill_between from symmetric triple) | 7 | 0 |
92+
| ☑️ | **QUANTILE.band** — Quantile band mode (fill_between from symmetric triple) | 8 | 0 |
9393
| ☑️ | **QUANTILE.central** — Quantile central= parameter (mean/median/both/none) | 7 | 0 |
94-
| ☑️ | **QUANTILE.auto_detection** — Quantile mode auto-detection from list shape | 7 | 0 |
94+
| ☑️ | **QUANTILE.auto_detection** — Quantile mode auto-detection from list shape | 8 | 0 |
9595
| ☑️ | **QUANTILE.style_keys** — Quantile style keys (band.alpha, band.hatch, error_bars.capsize, central_default) | 8 | 0 |
96-
| ☑️ | **QUANTILE.parity** — Quantile parity + backward-compat regression-lock | 6 | 0 |
96+
| ☑️ | **QUANTILE.parity** — Quantile determinism + backward-compat regression-lock | 6 | 0 |
97+
| | **COMPAT** | | |
98+
| ☑️ | **COMPAT.bool_expression** — Boolean expression input (==, !=, >, <, &, |, ~) on all plot functions | 11 | 0 |
9799

98100
---
99101

UTILS/dfextensions/dfdraw/tests/feature_taxonomy.py

Lines changed: 47 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@
551551
],
552552
},
553553
# =========================================================================
554-
# Phase 13.25.DF: Quantile rendering on profile() (Phase A)
554+
# Phase 13.25.DF FIX1: Quantile rendering on profile() (Phase A)
555555
# =========================================================================
556556
{
557557
"id": "QUANTILE.error_bars",
@@ -561,9 +561,9 @@
561561
"test_quantiles_profile.py::TestQuantilePerBinCorrectness::test_q16_q84_per_bin_matches_nanpercentile",
562562
"test_quantiles_profile.py::TestQuantilePerBinCorrectness::test_q25_q75_per_bin_matches_nanpercentile",
563563
"test_quantiles_profile.py::TestQuantilePerBinCorrectness::test_q05_q95_per_bin_matches_nanpercentile",
564-
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_yerr_is_asymmetric_tuple",
565-
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_yerr_lower_equals_central_minus_q_lower",
566-
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_yerr_upper_equals_q_upper_minus_central",
564+
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_yerr_is_asymmetric",
565+
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_q_lower_below_mean",
566+
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_q_upper_above_mean",
567567
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_with_central_mean",
568568
"test_quantiles_profile.py::TestQuantileErrorBarsRendering::test_error_bars_with_central_median",
569569
],
@@ -575,11 +575,12 @@
575575
"tests": [
576576
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_renders_polycollection",
577577
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_alpha_default_is_025",
578-
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_y_lower_equals_q_lower_per_bin",
579-
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_y_upper_equals_q_upper_per_bin",
580-
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_with_central_none_omits_central_line",
581-
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_alpha_read_from_style",
582-
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_hatch_read_from_style",
578+
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_color_matches_central_line",
579+
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_y_lower_equals_q_lower",
580+
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_y_upper_equals_q_upper",
581+
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_with_central_none",
582+
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_alpha_from_style",
583+
"test_quantiles_profile.py::TestQuantileBandRendering::test_band_hatch_from_style",
583584
],
584585
},
585586
{
@@ -603,6 +604,7 @@
603604
"tests": [
604605
"test_quantiles_profile.py::TestQuantileAutoDetection::test_symmetric_pair_no_05_returns_error_bars",
605606
"test_quantiles_profile.py::TestQuantileAutoDetection::test_symmetric_triple_with_05_returns_band",
607+
"test_quantiles_profile.py::TestQuantileAutoDetection::test_symmetric_pair_p25_p75_returns_error_bars",
606608
"test_quantiles_profile.py::TestQuantileAutoDetection::test_asymmetric_raises_notimplementederror_phaseb",
607609
"test_quantiles_profile.py::TestQuantileAutoDetection::test_multi_pair_raises_notimplementederror_phaseb",
608610
"test_quantiles_profile.py::TestQuantileAutoDetection::test_single_value_raises_valueerror",
@@ -615,27 +617,48 @@
615617
"name": "Quantile style keys (band.alpha, band.hatch, error_bars.capsize, central_default)",
616618
"category": "QUANTILE",
617619
"tests": [
618-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_quantile_band_alpha_default_is_025",
619-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_quantile_band_hatch_default_is_none",
620-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_quantile_error_bars_capsize_default_is_3",
621-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_quantile_central_default_is_mean",
622-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_set_style_overrides_propagate_to_band_rendering",
623-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_set_style_overrides_propagate_to_error_bars_rendering",
624-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_save_load_style_round_trips_quantile_keys",
625-
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_quantile_namespace_integrity",
620+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_band_alpha_default",
621+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_band_hatch_default",
622+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_capsize_default",
623+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_central_default",
624+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_override_band",
625+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_override_capsize",
626+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_save_load_roundtrip",
627+
"test_quantiles_profile.py::TestQuantileStyleKeyDefaults::test_namespace_integrity",
626628
],
627629
},
628630
{
629631
"id": "QUANTILE.parity",
630-
"name": "Quantile parity + backward-compat regression-lock",
632+
"name": "Quantile determinism + backward-compat regression-lock",
631633
"category": "QUANTILE",
632634
"tests": [
633-
"test_quantiles_profile.py::TestQuantileParityFixture::test_parity_error_bars_mean",
634-
"test_quantiles_profile.py::TestQuantileParityFixture::test_parity_band_mean",
635-
"test_quantiles_profile.py::TestQuantileParityFixture::test_parity_deterministic_quantiles",
636-
"test_quantiles_profile.py::TestQuantileBackwardCompat::test_no_quantiles_kwarg_axes_structurally_equal",
637-
"test_quantiles_profile.py::TestQuantileBackwardCompat::test_no_quantiles_kwarg_stats_numerically_equal_rtol_1e_12",
638-
"test_quantiles_profile.py::TestQuantileBackwardCompat::test_makesmoothmaps_call_unchanged",
635+
"test_quantiles_profile.py::TestQuantileDeterminism::test_det_error_bars_mean",
636+
"test_quantiles_profile.py::TestQuantileDeterminism::test_det_band_mean",
637+
"test_quantiles_profile.py::TestQuantileDeterminism::test_det_quantile_arrays",
638+
"test_quantiles_profile.py::TestQuantileBackwardCompat::test_no_quantiles_produces_one_errorbar_container",
639+
"test_quantiles_profile.py::TestQuantileBackwardCompat::test_no_quantiles_stats_match_reference",
640+
"test_quantiles_profile.py::TestQuantileBackwardCompat::test_production_pattern_unchanged",
641+
],
642+
},
643+
# =========================================================================
644+
# BUG_dfdraw_20260505: Boolean expression crash fix
645+
# =========================================================================
646+
{
647+
"id": "COMPAT.bool_expression",
648+
"name": "Boolean expression input (==, !=, >, <, &, |, ~) on all plot functions",
649+
"category": "COMPAT",
650+
"tests": [
651+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_equality_bool_histogram",
652+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_inequality_bool",
653+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_greater_than_bool",
654+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_logical_and_bool",
655+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_logical_or_bool",
656+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_logical_not_bool",
657+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_bool_group_by",
658+
"test_quantiles_profile.py::TestBoolExpressionHistogram::test_bool_values_correct",
659+
"test_quantiles_profile.py::TestBoolExpressionProfile::test_bool_y_profile",
660+
"test_quantiles_profile.py::TestBoolExpressionProfile::test_bool_x_profile",
661+
"test_quantiles_profile.py::TestBoolExpressionProfile::test_bool_y_with_quantiles",
639662
],
640663
},
641664
]

0 commit comments

Comments
 (0)