From ae6f9163fdda40f36d124f9f8b690b8af09d3572 Mon Sep 17 00:00:00 2001 From: Demian Vladi Date: Thu, 23 Jul 2026 12:27:42 -0700 Subject: [PATCH] test(neighbor): oracle-vet 6 features (analytic + CellProfiler) -> neighbor 8/9 Vet the 2D neighbor family against independent/external oracles, taking it from 2/9 to 8/9 vetted. CellProfiler (real cellprofiler.modules.MeasureObjectNeighbors, Adjacent method, run offline via tests/vetting/oracles/gen_neighbor_cellprofiler.py): - NUM_NEIGHBORS, CLOSEST_NEIGHBOR1_DIST: CP reproduces Nyxus exactly on the fixture. Upgrades these two rows from tracker-only to a checked-in generator + gtest (test_neighbor_cellprofiler.h). Analytic (independent numpy recomputation of Nyxus' documented closed forms in tests/vetting/oracles/gen_neighbor_analytic.py; test_neighbor_analytic.h, 1e-4): - CLOSEST_NEIGHBOR2_DIST, CLOSEST_NEIGHBOR1_ANG, CLOSEST_NEIGHBOR2_ANG, ANG_BW_NEIGHBORS_MEAN/STDDEV/MODE. These are deterministic closed forms of the (CP-vetted) neighbor graph. CP's AngleBetweenNeighbors is a subtended angle and its SecondClosestDistance ranks all objects globally -- different definitions, so CP is not a valid oracle for them. PERCENT_TOUCHING stays regression: audited against real CellProfiler and found to diverge on 3/5 ROIs. Nyxus = distinct contour pixels 8-adjacent to a neighbor / contour length; CP = object outline pixels overlapping a disk(distance+0.5)-dilated neighbor / perimeter. No CP method (Adjacent/Expand/Within) reproduces Nyxus. Documented convention gap. Removes the two superseded "unvetted_no_direct_oracle" angle regression functions (now tightly vetted by the analytic oracle). Registry updated; coverage regenerated (604 -> 610 / 758). gtest 717/717; pytest 72 passed (7 arrow fails are the tiff-only local build, not regressions). --- tests/test_all.cc | 10 +- tests/test_neighbor_analytic.h | 89 + tests/test_neighbor_cellprofiler.h | 49 + tests/test_neighbor_regression.h | 79 +- tests/vetting/coverage_report.md | 6 +- tests/vetting/oracle_coverage.csv | 1518 ++++++++--------- .../vetting/oracles/gen_neighbor_analytic.py | 152 ++ .../oracles/gen_neighbor_cellprofiler.py | 127 ++ 8 files changed, 1190 insertions(+), 840 deletions(-) create mode 100644 tests/test_neighbor_analytic.h create mode 100644 tests/test_neighbor_cellprofiler.h create mode 100644 tests/vetting/oracles/gen_neighbor_analytic.py create mode 100644 tests/vetting/oracles/gen_neighbor_cellprofiler.py diff --git a/tests/test_all.cc b/tests/test_all.cc index e7ced9fd..5e4aeb8f 100644 --- a/tests/test_all.cc +++ b/tests/test_all.cc @@ -19,6 +19,8 @@ #include "test_remaining2d_common.h" #include "test_zernike_regression.h" #include "test_neighbor_regression.h" +#include "test_neighbor_cellprofiler.h" +#include "test_neighbor_analytic.h" #include "test_initialization_mechanics.h" #include "test_glcm_ibsi.h" #include "test_gldm_ibsi.h" @@ -1147,14 +1149,14 @@ TEST(TEST_NYXUS, TEST_NEIGHBORHOOD2D_CLOSEST_NEIGHBORS) ASSERT_NO_THROW(test_neighborhood2d_closest_neighbors()); } -TEST(TEST_NYXUS, TEST_NEIGHBORHOOD2D_UNVETTED_NO_DIRECT_ORACLE_CLOSEST_NEIGHBOR_ANGLES) +TEST(TEST_NYXUS, TEST_NEIGHBORHOOD2D_CELLPROFILER_COUNTS_FIRST_DISTANCE) { - ASSERT_NO_THROW(test_neighborhood2d_unvetted_no_direct_oracle_closest_neighbor_angles()); + ASSERT_NO_THROW(test_neighborhood2d_cellprofiler_counts_and_first_distance()); } -TEST(TEST_NYXUS, TEST_NEIGHBORHOOD2D_UNVETTED_NO_DIRECT_ORACLE_ANGLE_STATS) +TEST(TEST_NYXUS, TEST_NEIGHBORHOOD2D_ANALYTIC_SECOND_DISTANCE_AND_ANGLES) { - ASSERT_NO_THROW(test_neighborhood2d_unvetted_no_direct_oracle_neighbor_angle_stats()); + ASSERT_NO_THROW(test_neighborhood2d_analytic_second_distance_and_angles()); } diff --git a/tests/test_neighbor_analytic.h b/tests/test_neighbor_analytic.h new file mode 100644 index 00000000..27373943 --- /dev/null +++ b/tests/test_neighbor_analytic.h @@ -0,0 +1,89 @@ +#pragma once + +// ANALYTIC oracle for the 2D neighbor second-distance + angle features. +// Given the neighbor graph (which CellProfiler vets, see test_neighbor_cellprofiler.h), +// these six features are deterministic closed forms of the ROI centroids, so an +// independent numpy recomputation of Nyxus' documented formulas IS the oracle +// (same analytic-conformance basis as CIRCULARITY / intensity_histogram). Goldens +// and the formula derivation are in tests/vetting/oracles/gen_neighbor_analytic.py, +// which validates them to double precision against these values; asserted at 1e-4. +// +// Why not CellProfiler for these: CP's AngleBetweenNeighbors is the angle SUBTENDED +// at an object by its two neighbors, not Nyxus' absolute atan2 direction angle; and +// CP's SecondClosestDistance is the 2nd-closest of ANY object, whereas Nyxus reports +// the 2nd-closest neighbor WITHIN the search radius (0 when <2 in-radius neighbors). + +#include + +#include "test_neighbor_regression.h" // shared fixture builder calculate_neighborhood2d_feature_values + +static std::unordered_map> neighbor2d_analytic_golden_by_label{ + {1, { + {"CLOSEST_NEIGHBOR2_DIST", 2.54950975679639}, + {"CLOSEST_NEIGHBOR1_ANG", 0.0}, + {"CLOSEST_NEIGHBOR2_ANG", 191.30993247402}, + {"ANG_BW_NEIGHBORS_MEAN", 132.172516881495}, + {"ANG_BW_NEIGHBORS_STDDEV", 115.230018010206}, + {"ANG_BW_NEIGHBORS_MODE", 0.0}, + }}, + {2, { + {"CLOSEST_NEIGHBOR2_DIST", 0.0}, + {"CLOSEST_NEIGHBOR1_ANG", 11.3099324740202}, + {"CLOSEST_NEIGHBOR2_ANG", 0.0}, + {"ANG_BW_NEIGHBORS_MEAN", 11.3099324740202}, + {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, + {"ANG_BW_NEIGHBORS_MODE", 11.0}, + }}, + {3, { + {"CLOSEST_NEIGHBOR2_DIST", 0.0}, + {"CLOSEST_NEIGHBOR1_ANG", 78.6900675259798}, + {"CLOSEST_NEIGHBOR2_ANG", 0.0}, + {"ANG_BW_NEIGHBORS_MEAN", 78.6900675259798}, + {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, + {"ANG_BW_NEIGHBORS_MODE", 79.0}, + }}, + {4, { + {"CLOSEST_NEIGHBOR2_DIST", 0.0}, + {"CLOSEST_NEIGHBOR1_ANG", 180.0}, + {"CLOSEST_NEIGHBOR2_ANG", 0.0}, + {"ANG_BW_NEIGHBORS_MEAN", 180.0}, + {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, + {"ANG_BW_NEIGHBORS_MODE", 180.0}, + }}, + {5, { + {"CLOSEST_NEIGHBOR2_DIST", 0.0}, + {"CLOSEST_NEIGHBOR1_ANG", 258.69006752598}, + {"CLOSEST_NEIGHBOR2_ANG", 0.0}, + {"ANG_BW_NEIGHBORS_MEAN", 258.69006752598}, + {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, + {"ANG_BW_NEIGHBORS_MODE", 259.0}, + }} +}; + +static void assert_neighbor2d_analytic( + const std::unordered_map& roiData, + int label, + Nyxus::Feature2D feature, + const std::string& feature_name) +{ + SCOPED_TRACE(std::string("ANALYTIC__") + feature_name + "__L" + std::to_string(label)); + ASSERT_TRUE(neighbor2d_analytic_golden_by_label[label].count(feature_name) > 0); + ASSERT_NEAR(roiData.at(label).fvals[static_cast(feature)][0], + neighbor2d_analytic_golden_by_label[label][feature_name], 1e-4); +} + +void test_neighborhood2d_analytic_second_distance_and_angles() +{ + std::unordered_map roiData; + calculate_neighborhood2d_feature_values(roiData); + + for (int label : {1, 2, 3, 4, 5}) + { + assert_neighbor2d_analytic(roiData, label, Nyxus::Feature2D::CLOSEST_NEIGHBOR2_DIST, "CLOSEST_NEIGHBOR2_DIST"); + assert_neighbor2d_analytic(roiData, label, Nyxus::Feature2D::CLOSEST_NEIGHBOR1_ANG, "CLOSEST_NEIGHBOR1_ANG"); + assert_neighbor2d_analytic(roiData, label, Nyxus::Feature2D::CLOSEST_NEIGHBOR2_ANG, "CLOSEST_NEIGHBOR2_ANG"); + assert_neighbor2d_analytic(roiData, label, Nyxus::Feature2D::ANG_BW_NEIGHBORS_MEAN, "ANG_BW_NEIGHBORS_MEAN"); + assert_neighbor2d_analytic(roiData, label, Nyxus::Feature2D::ANG_BW_NEIGHBORS_STDDEV, "ANG_BW_NEIGHBORS_STDDEV"); + assert_neighbor2d_analytic(roiData, label, Nyxus::Feature2D::ANG_BW_NEIGHBORS_MODE, "ANG_BW_NEIGHBORS_MODE"); + } +} diff --git a/tests/test_neighbor_cellprofiler.h b/tests/test_neighbor_cellprofiler.h new file mode 100644 index 00000000..3b180ff5 --- /dev/null +++ b/tests/test_neighbor_cellprofiler.h @@ -0,0 +1,49 @@ +#pragma once + +// CellProfiler oracle for the 2D neighbor-graph features NUM_NEIGHBORS and +// CLOSEST_NEIGHBOR1_DIST. The real cellprofiler.modules.MeasureObjectNeighbors +// module (Adjacent method) was run on this fixture; CP reproduces Nyxus exactly for +// both features. Goldens + the offline CP run are in +// tests/vetting/oracles/gen_neighbor_cellprofiler.py; asserted at 1e-4. +// +// PERCENT_TOUCHING is NOT vetted here: CP and Nyxus use different definitions +// (Nyxus = contour pixels 8-adjacent to a neighbor / contour length; CP = object +// outline pixels overlapping a disk(distance+0.5)-dilated neighbor / perimeter), and +// no CP distance method reproduces Nyxus (diverges on 3/5 ROIs). It stays a +// regression snapshot in test_neighbor_regression.h. + +#include + +#include "test_neighbor_regression.h" // shared fixture builder calculate_neighborhood2d_feature_values + +static std::unordered_map> neighbor2d_cellprofiler_golden_by_label{ + {1, {{"NUM_NEIGHBORS", 4.0}, {"CLOSEST_NEIGHBOR1_DIST", 2.5}}}, + {2, {{"NUM_NEIGHBORS", 1.0}, {"CLOSEST_NEIGHBOR1_DIST", 2.54950975679639}}}, + {3, {{"NUM_NEIGHBORS", 1.0}, {"CLOSEST_NEIGHBOR1_DIST", 2.54950975679639}}}, + {4, {{"NUM_NEIGHBORS", 1.0}, {"CLOSEST_NEIGHBOR1_DIST", 2.5}}}, + {5, {{"NUM_NEIGHBORS", 1.0}, {"CLOSEST_NEIGHBOR1_DIST", 2.54950975679639}}} +}; + +static void assert_neighbor2d_cellprofiler( + const std::unordered_map& roiData, + int label, + Nyxus::Feature2D feature, + const std::string& feature_name) +{ + SCOPED_TRACE(std::string("CELLPROFILER__") + feature_name + "__L" + std::to_string(label)); + ASSERT_TRUE(neighbor2d_cellprofiler_golden_by_label[label].count(feature_name) > 0); + ASSERT_NEAR(roiData.at(label).fvals[static_cast(feature)][0], + neighbor2d_cellprofiler_golden_by_label[label][feature_name], 1e-4); +} + +void test_neighborhood2d_cellprofiler_counts_and_first_distance() +{ + std::unordered_map roiData; + calculate_neighborhood2d_feature_values(roiData); + + for (int label : {1, 2, 3, 4, 5}) + { + assert_neighbor2d_cellprofiler(roiData, label, Nyxus::Feature2D::NUM_NEIGHBORS, "NUM_NEIGHBORS"); + assert_neighbor2d_cellprofiler(roiData, label, Nyxus::Feature2D::CLOSEST_NEIGHBOR1_DIST, "CLOSEST_NEIGHBOR1_DIST"); + } +} diff --git a/tests/test_neighbor_regression.h b/tests/test_neighbor_regression.h index 8de6baf0..72292d96 100644 --- a/tests/test_neighbor_regression.h +++ b/tests/test_neighbor_regression.h @@ -47,43 +47,11 @@ static std::unordered_map> unvetted }} }; -static std::unordered_map> unvetted_nyxus_regression_neighbor2d_angle_feature_golden_values_by_label{ - {1, { - {"CLOSEST_NEIGHBOR1_ANG", 0.0}, - {"CLOSEST_NEIGHBOR2_ANG", 191.30993247402}, - {"ANG_BW_NEIGHBORS_MEAN", 132.172516881495}, - {"ANG_BW_NEIGHBORS_STDDEV", 115.230018010206}, - {"ANG_BW_NEIGHBORS_MODE", 0.0}, - }}, - {2, { - {"CLOSEST_NEIGHBOR1_ANG", 11.3099324740202}, - {"CLOSEST_NEIGHBOR2_ANG", 0.0}, - {"ANG_BW_NEIGHBORS_MEAN", 11.3099324740202}, - {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, - {"ANG_BW_NEIGHBORS_MODE", 11.0}, - }}, - {3, { - {"CLOSEST_NEIGHBOR1_ANG", 78.6900675259798}, - {"CLOSEST_NEIGHBOR2_ANG", 0.0}, - {"ANG_BW_NEIGHBORS_MEAN", 78.6900675259798}, - {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, - {"ANG_BW_NEIGHBORS_MODE", 79.0}, - }}, - {4, { - {"CLOSEST_NEIGHBOR1_ANG", 180.0}, - {"CLOSEST_NEIGHBOR2_ANG", 0.0}, - {"ANG_BW_NEIGHBORS_MEAN", 180.0}, - {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, - {"ANG_BW_NEIGHBORS_MODE", 180.0}, - }}, - {5, { - {"CLOSEST_NEIGHBOR1_ANG", 258.69006752598}, - {"CLOSEST_NEIGHBOR2_ANG", 0.0}, - {"ANG_BW_NEIGHBORS_MEAN", 258.69006752598}, - {"ANG_BW_NEIGHBORS_STDDEV", 0.0}, - {"ANG_BW_NEIGHBORS_MODE", 259.0}, - }} -}; +// NOTE: the closest-neighbor angles and the angle-between-neighbors stats are now +// vetted at tight tolerance by the ANALYTIC oracle in test_neighbor_analytic.h +// (independent numpy recomputation of Nyxus' atan2 direction-angle formulas); the +// second-closest distance likewise. This regression file keeps only the fixture +// builder + the PERCENT_TOUCHING snapshot (the one feature with no promotable oracle). static Fsettings make_neighbors2d_settings() { @@ -154,19 +122,6 @@ static void assert_neighbor2d_feature( ASSERT_TRUE(agrees_gt(roiData.at(label).fvals[static_cast(feature)][0], unvetted_nyxus_regression_neighbor2d_distance_feature_golden_values_by_label[label][feature_name], frac_tolerance)); } -static void assert_unvetted_no_direct_oracle_neighbor2d_feature( - const std::unordered_map& roiData, - int label, - Nyxus::Feature2D feature, - const std::string& feature_name, - double frac_tolerance = 1000.0) -{ - SCOPED_TRACE(std::string("UNVETTED_NO_DIRECT_ORACLE__") + feature_name); - ASSERT_TRUE(unvetted_nyxus_regression_neighbor2d_angle_feature_golden_values_by_label.count(label) > 0); - ASSERT_TRUE(unvetted_nyxus_regression_neighbor2d_angle_feature_golden_values_by_label[label].count(feature_name) > 0); - ASSERT_TRUE(agrees_gt(roiData.at(label).fvals[static_cast(feature)][0], unvetted_nyxus_regression_neighbor2d_angle_feature_golden_values_by_label[label][feature_name], frac_tolerance)); -} - void test_neighborhood2d_counts_and_touching() { std::unordered_map roiData; @@ -211,27 +166,3 @@ void test_neighborhood2d_closest_neighbors() } } -void test_neighborhood2d_unvetted_no_direct_oracle_closest_neighbor_angles() -{ - std::unordered_map roiData; - calculate_neighborhood2d_feature_values(roiData); - - for (int label : {1, 2, 3, 4, 5}) - { - assert_unvetted_no_direct_oracle_neighbor2d_feature(roiData, label, Nyxus::Feature2D::CLOSEST_NEIGHBOR1_ANG, "CLOSEST_NEIGHBOR1_ANG"); - assert_unvetted_no_direct_oracle_neighbor2d_feature(roiData, label, Nyxus::Feature2D::CLOSEST_NEIGHBOR2_ANG, "CLOSEST_NEIGHBOR2_ANG"); - } -} - -void test_neighborhood2d_unvetted_no_direct_oracle_neighbor_angle_stats() -{ - std::unordered_map roiData; - calculate_neighborhood2d_feature_values(roiData); - - for (int label : {1, 2, 3, 4, 5}) - { - assert_unvetted_no_direct_oracle_neighbor2d_feature(roiData, label, Nyxus::Feature2D::ANG_BW_NEIGHBORS_MEAN, "ANG_BW_NEIGHBORS_MEAN"); - assert_unvetted_no_direct_oracle_neighbor2d_feature(roiData, label, Nyxus::Feature2D::ANG_BW_NEIGHBORS_STDDEV, "ANG_BW_NEIGHBORS_STDDEV"); - assert_unvetted_no_direct_oracle_neighbor2d_feature(roiData, label, Nyxus::Feature2D::ANG_BW_NEIGHBORS_MODE, "ANG_BW_NEIGHBORS_MODE"); - } -} diff --git a/tests/vetting/coverage_report.md b/tests/vetting/coverage_report.md index 4e31cf53..ee3fd493 100644 --- a/tests/vetting/coverage_report.md +++ b/tests/vetting/coverage_report.md @@ -2,8 +2,8 @@ _Generated by check_coverage.py from oracle_coverage.csv. Do not edit by hand._ -Features vetted by >=1 oracle: 604/758 (80%) -regression: 154 untested: 0 +Features vetted by >=1 oracle: 610/758 (80%) +regression: 148 untested: 0 | family | total | vetted | regression | untested | |---|---|---|---|---| @@ -18,7 +18,7 @@ regression: 154 untested: 0 | intensity_histogram | 47 | 47 | 0 | 0 | | moments | 180 | 118 | 62 | 0 | | morphology | 113 | 77 | 36 | 0 | -| neighbor | 9 | 2 | 7 | 0 | +| neighbor | 9 | 8 | 1 | 0 | | ngldm | 38 | 20 | 18 | 0 | | ngtdm | 10 | 10 | 0 | 0 | | radial | 3 | 0 | 3 | 0 | diff --git a/tests/vetting/oracle_coverage.csv b/tests/vetting/oracle_coverage.csv index 8882b744..a2fcd34f 100644 --- a/tests/vetting/oracle_coverage.csv +++ b/tests/vetting/oracle_coverage.csv @@ -1,759 +1,759 @@ -dim,feature,family,status,oracle,agreement,config_recipe,tolerance,current_test,target_test,candidate_oracle,flag,source,notes -2D,COV,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,COVERED_IMAGE_INTENSITY_RANGE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,ENERGY,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_glcm.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,ENTROPY,firstorder,vetted,pyradiomics,exact (rel=3.20e-16),firstorder.pyradiomics_default,exact,test_3d_inten.h;test_glcm.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_regression.h,MIRP/IBSI check,promote-after-deepdive,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | PROMOTED regression->vetted by pyradiomics exact (rel=3.20e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,EXCESS_KURTOSIS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,HYPERFLATNESS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,HYPERSKEWNESS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,INTEGRATED_INTENSITY,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" -2D,INTERQUARTILE_RANGE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=2.34e-02), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,KURTOSIS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=2.30e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,MAX,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" -2D,MEAN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_fractal_dim_oracle.py;test_firstorder_ibsi.h;test_intensity_histogram.py;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" -2D,MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=2.83e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,MEDIAN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,MEDIAN_ABSOLUTE_DEVIATION,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,MIN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" -2D,MODE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,P01,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,P10,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=1.36e-02), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,P25,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,P75,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,P90,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=1.63e-03), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,P99,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,QCOD,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,RANGE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,ROBUST_MEAN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,ROBUST_MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,pyradiomics,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_pyradiomics.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,ROOT_MEAN_SQUARED,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,SKEWNESS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=1.48e-15), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,STANDARD_DEVIATION,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,STANDARD_DEVIATION_BIASED,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,STANDARD_ERROR,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,VARIANCE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_glcm.h;test_firstorder_ibsi.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=6.54e-03), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,VARIANCE_BIASED,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,UNIFORMITY,firstorder,vetted,pyradiomics,exact (rel=2.74e-16),firstorder.pyradiomics_default,exact,test_3d_inten.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_regression.h,MIRP/IBSI check,promote-after-deepdive,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | PROMOTED regression->vetted by pyradiomics exact (rel=2.74e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" -2D,UNIFORMITY_PIU,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -2D,AREA_PIXELS_COUNT,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,AREA_UM2,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,CENTROID_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,CENTROID_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,WEIGHTED_CENTROID_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,WEIGHTED_CENTROID_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,MASS_DISPLACEMENT,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, -2D,COMPACTNESS,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Document Nyxus radial compactness or find a direct radial-dispersion oracle.,promote-after-deepdive,tracker, -2D,BBOX_YMIN,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,BBOX_XMIN,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,BBOX_HEIGHT,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,BBOX_WIDTH,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,DIAMETER_EQUAL_AREA,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_skimage.h,,,tracker, -2D,EXTENT,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,ASPECT_RATIO,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,MAJOR_AXIS_LENGTH,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,MINOR_AXIS_LENGTH,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,ELONGATION,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,ECCENTRICITY,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,ORIENTATION,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Clarify convention or verify with anoth...,promote-after-deepdive;convention-mismatch,tracker, -2D,ROUNDNESS,morphology,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,no-external-oracle,tracker,"Tier-2 documented-formula conformance, NO external oracle. Nyxus computes ROUNDNESS = 4*A/(pi*major^2) (ellipse_fitting.cpp) with A = ROI pixel count and major = moment-fit MAJOR_AXIS_LENGTH. TEST_SHAPE2D_DOCUMENTED_FORMULA_CONFORMANCE_NO_EXTERNAL_ORACLE recomputes the formula and requires an exact match (1e-9). Implementation bug-free, but the value depends on Nyxus' pixel-area + moment-fit conventions; no third-party tool reproduces it. Formula-vetted only." -2D,PERIMETER,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_features.h;test_nyxus.py;test_morphology_regression.h,test_morphology_skimage.h,,,tracker, -2D,DIAMETER_EQUAL_PERIMETER,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_nyxus.py;test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive,tracker, -2D,EDGE_MEAN_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_nyxus.py;test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, -2D,EDGE_STDDEV_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, -2D,EDGE_MAX_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, -2D,EDGE_MIN_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, -2D,EDGE_INTEGRATED_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, -2D,CIRCULARITY,morphology,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_skimage.h,test_morphology_regression.h,,no-external-oracle,tracker,"Tier-2 documented-formula conformance, NO external oracle. Nyxus computes CIRCULARITY = sqrt(4*pi*A)/P (convex_hull_nontriv.cpp) with A = ROI pixel count and P = contour perimeter. TEST_SHAPE2D_DOCUMENTED_FORMULA_CONFORMANCE_NO_EXTERNAL_ORACLE recomputes the formula from AREA_PIXELS_COUNT/PERIMETER and requires an exact match (1e-9), so the implementation is bug-free -- but the value is convention-specific (pixel-area + contour-perimeter) and no third-party tool reproduces it (pyradiomics/skimage use mesh area/perimeter). Formula-vetted only." -2D,CONVEX_HULL_AREA,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_convex_hull_invariants.py;test_morphology_skimage.h,test_morphology_regression.h,Document Nyxus point-hull convention or revise expected value.,,tracker,"vetted vs scikit-image (convex_hull_image offset_coordinates=False, Pick's-theorem convex_area); test_morphology_skimage.h TEST_SHAPE2D_CONVEX_HULL_FEATURES passes. The prior matlab-based 'suspected-bug' (SOLIDITY 1.0 vs matlab 0.97) was a wrong-oracle artifact: Nyxus deliberately matches skimage, not matlab regionprops ConvexArea." -2D,SOLIDITY,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_convex_hull_invariants.py;test_morphology_skimage.h,test_morphology_regression.h,Document Nyxus point-hull convention or revise expected value.,,tracker,"vetted vs scikit-image (convex_hull_image offset_coordinates=False, Pick's-theorem convex_area); test_morphology_skimage.h TEST_SHAPE2D_CONVEX_HULL_FEATURES passes. The prior matlab-based 'suspected-bug' (SOLIDITY 1.0 vs matlab 0.97) was a wrong-oracle artifact: Nyxus deliberately matches skimage, not matlab regionprops ConvexArea." -2D,EROSIONS_2_VANISH,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,EROSIONS_2_VANISH_COMPLEMENT,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,FRACT_DIM_BOXCOUNT,morphology,vetted,fraclac,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_fractal_dim_oracle.py;test_morphology_fraclac.h,test_morphology_fraclac.h,,,tracker,"vetted vs ImageJ/FracLac box-count on the 512x512 blob fixture (tests/data/fractal_blob512_seg.ome.tif) = 1.8706, same-method direct match at 1% (test_morphology_fraclac.h). Also test_fractal_dim_oracle.py recovers analytic ground-truth dimensions: filled square -> 2.0, straight line -> 1.0, Sierpinski triangle -> 1.585." -2D,FRACT_DIM_PERIMETER,morphology,vetted,fraclac,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_fractal_dim_oracle.py;test_morphology_fraclac.h,test_morphology_fraclac.h,,,tracker,"vetted vs ImageJ/FracLac edge box-count on the blob512 fixture = 1.0493, cross-method vs Nyxus' Richardson divider (1.0572, 0.8% gap), asserted at 3% (test_morphology_fraclac.h). Also test_fractal_dim_oracle.py: Koch snowflake and smooth-disk perimeter dimensions match." -2D,MIN_FERET_ANGLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; do not mark agreed unless a tool matches within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,MAX_FERET_ANGLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; do not mark agreed unless a tool matches within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,STAT_FERET_DIAM_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." -2D,STAT_FERET_DIAM_MAX,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." -2D,STAT_FERET_DIAM_MEAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." -2D,STAT_FERET_DIAM_MEDIAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." -2D,STAT_FERET_DIAM_STDDEV,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." -2D,STAT_FERET_DIAM_MODE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." -2D,STAT_MARTIN_DIAM_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_MARTIN_DIAM_MAX,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_MARTIN_DIAM_MEAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_MARTIN_DIAM_MEDIAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_MARTIN_DIAM_STDDEV,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_MARTIN_DIAM_MODE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_NASSENSTEIN_DIAM_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_NASSENSTEIN_DIAM_MAX,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_NASSENSTEIN_DIAM_MEAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_NASSENSTEIN_DIAM_MEDIAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_NASSENSTEIN_DIAM_STDDEV,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,STAT_NASSENSTEIN_DIAM_MODE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." -2D,MAXCHORDS_MAX,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,MAXCHORDS_MAX_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, -2D,MAXCHORDS_MIN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,MAXCHORDS_MIN_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, -2D,MAXCHORDS_MEDIAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,MAXCHORDS_MEAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,MAXCHORDS_MODE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,MAXCHORDS_STDDEV,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,ALLCHORDS_MAX,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,ALLCHORDS_MAX_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, -2D,ALLCHORDS_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_imea.h,,,tracker, -2D,ALLCHORDS_MIN_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, -2D,ALLCHORDS_MEDIAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,ALLCHORDS_MEAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,ALLCHORDS_MODE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,ALLCHORDS_STDDEV,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,EULER_NUMBER,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P1_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P1_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P2_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P2_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P3_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P3_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P4_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P4_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P5_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P5_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P6_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P6_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P7_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P7_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." -2D,EXTREMA_P8_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,EXTREMA_P8_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, -2D,POLYGONALITY_AVE,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,none (Nyxus/WIPP-unique),no-mainstream-oracle,tracker, -2D,HEXAGONALITY_AVE,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,none (Nyxus/WIPP-unique),no-mainstream-oracle,tracker, -2D,HEXAGONALITY_STDDEV,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,none (Nyxus/WIPP-unique),no-mainstream-oracle,tracker, -2D,DIAMETER_MIN_ENCLOSING_CIRCLE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs OpenCV/imea minimum enclosing circle (Welzl; cv2.minEnclosingCircle, imea min_enclosing_circle) on clean fixtures: ellipse a=20 -> 2a=40, circle r=15 -> 30; centroid-independent, matches to <0.1% in TEST_SHAPE2D_MIN_ENCLOSING_CIRCLE_IMEA_ORACLE." -2D,DIAMETER_CIRCUMSCRIBING_CIRCLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,convention-mismatch,tracker,"Left regression: Nyxus (circle.cpp, ported from imea macro.py) computes this as imea's max/min centroid-to-contour distance approximation, NOT a true geometric circle. It is convention-sensitive (Nyxus contour tracing + the centroid-1 offset): a symmetric circle r=15 yields circ=35.6/insc=23.3 instead of ~30/~30, so no external numeric oracle agrees -> documented-convention, not promoted. (DIAMETER_MIN_ENCLOSING_CIRCLE IS vetted vs cv2/imea.)" -2D,DIAMETER_INSCRIBING_CIRCLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,convention-mismatch,tracker,"Left regression: Nyxus (circle.cpp, ported from imea macro.py) computes this as imea's max/min centroid-to-contour distance approximation, NOT a true geometric circle. It is convention-sensitive (Nyxus contour tracing + the centroid-1 offset): a symmetric circle r=15 yields circ=35.6/insc=23.3 instead of ~30/~30, so no external numeric oracle agrees -> documented-convention, not promoted. (DIAMETER_MIN_ENCLOSING_CIRCLE IS vetted vs cv2/imea.)" -2D,GEODETIC_LENGTH,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, -2D,THICKNESS,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_imea.h,,,tracker, -2D,ROI_RADIUS_MEAN,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Contour-convention audit,promote-after-deepdive,tracker, -2D,ROI_RADIUS_MAX,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Contour-convention audit,promote-after-deepdive,tracker, -2D,ROI_RADIUS_MEDIAN,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_skimage.h,,,tracker, -2D,NUM_NEIGHBORS,neighbor,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_neighbor_regression.h,test_neighbor_cellprofiler.h,,,tracker, -2D,PERCENT_TOUCHING,neighbor,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_regression.h,Document convention.,promote-after-deepdive,tracker, -2D,CLOSEST_NEIGHBOR1_DIST,neighbor,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_cellprofiler.h,,,tracker, -2D,CLOSEST_NEIGHBOR1_ANG,neighbor,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_regression.h,none (CP AngleBetweenNeighbors differs) -> scipy analytic,no-mainstream-oracle,tracker, -2D,CLOSEST_NEIGHBOR2_DIST,neighbor,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_regression.h,Document convention.,promote-after-deepdive,tracker, -2D,CLOSEST_NEIGHBOR2_ANG,neighbor,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_regression.h,none (CP AngleBetweenNeighbors differs) -> scipy analytic,no-mainstream-oracle,tracker, -2D,ANG_BW_NEIGHBORS_MEAN,neighbor,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_regression.h,none (CP AngleBetweenNeighbors differs) -> scipy analytic,no-mainstream-oracle,tracker, -2D,ANG_BW_NEIGHBORS_STDDEV,neighbor,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_regression.h,none (CP AngleBetweenNeighbors differs) -> scipy analytic,no-mainstream-oracle,tracker, -2D,ANG_BW_NEIGHBORS_MODE,neighbor,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_regression.h,none (CP AngleBetweenNeighbors differs) -> scipy analytic,no-mainstream-oracle,tracker, -2D,GLCM_ASM,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_matlab.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_ACOR,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_CLUPROM,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_CLUSHADE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_CLUTEND,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_CONTRAST,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h;test_nyxus.py,test_glcm_matlab.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_CORRELATION,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_matlab.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_DIFAVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_DIFENTRO,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_DIFVAR,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_DIS,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_ENERGY,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_matlab.h,,,tracker, -2D,GLCM_ENTROPY,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"FIXED (missing /sum_p normalization added to f_GLCM_HOM2/f_entropy) + vetted vs MIRP/IBSI: HOM2==IDM 0.619, ENTROPY==JE 2.05. New IBSI gtests TEST_IBSI_GLCM_HOM2/ENTROPY pin it; regression goldens updated" -2D,GLCM_HOM1,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_matlab.h,,,tracker, -2D,GLCM_HOM2,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"FIXED (missing /sum_p normalization added to f_GLCM_HOM2/f_entropy) + vetted vs MIRP/IBSI: HOM2==IDM 0.619, ENTROPY==JE 2.05. New IBSI gtests TEST_IBSI_GLCM_HOM2/ENTROPY pin it; regression goldens updated" -2D,GLCM_ID,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_IDN,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_IDM,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_IDMN,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_INFOMEAS1,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_INFOMEAS2,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_IV,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_JAVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_JE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_JMAX,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_JVAR,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_SUMAVERAGE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h;test_nyxus.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_SUMENTROPY,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_SUMVARIANCE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -2D,GLCM_VARIANCE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_ASM_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, -2D,GLCM_ACOR_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_CLUPROM_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_CLUSHADE_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_CLUTEND_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_CONTRAST_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_matlab.h,,,tracker, -2D,GLCM_CORRELATION_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, -2D,GLCM_DIFAVE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_DIFENTRO_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_DIFVAR_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_DIS_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_ENERGY_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, -2D,GLCM_ENTROPY_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"FIXED (missing /sum_p normalization added to f_GLCM_HOM2/f_entropy) + vetted vs MIRP/IBSI: HOM2==IDM 0.619, ENTROPY==JE 2.05. New IBSI gtests TEST_IBSI_GLCM_HOM2/ENTROPY pin it; regression goldens updated" -2D,GLCM_HOM1_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, -2D,GLCM_ID_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_IDN_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_IDM_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_IDMN_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_IV_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_JAVE_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_JE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_INFOMEAS1_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_INFOMEAS2_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_VARIANCE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_JMAX_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_JVAR_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_SUMAVERAGE_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" -2D,GLCM_SUMENTROPY_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLCM_SUMVARIANCE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, -2D,GLRLM_SRE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_LRE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_GLN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_GLNN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_RLN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_RLNN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_RP,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_GLV,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_RV,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_RE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -2D,GLRLM_LGLRE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LGLRE = 0.604) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.6044 (matches the IBSI reference); ibsi=false gives 0.1147 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_HGLRE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM HGLRE = 9.82) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 9.824 (matches the IBSI reference); ibsi=false gives 4087.74 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_SRLGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRLGLE = 0.294) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.2940 (matches the IBSI reference); ibsi=false gives 0.1036 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_SRHGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRHGLE = 8.57) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 8.573 (matches the IBSI reference); ibsi=false gives 3545.21 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_LRLGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRLGLE = 3.14) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 3.144 (matches the IBSI reference); ibsi=false gives 0.1614 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_LRHGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRHGLE = 17.4) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 17.387 (matches the IBSI reference); ibsi=false gives 7358.78 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_SRE_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_LRE_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_GLN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_GLNN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_RLN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_RLNN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_RP_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_GLV_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_RV_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_RE_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, -2D,GLRLM_LGLRE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LGLRE = 0.604) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.6044 (matches the IBSI reference); ibsi=false gives 0.1147 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_HGLRE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM HGLRE = 9.82) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 9.824 (matches the IBSI reference); ibsi=false gives 4087.74 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_SRLGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRLGLE = 0.294) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.2940 (matches the IBSI reference); ibsi=false gives 0.1036 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_SRHGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRHGLE = 8.57) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 8.573 (matches the IBSI reference); ibsi=false gives 3545.21 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_LRLGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRLGLE = 3.14) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 3.144 (matches the IBSI reference); ibsi=false gives 0.1614 on the same fixture -- default-mode values are NOT vetted." -2D,GLRLM_LRHGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRHGLE = 17.4) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 17.387 (matches the IBSI reference); ibsi=false gives 7358.78 on the same fixture -- default-mode values are NOT vetted." -2D,GLDZM_SDE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_LDE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_LGLZE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_HGLZE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_SDLGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_SDHGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_LDLGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_LDHGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_GLNU,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_GLNUN,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_ZDNU,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_ZDNUN,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_ZP,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_GLM,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. Primitive-chain MIRP MatrixDZM checks use IBSI phantom slices with no discretization and by_slice=True.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_GLV,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_ZDM,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. Primitive-chain MIRP MatrixDZM checks use IBSI phantom slices with no discretization and by_slice=True.,,test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLDZM_ZDV,gldzm,regression,,needs_audit,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_regression.h,IBSI/package convention cross-check,promote-after-deepdive,tracker, -2D,GLDZM_ZDE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, -2D,GLSZM_SAE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_LAE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_GLN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_GLNN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_SZN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_SZNN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_ZP,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_GLV,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM GLV = 3.97) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 3.9695 (matches the IBSI reference); ibsi=false gives 2227.54 on the same fixture -- default-mode values are NOT vetted." -2D,GLSZM_ZV,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_ZE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_LGLZE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM LGLZE = 0.371) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 0.3712 (matches the IBSI reference); ibsi=false gives 0.1944 on the same fixture -- default-mode values are NOT vetted." -2D,GLSZM_HGLZE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM HGLZE = 16.4) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 16.441 (matches the IBSI reference); ibsi=false gives 5985.62 on the same fixture -- default-mode values are NOT vetted." -2D,GLSZM_SALGLE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -2D,GLSZM_SAHGLE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM SAHGLE = 10.3) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 10.278 (matches the IBSI reference); ibsi=false gives 3521.46 on the same fixture -- default-mode values are NOT vetted." -2D,GLSZM_LALGLE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM LALGLE = 40.4) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 40.398 (matches the IBSI reference); ibsi=false gives 0.5908 on the same fixture -- default-mode values are NOT vetted." -2D,GLSZM_LAHGLE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM LAHGLE = 113) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 112.52 (matches the IBSI reference); ibsi=false gives 44190.2 on the same fixture -- default-mode values are NOT vetted." -2D,GLDM_SDE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_SDE = 0.158) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 0.15807 -- MODE-INVARIANT, so the vetting also covers default mode." -2D,GLDM_LDE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_pyradiomics.py;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LDE = 19.2) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 19.1738 -- MODE-INVARIANT, so the vetting also covers default mode." -2D,GLDM_GLN,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_pyradiomics.py;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_GLN = 10.2) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 10.2464 -- MODE-INVARIANT, so the vetting also covers default mode." -2D,GLDM_DN,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_pyradiomics.py;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DN = 3.96) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 3.96465 -- MODE-INVARIANT, so the vetting also covers default mode." -2D,GLDM_DNN,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DNN = 0.212) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 0.211772 -- MODE-INVARIANT, so the vetting also covers default mode." -2D,GLDM_GLV,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_GLV = 2.7) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 2.7037 (matches the IBSI reference); ibsi=false gives 1221.07 on the same fixture -- default-mode values are NOT vetted." -2D,GLDM_DV,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DV = 2.73) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 2.7295 -- MODE-INVARIANT, so the vetting also covers default mode." -2D,GLDM_DE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DE = 2.71) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 2.71215 -- MODE-INVARIANT, so the vetting also covers default mode." -2D,GLDM_LGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LGLE = 0.702) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 0.70175 (matches the IBSI reference); ibsi=false gives 0.0014516 on the same fixture -- default-mode values are NOT vetted." -2D,GLDM_HGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_HGLE = 7.49) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 7.48695 (matches the IBSI reference); ibsi=false gives 3452.84 on the same fixture -- default-mode values are NOT vetted." -2D,GLDM_SDLGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_SDLGLE = 0.0473) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 0.0472905 (matches the IBSI reference); ibsi=false gives 9.8277e-05 on the same fixture -- default-mode values are NOT vetted." -2D,GLDM_SDHGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_SDHGLE = 3.06) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 3.06491 (matches the IBSI reference); ibsi=false gives 1402.44 on the same fixture -- default-mode values are NOT vetted." -2D,GLDM_LDLGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LDLGLE = 17.6) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 17.5997 (matches the IBSI reference); ibsi=false gives 0.0363725 on the same fixture -- default-mode values are NOT vetted." -2D,GLDM_LDHGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LDHGLE = 49.5) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 49.4777 (matches the IBSI reference); ibsi=false gives 23183.9 on the same fixture -- default-mode values are NOT vetted." -2D,NGLDM_LDE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_HDE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_LGLCE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_HGLCE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_LDLGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_LDHGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_HDLGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_HDHGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_GLNU,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_GLNUN,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_DCNU,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_DCNUN,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_DCP,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_GLM,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Primitive-chain MIRP MatrixNGLDM checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_GLV,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_DCM,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Primitive-chain MIRP MatrixNGLDM checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_DCV,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_DCENT,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGLDM_DCENE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, -2D,NGTDM_COARSENESS,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -2D,NGTDM_CONTRAST,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -2D,NGTDM_BUSYNESS,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -2D,NGTDM_COMPLEXITY,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -2D,NGTDM_STRENGTH,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -2D,FRAC_AT_D,radial,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_intensity_histogram_regression.h,test_intensity_histogram_regression.h,cellprofiler:MeasureObjectIntensityDistribution (RadialDistribution_*),oracle-identified,tracker, -2D,GABOR,gabor,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_gabor_regression.cc;test_nyxus.py,test_gabor_regression.h,skimage/MATLAB gabor kernel (no scalar oracle),no-mainstream-oracle,tracker, -2D,MEAN_FRAC,radial,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_intensity_histogram_regression.h,test_intensity_histogram_regression.h,cellprofiler:MeasureObjectIntensityDistribution (RadialDistribution_*),oracle-identified,tracker, -2D,RADIAL_CV,radial,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_intensity_histogram_regression.h,test_intensity_histogram_regression.h,cellprofiler:MeasureObjectIntensityDistribution (RadialDistribution_*),oracle-identified,tracker, -2D,ZERNIKE2D,zernike,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_zernike_regression.h,test_zernike_regression.h,"none (mahotas is niche, not an accepted oracle) -> analytic/regression",no-mainstream-oracle,tracker, -2D,SPAT_MOMENT_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,SPAT_MOMENT_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,CENTRAL_MOMENT_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,CENTRAL_MOMENT_01,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,CENTRAL_MOMENT_03,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_10,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_11,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_12,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_13,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,CENTRAL_MOMENT_21,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,CENTRAL_MOMENT_23,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_30,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_31,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_32,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,CENTRAL_MOMENT_33,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,NORM_SPAT_MOMENT_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_31,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_32,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_SPAT_MOMENT_33,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_CENTRAL_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_CENTRAL_MOMENT_03,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,NORM_CENTRAL_MOMENT_11,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,NORM_CENTRAL_MOMENT_12,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,NORM_CENTRAL_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,NORM_CENTRAL_MOMENT_21,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,NORM_CENTRAL_MOMENT_30,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,HU_M1,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,HU_M2,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,HU_M3,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,HU_M4,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,HU_M5,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix; h5 9x-bracket formula fixed and vetted on the asymmetric wedge (test_moments_hu_wedge_skimage; gen_moments_skimage.py) -2D,HU_M6,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix; h6 stray-eta03 precedence bug fixed and vetted on the asymmetric wedge (test_moments_hu_wedge_skimage; gen_moments_skimage.py) -2D,HU_M7,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,WEIGHTED_SPAT_MOMENT_00,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_01,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_10,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_SPAT_MOMENT_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_CENTRAL_MOMENT_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_CENTRAL_MOMENT_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_CENTRAL_MOMENT_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_CENTRAL_MOMENT_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_CENTRAL_MOMENT_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_CENTRAL_MOMENT_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_CENTRAL_MOMENT_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WT_NORM_CTR_MOM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WT_NORM_CTR_MOM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WT_NORM_CTR_MOM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WT_NORM_CTR_MOM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WT_NORM_CTR_MOM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WT_NORM_CTR_MOM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WT_NORM_CTR_MOM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_HU_M1,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_HU_M2,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_HU_M3,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_HU_M4,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_HU_M5,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_HU_M6,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,WEIGHTED_HU_M7,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_RM_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_RM_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_01,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_03,moments,vetted,skimage,exact (rel=9.0e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_10,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_12,moments,vetted,skimage,exact (rel=6.0e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_21,moments,vetted,skimage,exact (rel=1.0e-14),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_23,moments,vetted,skimage,exact (rel=1.6e-16),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_30,moments,vetted,skimage,exact (rel=2.7e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_31,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_CM_32,moments,vetted,skimage,exact (rel=3.5e-16),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_CM_33,moments,vetted,skimage,exact (rel=1.9e-16),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_NRM_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_31,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_32,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NRM_33,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NCM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NCM_03,moments,vetted,skimage,exact (rel=9.0e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_NCM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NCM_12,moments,vetted,skimage,exact (rel=5.9e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_NCM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_NCM_21,moments,vetted,skimage,exact (rel=1.0e-14),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_NCM_30,moments,vetted,skimage,exact (rel=2.7e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_HU1,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_HU2,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, -2D,IMOM_HU3,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_HU4,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_HU5,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_HU6,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted after the calcHu_imp h6 precedence fix; the old skimage flag rel=3.6e10 WAS the bug (h6 emitted the raw eta03 == IMOM_NCM_03; gen_moments_skimage.py) -2D,IMOM_HU7,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix -2D,IMOM_WRM_00,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_01,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_10,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WRM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WCM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WCM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WCM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WCM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WCM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WCM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WCM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WNCM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WNCM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WNCM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WNCM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WNCM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WNCM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WNCM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WHU1,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WHU2,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WHU3,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WHU4,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WHU5,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WHU6,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,IMOM_WHU7,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" -2D,HISTOGRAM,intensity_histogram,vetted,analytic,agreed,,1e4,test_intensity_histogram_ibsi.h,test_intensity_histogram_ibsi.h,"confirmed: real multi-valued (per-bin frequency) feature, not a sentinel",not-in-tracker,audit,"Analytic vetting: PixelIntensityFeatures::val_HISTOGRAM = TrivialHistogram::get_cust_frequencies(n_greybins), raw per-bin counts over N equal-width bins spanning [min,max] (top-inclusive, Nyxus::to_grayscale binning). Hand-derived expected vector [2,1,2] for fixture {1,1,3,5,7} with N=3 bins, confirmed against a Nyxus run." -2D,IH_MEAN_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_VARIANCE_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_SKEWNESS_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_EXCESS_KURTOSIS_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_MEDIAN_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_MINIMUM_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_P10_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_P90_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_MAXIMUM_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_MODE_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_INTERQUANTILE_RANGE_VAL,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" -2D,IH_RANGE_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_MEAN_ABSOLUTE_DEVIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_ROBUST_MEAN_ABSOLUTE_DEVIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_MEDIAN_ABSOLUTE_DEVIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_COEFFICIENT_OF_VARIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_QUANTILE_COEFFICIENT_OF_DISPERSION_VAL,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" -2D,IH_ENTROPY_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_UNIFORMITY_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_ROBUST_MEAN_VAL,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" -2D,IH_MEAN_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_VARIANCE_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_SKEWNESS_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_EXCESS_KURTOSIS_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_MEDIAN_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_MINIMUM_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_P10_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_P90_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_MAXIMUM_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, -2D,IH_MODE_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, -2D,IH_INTERQUANTILE_RANGE_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_RANGE_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_MEAN_ABSOLUTE_DEVIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_ROBUST_MEAN_ABSOLUTE_DEVIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_MEDIAN_ABSOLUTE_DEVIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_COEFFICIENT_OF_VARIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_QUANTILE_COEFFICIENT_OF_DISPERSION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_ENTROPY_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,pyradiomics:Entropy/Uniformity or mirp (IBSI IH),not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_UNIFORMITY_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,pyradiomics:Entropy/Uniformity or mirp (IBSI IH),not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" -2D,IH_MAX_GRADIENT,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, -2D,IH_MAX_GRADIENT_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, -2D,IH_MIN_GRADIENT,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, -2D,IH_MIN_GRADIENT_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, -2D,IH_ROBUST_MEAN_IDX,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" -2D,IH_NUM_BINS,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, -2D,IH_BIN_SIZE,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, -3D,3COV,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,mirp:stat_cov (IBSI 7TET; no pyradiomics equiv),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3COVERED_IMAGE_INTENSITY_RANGE,firstorder,regression,,na,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,none (Nyxus-specific: (roi_max-roi_min)/(slide_max-slide_min)),bug-degenerate,tracker,BUG: 3D segmented workflow never sets roi.slide_idx (workflow_3d_segmented.cpp) so 3d_intensity.cpp takes the else branch and always emits degenerate 1; unvettable until slide_idx+min/max_preroi_inten are wired through the 3D pipeline (2D sets it via pixel_feed.cpp). Oracle (octave/oracle_3d) confirms intended value = (roi_range)/(slide_range) -3D,3ENERGY,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3ENTROPY,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3EXCESS_KURTOSIS,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3HYPERFLATNESS,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,none (scipy.moment order 5/6 only),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3HYPERSKEWNESS,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,none (scipy.moment order 5/6 only),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3INTEGRATED_INTENSITY,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3INTERQUARTILE_RANGE,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3KURTOSIS,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3MAX,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3MEAN,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3MEDIAN,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3MEDIAN_ABSOLUTE_DEVIATION,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,mirp:stat_medad (IBSI N72L),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3MIN,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3MODE,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,scipy.stats.mode on raw voxels (IBSI mode is on histogram),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3P01,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) -3D,3P10,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3P25,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) -3D,3P75,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) -3D,3P90,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3P99,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) -3D,3QCOD,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) -3D,3RANGE,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3ROBUST_MEAN,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,octave/MATLAB (mean of voxels in [P10,P90]),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; rel<1e-9) after fixing 3ROBUST_MEAN which was hardcoded 0 in both 3d_intensity.cpp paths -3D,3ROBUST_MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3ROOT_MEAN_SQUARED,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3SKEWNESS,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3STANDARD_DEVIATION,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3STANDARD_DEVIATION_BIASED,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3STANDARD_ERROR,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3VARIANCE,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3VARIANCE_BIASED,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3UNIFORMITY,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A -3D,3UNIFORMITY_PIU,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) -3D,3AREA,morphology,regression,,needs_audit,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,matlab,convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." -3D,3AREA_2_VOLUME,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:SurfaceVolumeRatio(3D),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." -3D,3COMPACTNESS1,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:Compactness1/Compactness2(3D),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." -3D,3COMPACTNESS2,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:Compactness1/Compactness2(3D),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." -3D,3MESH_VOLUME,morphology,vetted,matlab,agreed,,,test_3d_morphology_coverage.h;test_3d_morphology_matlab.h,test_3d_morphology_matlab.h,,,tracker, -3D,3SPHERICAL_DISPROPORTION,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:SphericalDisproportion(3D shape),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." -3D,3SPHERICITY,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:Sphericity(3D shape),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." -3D,3VOLUME_CONVEXHULL,morphology,vetted,matlab,agreed,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_matlab.h,,,tracker, -3D,3VOXEL_VOLUME,morphology,vetted,matlab,agreed,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_matlab.h,,,tracker, -3D,3MAJOR_AXIS_LEN,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:MajorAxisLength(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" -3D,3MINOR_AXIS_LEN,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:MinorAxisLength(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" -3D,3LEAST_AXIS_LEN,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:LeastAxisLength(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" -3D,3ELONGATION,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:Elongation(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" -3D,3FLATNESS,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:Flatness(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" -3D,3GLCM_ACOR,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_ASM,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_CLUPROM,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_CLUSHADE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_CLUTEND,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_CONTRAST,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_CORRELATION,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_DIFAVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_DIFENTRO,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_DIFVAR,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_DIS,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_DIFAVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_ENERGY,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ASM (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_ENTROPY,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_HOM1,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ID (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_HOM2,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_IDM (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_ID,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_IDN,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_IDM,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_IDMN,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_INFOMEAS1,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_INFOMEAS2,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_IV,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_JAVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_JE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_JMAX,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_JVAR,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_SUMAVERAGE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_SUMENTROPY,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A -3D,3GLCM_SUMVARIANCE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_CLUTEND (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_VARIANCE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JVAR (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_ASM_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_ACOR_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_CLUPROM_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_CLUSHADE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_CLUTEND_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_CONTRAST_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_CORRELATION_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_DIFAVE_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, -3D,3GLCM_DIFENTRO_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_DIFVAR_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_DIS_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_mirp.h,,,tracker, -3D,3GLCM_ENERGY_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ASM_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_ENTROPY_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JE_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_HOM1_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ID_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_ID_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_IDN_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, -3D,3GLCM_IDM_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_IDMN_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, -3D,3GLCM_IV_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_JAVE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_JE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_INFOMEAS1_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_INFOMEAS2_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, -3D,3GLCM_VARIANCE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JVAR_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLCM_JMAX_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_JVAR_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_SUMAVERAGE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_SUMENTROPY_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" -3D,3GLCM_SUMVARIANCE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_CLUTEND_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" -3D,3GLDM_SDE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_LDE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_GLN,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_DN,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_DNN,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_GLV,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_DV,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_DE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_LGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_HGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_SDLGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_SDHGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_LDLGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDM_LDHGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLDZM_SDE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_LDE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_LGLZE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_HGLZE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_SDLGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_SDHGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_LDLGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_LDHGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_GLNU,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_GLNUN,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_ZDNU,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_ZDNUN,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_ZP,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_GLM,gldzm,regression,,na,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,none (intermediate mean; indirect via GLV/ZDV/DCV variances),no-mainstream-oracle,tracker, -3D,3GLDZM_GLV,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_ZDM,gldzm,regression,,na,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,none (intermediate mean; indirect via GLV/ZDV/DCV variances),no-mainstream-oracle,tracker, -3D,3GLDZM_ZDV,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3GLDZM_ZDE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, -3D,3NGLDM_LDE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LDE: table=0.1 vs MIRP=0.2559." -3D,3NGLDM_HDE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HDE: table=261 vs MIRP=28.07." -3D,3NGLDM_LGLCE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LGLCE: table=0.00036 vs MIRP=0.0322." -3D,3NGLDM_HGLCE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HGLCE: table=740 vs MIRP=1324." -3D,3NGLDM_LDLGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LDLGLE: table=5.8e-05 vs MIRP=0.000685." -3D,3NGLDM_LDHGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LDHGLE: table=74 vs MIRP=474.8." -3D,3NGLDM_HDLGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HDLGLE: table=0.025 vs MIRP=8.714." -3D,3NGLDM_HDHGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HDHGLE: table=20030 vs MIRP=14942.8." -3D,3NGLDM_GLNU,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_GLNU: table=115443 vs MIRP=4350.3." -3D,3NGLDM_GLNUN,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_GLNUN: table=0.23 vs MIRP=0.01585." -3D,3NGLDM_DCNU,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCNU: table=115443 vs MIRP=40745.0." -3D,3NGLDM_DCNUN,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCNUN: table=0.23 vs MIRP=0.14847." -3D,3NGLDM_DCP,ngldm,vetted,mirp,agreed,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_mirp.h,,,tracker, -3D,3NGLDM_GLM,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,no-external-oracle,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. Additionally 3NGLDM_GLM has NO counterpart in IBSI/MIRP at all (MIRP's NGLDM emits no grey-level-mean or dependence-count-mean column; the 2D table in test_ngldm_ibsi.h likewise marks GLM '--not in IBSI--'), so no external oracle exists for it." -3D,3NGLDM_GLV,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_GLV: table=190 vs MIRP=350.17." -3D,3NGLDM_DCM,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,no-external-oracle,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. Additionally 3NGLDM_DCM has NO counterpart in IBSI/MIRP at all (MIRP's NGLDM emits no grey-level-mean or dependence-count-mean column; the 2D table in test_ngldm_ibsi.h likewise marks GLM '--not in IBSI--'), so no external oracle exists for it." -3D,3NGLDM_DCV,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCV: table=86.17 vs MIRP=11.948." -3D,3NGLDM_DCENT,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCENT: table=5.23 vs MIRP=8.676." -3D,3NGLDM_DCENE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCENE: table=0.14 vs MIRP=0.002875." -3D,3NGTDM_COARSENESS,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -3D,3NGTDM_CONTRAST,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -3D,3NGTDM_BUSYNESS,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -3D,3NGTDM_COMPLEXITY,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -3D,3NGTDM_STRENGTH,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_SAE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_LAE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_GLN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_GLNN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_SZN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_SZNN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_ZP,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_GLV,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_ZV,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_ZE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_LGLZE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_HGLZE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_SALGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_SAHGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_LALGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLSZM_LAHGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_SRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_LRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_GLN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_GLNN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_RLN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_RLNN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_RP,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_GLV,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_RV,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_RE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_LGLRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_HGLRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_SRLGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_SRHGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_LRLGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_LRHGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A -3D,3GLRLM_SRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_LRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_GLN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_GLNN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_RLN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_RLNN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_RP_AVE,glrlm,vetted,mirp,agreed,,,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_mirp.h,,,tracker, -3D,3GLRLM_GLV_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_RV_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_RE_AVE,glrlm,vetted,mirp,agreed,,,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_mirp.h,,,tracker, -3D,3GLRLM_LGLRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_HGLRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_SRLGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_SRHGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_LRLGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -3D,3GLRLM_LRHGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." -IMQ,FOCUS_SCORE,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, -IMQ,LOCAL_FOCUS_SCORE,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, -IMQ,POWER_SPECTRUM_SLOPE,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, -IMQ,MAX_SATURATION,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, -IMQ,MIN_SATURATION,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, -IMQ,SHARPNESS,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, +dim,feature,family,status,oracle,agreement,config_recipe,tolerance,current_test,target_test,candidate_oracle,flag,source,notes +2D,COV,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,COVERED_IMAGE_INTENSITY_RANGE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,ENERGY,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_glcm.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,ENTROPY,firstorder,vetted,pyradiomics,exact (rel=3.20e-16),firstorder.pyradiomics_default,exact,test_3d_inten.h;test_glcm.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_regression.h,MIRP/IBSI check,promote-after-deepdive,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | PROMOTED regression->vetted by pyradiomics exact (rel=3.20e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,EXCESS_KURTOSIS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,HYPERFLATNESS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,HYPERSKEWNESS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,INTEGRATED_INTENSITY,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" +2D,INTERQUARTILE_RANGE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=2.34e-02), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,KURTOSIS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=2.30e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,MAX,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" +2D,MEAN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_fractal_dim_oracle.py;test_firstorder_ibsi.h;test_intensity_histogram.py;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" +2D,MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=2.83e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,MEDIAN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,MEDIAN_ABSOLUTE_DEVIATION,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,MIN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h;test_hu_ct_small_pydicom.py,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h | corroborated: pydicom exact, recipe=firstorder.preserve_hu, see test_hu_ct_small_pydicom.py" +2D,MODE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,P01,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,P10,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=1.36e-02), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,P25,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,P75,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,P90,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=1.63e-03), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,P99,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,QCOD,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,RANGE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,ROBUST_MEAN,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,ROBUST_MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,pyradiomics,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_pyradiomics.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,ROOT_MEAN_SQUARED,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=0.00e+00), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,SKEWNESS,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_ibsi.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics exact (rel=1.48e-15), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,STANDARD_DEVIATION,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_nyxus.py;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,STANDARD_DEVIATION_BIASED,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,STANDARD_ERROR,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,VARIANCE,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_glcm.h;test_firstorder_ibsi.h;test_nyxus.py;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_matlab.h,,,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | corroborated: pyradiomics approx (rel=6.54e-03), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,VARIANCE_BIASED,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,UNIFORMITY,firstorder,vetted,pyradiomics,exact (rel=2.74e-16),firstorder.pyradiomics_default,exact,test_3d_inten.h;test_firstorder_regression.h;test_firstorder_pyradiomics.h,test_firstorder_regression.h,MIRP/IBSI check,promote-after-deepdive,tracker,"test_3d_inten.h ORPHANED (not #included; never run) - left per decision A | PROMOTED regression->vetted by pyradiomics exact (rel=2.74e-16), recipe=firstorder.pyradiomics_default, see test_firstorder_pyradiomics.h" +2D,UNIFORMITY_PIU,firstorder,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_3d_inten.h;test_firstorder_regression.h,test_firstorder_matlab.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +2D,AREA_PIXELS_COUNT,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,AREA_UM2,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,CENTROID_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,CENTROID_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,WEIGHTED_CENTROID_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,WEIGHTED_CENTROID_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,MASS_DISPLACEMENT,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, +2D,COMPACTNESS,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Document Nyxus radial compactness or find a direct radial-dispersion oracle.,promote-after-deepdive,tracker, +2D,BBOX_YMIN,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,BBOX_XMIN,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,BBOX_HEIGHT,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,BBOX_WIDTH,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,DIAMETER_EQUAL_AREA,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_skimage.h,,,tracker, +2D,EXTENT,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,ASPECT_RATIO,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,MAJOR_AXIS_LENGTH,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,MINOR_AXIS_LENGTH,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,ELONGATION,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,ECCENTRICITY,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,ORIENTATION,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Clarify convention or verify with anoth...,promote-after-deepdive;convention-mismatch,tracker, +2D,ROUNDNESS,morphology,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,no-external-oracle,tracker,"Tier-2 documented-formula conformance, NO external oracle. Nyxus computes ROUNDNESS = 4*A/(pi*major^2) (ellipse_fitting.cpp) with A = ROI pixel count and major = moment-fit MAJOR_AXIS_LENGTH. TEST_SHAPE2D_DOCUMENTED_FORMULA_CONFORMANCE_NO_EXTERNAL_ORACLE recomputes the formula and requires an exact match (1e-9). Implementation bug-free, but the value depends on Nyxus' pixel-area + moment-fit conventions; no third-party tool reproduces it. Formula-vetted only." +2D,PERIMETER,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_features.h;test_nyxus.py;test_morphology_regression.h,test_morphology_skimage.h,,,tracker, +2D,DIAMETER_EQUAL_PERIMETER,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_nyxus.py;test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive,tracker, +2D,EDGE_MEAN_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_nyxus.py;test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, +2D,EDGE_STDDEV_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, +2D,EDGE_MAX_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, +2D,EDGE_MIN_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, +2D,EDGE_INTEGRATED_INTENSITY,morphology,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_cellprofiler.h,,,tracker, +2D,CIRCULARITY,morphology,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_skimage.h,test_morphology_regression.h,,no-external-oracle,tracker,"Tier-2 documented-formula conformance, NO external oracle. Nyxus computes CIRCULARITY = sqrt(4*pi*A)/P (convex_hull_nontriv.cpp) with A = ROI pixel count and P = contour perimeter. TEST_SHAPE2D_DOCUMENTED_FORMULA_CONFORMANCE_NO_EXTERNAL_ORACLE recomputes the formula from AREA_PIXELS_COUNT/PERIMETER and requires an exact match (1e-9), so the implementation is bug-free -- but the value is convention-specific (pixel-area + contour-perimeter) and no third-party tool reproduces it (pyradiomics/skimage use mesh area/perimeter). Formula-vetted only." +2D,CONVEX_HULL_AREA,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_convex_hull_invariants.py;test_morphology_skimage.h,test_morphology_regression.h,Document Nyxus point-hull convention or revise expected value.,,tracker,"vetted vs scikit-image (convex_hull_image offset_coordinates=False, Pick's-theorem convex_area); test_morphology_skimage.h TEST_SHAPE2D_CONVEX_HULL_FEATURES passes. The prior matlab-based 'suspected-bug' (SOLIDITY 1.0 vs matlab 0.97) was a wrong-oracle artifact: Nyxus deliberately matches skimage, not matlab regionprops ConvexArea." +2D,SOLIDITY,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_convex_hull_invariants.py;test_morphology_skimage.h,test_morphology_regression.h,Document Nyxus point-hull convention or revise expected value.,,tracker,"vetted vs scikit-image (convex_hull_image offset_coordinates=False, Pick's-theorem convex_area); test_morphology_skimage.h TEST_SHAPE2D_CONVEX_HULL_FEATURES passes. The prior matlab-based 'suspected-bug' (SOLIDITY 1.0 vs matlab 0.97) was a wrong-oracle artifact: Nyxus deliberately matches skimage, not matlab regionprops ConvexArea." +2D,EROSIONS_2_VANISH,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,EROSIONS_2_VANISH_COMPLEMENT,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,FRACT_DIM_BOXCOUNT,morphology,vetted,fraclac,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_fractal_dim_oracle.py;test_morphology_fraclac.h,test_morphology_fraclac.h,,,tracker,"vetted vs ImageJ/FracLac box-count on the 512x512 blob fixture (tests/data/fractal_blob512_seg.ome.tif) = 1.8706, same-method direct match at 1% (test_morphology_fraclac.h). Also test_fractal_dim_oracle.py recovers analytic ground-truth dimensions: filled square -> 2.0, straight line -> 1.0, Sierpinski triangle -> 1.585." +2D,FRACT_DIM_PERIMETER,morphology,vetted,fraclac,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_fractal_dim_oracle.py;test_morphology_fraclac.h,test_morphology_fraclac.h,,,tracker,"vetted vs ImageJ/FracLac edge box-count on the blob512 fixture = 1.0493, cross-method vs Nyxus' Richardson divider (1.0572, 0.8% gap), asserted at 3% (test_morphology_fraclac.h). Also test_fractal_dim_oracle.py: Koch snowflake and smooth-disk perimeter dimensions match." +2D,MIN_FERET_ANGLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; do not mark agreed unless a tool matches within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,MAX_FERET_ANGLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; do not mark agreed unless a tool matches within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,STAT_FERET_DIAM_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." +2D,STAT_FERET_DIAM_MAX,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." +2D,STAT_FERET_DIAM_MEAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." +2D,STAT_FERET_DIAM_MEDIAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." +2D,STAT_FERET_DIAM_STDDEV,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." +2D,STAT_FERET_DIAM_MODE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length feret_diameters, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_FERET_IMEA_ELLIPSE_ORACLE. Correct rotating-calipers impl (caliper_feret.cpp, width of the rotated convex-hull AABB per angle); no code change needed. MIN/MAX_FERET_ANGLE stay regression (Nyxus-frame angle convention, no directly comparable imea output)." +2D,STAT_MARTIN_DIAM_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_MARTIN_DIAM_MAX,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_MARTIN_DIAM_MEAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_MARTIN_DIAM_MEDIAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_MARTIN_DIAM_STDDEV,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_MARTIN_DIAM_MODE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_NASSENSTEIN_DIAM_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_NASSENSTEIN_DIAM_MAX,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_NASSENSTEIN_DIAM_MEAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_NASSENSTEIN_DIAM_MEDIAN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_NASSENSTEIN_DIAM_STDDEV,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,STAT_NASSENSTEIN_DIAM_MODE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs imea (imea.measure_2d.statistical_length, dalpha=10) on a filled ellipse a=20 b=10; robust stats (min/max/mean/median) agree within the ~1-2px hull-vs-raster convention gap (15% reltol) in TEST_SHAPE2D_CALIPER_MARTIN_NASSENSTEIN_IMEA_ELLIPSE_ORACLE. Fixed a bug: caliper_martin.cpp and caliper_nassenstein.cpp shared byte-identical code that pushed BOTH the shortest and longest of a Y-grid of horizontal chords per angle, so Nassenstein min/mode were 0.0 (impossible for a solid shape). Now Martin = area-bisecting horizontal chord and Nassenstein = bottom-tangent vertical chord, one diameter per rotation angle." +2D,MAXCHORDS_MAX,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,MAXCHORDS_MAX_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, +2D,MAXCHORDS_MIN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,MAXCHORDS_MIN_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, +2D,MAXCHORDS_MEDIAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,MAXCHORDS_MEAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,MAXCHORDS_MODE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,MAXCHORDS_STDDEV,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,ALLCHORDS_MAX,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,ALLCHORDS_MAX_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, +2D,ALLCHORDS_MIN,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_imea.h,,,tracker, +2D,ALLCHORDS_MIN_ANG,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_feature_oracle.py,test_morphology_regression.h,none (imea gives lengths not angles),no-mainstream-oracle,tracker, +2D,ALLCHORDS_MEDIAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,ALLCHORDS_MEAN,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,ALLCHORDS_MODE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,ALLCHORDS_STDDEV,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,EULER_NUMBER,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P1_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P1_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P2_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P2_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P3_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P3_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P4_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P4_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P5_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P5_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P6_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P6_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P7_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P7_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker,"vetted vs MATLAB/Octave regionprops('Extrema'). These are the right/bottom-edge coordinates; the earlier '~1px off' was a harness bug (uniform -0.5). MATLAB returns 1-based sub-pixel corner coords with a direction-specific corner: right/bottom coords map to Nyxus 0-based centers as (matlab-1.5), left/top as (matlab-0.5). Under that convention Nyxus matches regionprops EXACTLY (verified octave/matlab_oracle_tests/extrema_8x8.m; goldens in test_morphology_common.h). test_morphology_matlab.h asserts all 16 EXTREMA components." +2D,EXTREMA_P8_X,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,EXTREMA_P8_Y,morphology,vetted,matlab,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_matlab.h,test_morphology_matlab.h,,,tracker, +2D,POLYGONALITY_AVE,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,none (Nyxus/WIPP-unique),no-mainstream-oracle,tracker, +2D,HEXAGONALITY_AVE,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,none (Nyxus/WIPP-unique),no-mainstream-oracle,tracker, +2D,HEXAGONALITY_STDDEV,morphology,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,none (Nyxus/WIPP-unique),no-mainstream-oracle,tracker, +2D,DIAMETER_MIN_ENCLOSING_CIRCLE,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,,tracker,"vetted vs OpenCV/imea minimum enclosing circle (Welzl; cv2.minEnclosingCircle, imea min_enclosing_circle) on clean fixtures: ellipse a=20 -> 2a=40, circle r=15 -> 30; centroid-independent, matches to <0.1% in TEST_SHAPE2D_MIN_ENCLOSING_CIRCLE_IMEA_ORACLE." +2D,DIAMETER_CIRCUMSCRIBING_CIRCLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,convention-mismatch,tracker,"Left regression: Nyxus (circle.cpp, ported from imea macro.py) computes this as imea's max/min centroid-to-contour distance approximation, NOT a true geometric circle. It is convention-sensitive (Nyxus contour tracing + the centroid-1 offset): a symmetric circle r=15 yields circ=35.6/insc=23.3 instead of ~30/~30, so no external numeric oracle agrees -> documented-convention, not promoted. (DIAMETER_MIN_ENCLOSING_CIRCLE IS vetted vs cv2/imea.)" +2D,DIAMETER_INSCRIBING_CIRCLE,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,,convention-mismatch,tracker,"Left regression: Nyxus (circle.cpp, ported from imea macro.py) computes this as imea's max/min centroid-to-contour distance approximation, NOT a true geometric circle. It is convention-sensitive (Nyxus contour tracing + the centroid-1 offset): a symmetric circle r=15 yields circ=35.6/insc=23.3 instead of ~30/~30, so no external numeric oracle agrees -> documented-convention, not promoted. (DIAMETER_MIN_ENCLOSING_CIRCLE IS vetted vs cv2/imea.)" +2D,GEODETIC_LENGTH,morphology,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Definition review; keep as verifiable convention mismatch unless another oracle agrees within 5%.,promote-after-deepdive;convention-mismatch,tracker, +2D,THICKNESS,morphology,vetted,imea,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_imea.h,,,tracker, +2D,ROI_RADIUS_MEAN,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Contour-convention audit,promote-after-deepdive,tracker, +2D,ROI_RADIUS_MAX,morphology,regression,,needs_audit,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_regression.h,Contour-convention audit,promote-after-deepdive,tracker, +2D,ROI_RADIUS_MEDIAN,morphology,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h,test_morphology_skimage.h,,,tracker, +2D,NUM_NEIGHBORS,neighbor,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_morphology_regression.h;test_neighbor_regression.h;test_neighbor_cellprofiler.h,test_neighbor_cellprofiler.h,,,tracker,"CP MeasureObjectNeighbors (Adjacent) run reproduces Nyxus exactly; gen_neighbor_cellprofiler.py + gtest test_neighbor_cellprofiler.h" +2D,PERCENT_TOUCHING,neighbor,regression,,disagrees,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h,test_neighbor_cellprofiler.h,none (CP definition differs; empirically 3/5 ROIs),documented-convention,audit,"AUDITED vs real CellProfiler MeasureObjectNeighbors: Nyxus PT = distinct contour pixels 8-adjacent to a neighbor / contour length; CP = object outline pixels overlapping a disk(distance+0.5)-dilated neighbor / perimeter. No CP method (Adjacent/Expand/Within) reproduces Nyxus (diverges on 3/5 ROIs). Not promotable; stays regression. See gen_neighbor_cellprofiler.py" +2D,CLOSEST_NEIGHBOR1_DIST,neighbor,vetted,cellprofiler,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_regression.h;test_neighbor_cellprofiler.h,test_neighbor_cellprofiler.h,,,tracker,"CP MeasureObjectNeighbors FirstClosestDistance reproduces Nyxus exactly; gen_neighbor_cellprofiler.py + gtest test_neighbor_cellprofiler.h" +2D,CLOSEST_NEIGHBOR1_ANG,neighbor,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_analytic.h,test_neighbor_analytic.h,,,audit,"Analytic oracle: independent numpy recomputation of Nyxus' atan2 direction angle to the closest neighbor (gen_neighbor_analytic.py). CP AngleBetweenNeighbors is the subtended angle, a different definition, so not CP-vettable." +2D,CLOSEST_NEIGHBOR2_DIST,neighbor,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_analytic.h,test_neighbor_analytic.h,,,audit,"Analytic oracle: distance to the 2nd-closest in-radius neighbor centroid (0 when <2 in-radius neighbors), gen_neighbor_analytic.py. CP SecondClosestDistance ranks ALL objects globally (nonzero) so is a different definition; CP confirms L1=2.5495." +2D,CLOSEST_NEIGHBOR2_ANG,neighbor,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_analytic.h,test_neighbor_analytic.h,,,audit,"Analytic oracle: independent numpy recomputation of Nyxus' atan2 direction angle to the 2nd-closest neighbor (gen_neighbor_analytic.py). CP AngleBetweenNeighbors is a different definition, so not CP-vettable." +2D,ANG_BW_NEIGHBORS_MEAN,neighbor,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_analytic.h,test_neighbor_analytic.h,,,audit,"Analytic oracle: arithmetic mean of atan2 direction angles to all neighbors (gen_neighbor_analytic.py). CP AngleBetweenNeighbors is a different definition, so not CP-vettable." +2D,ANG_BW_NEIGHBORS_STDDEV,neighbor,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_analytic.h,test_neighbor_analytic.h,,,audit,"Analytic oracle: sample (n-1) std of atan2 direction angles to all neighbors (gen_neighbor_analytic.py). CP AngleBetweenNeighbors is a different definition, so not CP-vettable." +2D,ANG_BW_NEIGHBORS_MODE,neighbor,vetted,analytic,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_neighbor_analytic.h,test_neighbor_analytic.h,,,audit,"Analytic oracle: most-frequent rounded-integer bucket (lowest index wins ties) of atan2 direction angles to all neighbors (gen_neighbor_analytic.py). CP AngleBetweenNeighbors is a different definition, so not CP-vettable." +2D,GLCM_ASM,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_matlab.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_ACOR,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_CLUPROM,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_CLUSHADE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_CLUTEND,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_CONTRAST,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h;test_nyxus.py,test_glcm_matlab.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_CORRELATION,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_matlab.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_DIFAVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_DIFENTRO,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_DIFVAR,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_DIS,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_ENERGY,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_matlab.h,,,tracker, +2D,GLCM_ENTROPY,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"FIXED (missing /sum_p normalization added to f_GLCM_HOM2/f_entropy) + vetted vs MIRP/IBSI: HOM2==IDM 0.619, ENTROPY==JE 2.05. New IBSI gtests TEST_IBSI_GLCM_HOM2/ENTROPY pin it; regression goldens updated" +2D,GLCM_HOM1,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_matlab.h,,,tracker, +2D,GLCM_HOM2,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"FIXED (missing /sum_p normalization added to f_GLCM_HOM2/f_entropy) + vetted vs MIRP/IBSI: HOM2==IDM 0.619, ENTROPY==JE 2.05. New IBSI gtests TEST_IBSI_GLCM_HOM2/ENTROPY pin it; regression goldens updated" +2D,GLCM_ID,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_IDN,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_IDM,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_IDMN,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_INFOMEAS1,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_INFOMEAS2,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_IV,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_JAVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_JE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_JMAX,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_JVAR,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_SUMAVERAGE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_pyradiomics.py;test_glcm_ibsi.h;test_nyxus.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_SUMENTROPY,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_3d_glcm_pyradiomics.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_SUMVARIANCE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glcm.h;test_glcm_regression.h;test_glcm_ibsi.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +2D,GLCM_VARIANCE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_nyxus.py,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_ASM_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, +2D,GLCM_ACOR_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_CLUPROM_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_CLUSHADE_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_CLUTEND_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_CONTRAST_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_matlab.h,,,tracker, +2D,GLCM_CORRELATION_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, +2D,GLCM_DIFAVE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_DIFENTRO_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_DIFVAR_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_DIS_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_ENERGY_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, +2D,GLCM_ENTROPY_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"FIXED (missing /sum_p normalization added to f_GLCM_HOM2/f_entropy) + vetted vs MIRP/IBSI: HOM2==IDM 0.619, ENTROPY==JE 2.05. New IBSI gtests TEST_IBSI_GLCM_HOM2/ENTROPY pin it; regression goldens updated" +2D,GLCM_HOM1_AVE,glcm,vetted,matlab,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_matlab.h,,,tracker, +2D,GLCM_ID_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_IDN_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_IDM_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_IDMN_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_IV_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_JAVE_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_JE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_INFOMEAS1_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_INFOMEAS2_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_VARIANCE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_JMAX_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_JVAR_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_SUMAVERAGE_AVE,glcm,vetted,mirp,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h;test_glcm_pyradiomics.py,test_glcm_regression.h,MIRP/IBSI check,,tracker,"vetted vs MIRP (IBSI digital phantom, glcm_oracle/); MIRP reproduces IBSI consensus exactly and Nyxus IBSI gtest passes (ACOR 5.09, CLUSHADE 7, INFOMEAS1 -0.155, JAVE 2.14, JVAR 2.69, SUMAVERAGE 4.28); _AVE = angle-average of the vetted base" +2D,GLCM_SUMENTROPY_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLCM_SUMVARIANCE_AVE,glcm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glcm_regression.h,test_glcm_pyradiomics.h,,,tracker, +2D,GLRLM_SRE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_LRE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_GLN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_GLNN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_RLN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_RLNN,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_RP,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_GLV,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_RV,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_RE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +2D,GLRLM_LGLRE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LGLRE = 0.604) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.6044 (matches the IBSI reference); ibsi=false gives 0.1147 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_HGLRE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM HGLRE = 9.82) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 9.824 (matches the IBSI reference); ibsi=false gives 4087.74 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_SRLGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRLGLE = 0.294) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.2940 (matches the IBSI reference); ibsi=false gives 0.1036 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_SRHGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRHGLE = 8.57) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 8.573 (matches the IBSI reference); ibsi=false gives 3545.21 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_LRLGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRLGLE = 3.14) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 3.144 (matches the IBSI reference); ibsi=false gives 0.1614 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_LRHGLE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h;test_glrlm_regression.h;test_glrlm_ibsi.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRHGLE = 17.4) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions. IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 17.387 (matches the IBSI reference); ibsi=false gives 7358.78 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_SRE_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_LRE_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_GLN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_GLNN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_RLN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_RLNN_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_RP_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_GLV_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_RV_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_RE_AVE,glrlm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_glrlm_regression.h,test_glrlm_pyradiomics.h,,,tracker, +2D,GLRLM_LGLRE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LGLRE = 0.604) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.6044 (matches the IBSI reference); ibsi=false gives 0.1147 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_HGLRE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM HGLRE = 9.82) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 9.824 (matches the IBSI reference); ibsi=false gives 4087.74 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_SRLGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRLGLE = 0.294) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 0.2940 (matches the IBSI reference); ibsi=false gives 0.1036 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_SRHGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM SRHGLE = 8.57) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 8.573 (matches the IBSI reference); ibsi=false gives 3545.21 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_LRLGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRLGLE = 3.14) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 3.144 (matches the IBSI reference); ibsi=false gives 0.1614 on the same fixture -- default-mode values are NOT vetted." +2D,GLRLM_LRHGLE_AVE,glrlm,vetted,ibsi,agreed,"glrlm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over 4 slices x 4 directions. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_glrlm_regression.h,test_glrlm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLRLM LRHGLE = 17.4) at 1% in test_glrlm_ibsi.h, ibsi=True Ng=128, averaged over the 4 phantom slices x 4 directions (_AVE direction-mean, same grand mean). IBSI is the reference table (§4); no tool run at CI time. CONFIG SCOPE (measured): ibsi=true gives 17.387 (matches the IBSI reference); ibsi=false gives 7358.78 on the same fixture -- default-mode values are NOT vetted." +2D,GLDZM_SDE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_LDE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_LGLZE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_HGLZE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_SDLGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_SDHGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_LDLGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_LDHGLE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_GLNU,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_GLNUN,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_ZDNU,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_ZDNUN,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_ZP,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_GLM,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. Primitive-chain MIRP MatrixDZM checks use IBSI phantom slices with no discretization and by_slice=True.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_GLV,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_ZDM,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. Primitive-chain MIRP MatrixDZM checks use IBSI phantom slices with no discretization and by_slice=True.,,test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLDZM_ZDV,gldzm,regression,,needs_audit,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_regression.h,IBSI/package convention cross-check,promote-after-deepdive,tracker, +2D,GLDZM_ZDE,gldzm,vetted,mirp,agreed,Mode-specific 2D texture row. MIRP checks use IBSI phantom slices with no discretization and by_slice=True; agreement is for that mode/scope.,,test_3d_gldzm_ibsi.h;test_gldzm_ibsi.h,test_gldzm_mirp.h,,,tracker, +2D,GLSZM_SAE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_LAE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_GLN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_GLNN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_SZN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_SZNN,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_ZP,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_GLV,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM GLV = 3.97) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 3.9695 (matches the IBSI reference); ibsi=false gives 2227.54 on the same fixture -- default-mode values are NOT vetted." +2D,GLSZM_ZV,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_ZE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_LGLZE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM LGLZE = 0.371) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 0.3712 (matches the IBSI reference); ibsi=false gives 0.1944 on the same fixture -- default-mode values are NOT vetted." +2D,GLSZM_HGLZE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM HGLZE = 16.4) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 16.441 (matches the IBSI reference); ibsi=false gives 5985.62 on the same fixture -- default-mode values are NOT vetted." +2D,GLSZM_SALGLE,glszm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +2D,GLSZM_SAHGLE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM SAHGLE = 10.3) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 10.278 (matches the IBSI reference); ibsi=false gives 3521.46 on the same fixture -- default-mode values are NOT vetted." +2D,GLSZM_LALGLE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM LALGLE = 40.4) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 40.398 (matches the IBSI reference); ibsi=false gives 0.5908 on the same fixture -- default-mode values are NOT vetted." +2D,GLSZM_LAHGLE,glszm,vetted,ibsi,agreed,"glszm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights these grey-level-dependent features by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_glszm_regression.h;test_glszm_ibsi.h,test_glszm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom consensus (GLSZM LAHGLE = 113) at 1% in test_glszm_ibsi.h (ibsi=True Ng=128, averaged over the 4 phantom slices). The wired test already passed; reconciled from regression. IBSI reference table (SPEC §4). CONFIG SCOPE (measured): ibsi=true gives 112.52 (matches the IBSI reference); ibsi=false gives 44190.2 on the same fixture -- default-mode values are NOT vetted." +2D,GLDM_SDE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_SDE = 0.158) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 0.15807 -- MODE-INVARIANT, so the vetting also covers default mode." +2D,GLDM_LDE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_pyradiomics.py;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LDE = 19.2) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 19.1738 -- MODE-INVARIANT, so the vetting also covers default mode." +2D,GLDM_GLN,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_pyradiomics.py;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_GLN = 10.2) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 10.2464 -- MODE-INVARIANT, so the vetting also covers default mode." +2D,GLDM_DN,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_pyradiomics.py;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DN = 3.96) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 3.96465 -- MODE-INVARIANT, so the vetting also covers default mode." +2D,GLDM_DNN,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_mechanics.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DNN = 0.212) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 0.211772 -- MODE-INVARIANT, so the vetting also covers default mode." +2D,GLDM_GLV,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_GLV = 2.7) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 2.7037 (matches the IBSI reference); ibsi=false gives 1221.07 on the same fixture -- default-mode values are NOT vetted." +2D,GLDM_DV,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DV = 2.73) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 2.7295 -- MODE-INVARIANT, so the vetting also covers default mode." +2D,GLDM_DE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 (MODE-INVARIANT) -- vetted vs IBSI consensus at ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4. MEASURED to be bit-identical at ibsi=false on the same fixture, so this feature is structure-only (no grey-level weighting) and the vetting holds in Nyxus' default mode too -- unconditional.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_DE = 2.71) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true and ibsi=false both give 2.71215 -- MODE-INVARIANT, so the vetting also covers default mode." +2D,GLDM_LGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LGLE = 0.702) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 0.70175 (matches the IBSI reference); ibsi=false gives 0.0014516 on the same fixture -- default-mode values are NOT vetted." +2D,GLDM_HGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_HGLE = 7.49) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 7.48695 (matches the IBSI reference); ibsi=false gives 3452.84 on the same fixture -- default-mode values are NOT vetted." +2D,GLDM_SDLGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_SDLGLE = 0.0473) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 0.0472905 (matches the IBSI reference); ibsi=false gives 9.8277e-05 on the same fixture -- default-mode values are NOT vetted." +2D,GLDM_SDHGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_SDHGLE = 3.06) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 3.06491 (matches the IBSI reference); ibsi=false gives 1402.44 on the same fixture -- default-mode values are NOT vetted." +2D,GLDM_LDLGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LDLGLE = 17.6) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 17.5997 (matches the IBSI reference); ibsi=false gives 0.0363725 on the same fixture -- default-mode values are NOT vetted." +2D,GLDM_LDHGLE,gldm,vetted,ibsi,agreed,"gldm.ibsi_ng128 -- ibsi=true, GREYDEPTH=128, IBSI digital phantom z1..z4, mean over the 4 slices. VETTED ONLY ON THIS RECIPE: Nyxus' default mode (ibsi=false) weights this grey-level-dependent feature by RAW intensity instead of the grey-level index, and is NOT covered by this assertion.",,test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_gldm_regression.h;test_gldm_ibsi.h,test_gldm_ibsi.h,,,tracker,"vetted vs IBSI digital-phantom NGLDM consensus (GLDM_LDHGLE = 49.5) at 1% in test_gldm_ibsi.h (ibsi=True Ng=128, 4 phantom slices). Nyxus GLDM is the pyradiomics-lineage naming of the neighbouring grey-level-dependence matrix that IBSI calls NGLDM (same quantity; verified the gldm and ngldm IBSI reference tables are identical). The wired test already passed; reconciled from regression. CONFIG SCOPE (measured): ibsi=true gives 49.4777 (matches the IBSI reference); ibsi=false gives 23183.9 on the same fixture -- default-mode values are NOT vetted." +2D,NGLDM_LDE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_HDE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_LGLCE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_HGLCE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_LDLGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_LDHGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_HDLGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_HDHGLE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_GLNU,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_GLNUN,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_DCNU,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_DCNUN,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_DCP,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_GLM,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Primitive-chain MIRP MatrixNGLDM checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_GLV,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_DCM,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Primitive-chain MIRP MatrixNGLDM checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_DCV,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_DCENT,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGLDM_DCENE,ngldm,vetted,mirp,agreed,"Mode-specific 2D texture row. Direct MIRP checks use Nyxus IBSI=true/no-binning IBSI phantom slices with MIRP base_discretisation_method=""none"", by_slice=True; GLM/DCM remain no-direct-oracle.",,test_3d_ngldm_regression.h;test_ngldm_ibsi.h,test_ngldm_mirp.h,,,tracker, +2D,NGTDM_COARSENESS,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +2D,NGTDM_CONTRAST,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +2D,NGTDM_BUSYNESS,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +2D,NGTDM_COMPLEXITY,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +2D,NGTDM_STRENGTH,ngtdm,vetted,pyradiomics,agreed,"Mode-specific 2D texture row. PyRadiomics/MIRP comparison is tied to verifier settings such as force2D/by_slice, binWidth/binCount or no discretization, symmetry, and aggregation.",,test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_ngtdm_ibsi.h;test_ngtdm_regression.h,test_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +2D,FRAC_AT_D,radial,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_intensity_histogram_regression.h,test_intensity_histogram_regression.h,cellprofiler:MeasureObjectIntensityDistribution (RadialDistribution_*),oracle-identified,tracker, +2D,GABOR,gabor,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_gabor_regression.cc;test_nyxus.py,test_gabor_regression.h,skimage/MATLAB gabor kernel (no scalar oracle),no-mainstream-oracle,tracker, +2D,MEAN_FRAC,radial,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_intensity_histogram_regression.h,test_intensity_histogram_regression.h,cellprofiler:MeasureObjectIntensityDistribution (RadialDistribution_*),oracle-identified,tracker, +2D,RADIAL_CV,radial,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_intensity_histogram_regression.h,test_intensity_histogram_regression.h,cellprofiler:MeasureObjectIntensityDistribution (RadialDistribution_*),oracle-identified,tracker, +2D,ZERNIKE2D,zernike,regression,,benign,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_zernike_regression.h,test_zernike_regression.h,"none (mahotas is niche, not an accepted oracle) -> analytic/regression",no-mainstream-oracle,tracker, +2D,SPAT_MOMENT_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,SPAT_MOMENT_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,CENTRAL_MOMENT_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,CENTRAL_MOMENT_01,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,CENTRAL_MOMENT_03,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_10,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_11,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_12,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_13,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,CENTRAL_MOMENT_21,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,CENTRAL_MOMENT_23,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_30,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_31,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_32,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,CENTRAL_MOMENT_33,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,NORM_SPAT_MOMENT_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_31,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_32,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_SPAT_MOMENT_33,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_CENTRAL_MOMENT_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_CENTRAL_MOMENT_03,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,NORM_CENTRAL_MOMENT_11,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,NORM_CENTRAL_MOMENT_12,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,NORM_CENTRAL_MOMENT_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,NORM_CENTRAL_MOMENT_21,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,NORM_CENTRAL_MOMENT_30,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,HU_M1,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,HU_M2,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,HU_M3,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,HU_M4,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,HU_M5,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix; h5 9x-bracket formula fixed and vetted on the asymmetric wedge (test_moments_hu_wedge_skimage; gen_moments_skimage.py) +2D,HU_M6,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix; h6 stray-eta03 precedence bug fixed and vetted on the asymmetric wedge (test_moments_hu_wedge_skimage; gen_moments_skimage.py) +2D,HU_M7,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,WEIGHTED_SPAT_MOMENT_00,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_01,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_10,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_SPAT_MOMENT_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_CENTRAL_MOMENT_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_CENTRAL_MOMENT_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_CENTRAL_MOMENT_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_CENTRAL_MOMENT_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_CENTRAL_MOMENT_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_CENTRAL_MOMENT_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_CENTRAL_MOMENT_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WT_NORM_CTR_MOM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WT_NORM_CTR_MOM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WT_NORM_CTR_MOM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WT_NORM_CTR_MOM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WT_NORM_CTR_MOM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WT_NORM_CTR_MOM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WT_NORM_CTR_MOM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_HU_M1,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_HU_M2,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_HU_M3,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_HU_M4,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_HU_M5,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_HU_M6,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,WEIGHTED_HU_M7,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_RM_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_RM_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_01,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_03,moments,vetted,skimage,exact (rel=9.0e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_10,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive;suspected-bug,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_12,moments,vetted,skimage,exact (rel=6.0e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_21,moments,vetted,skimage,exact (rel=1.0e-14),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_23,moments,vetted,skimage,exact (rel=1.6e-16),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_30,moments,vetted,skimage,exact (rel=2.7e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_31,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_CM_32,moments,vetted,skimage,exact (rel=3.5e-16),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_CM_33,moments,vetted,skimage,exact (rel=1.9e-16),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_NRM_00,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_01,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_03,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_10,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_12,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_13,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_21,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_22,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_23,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_30,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_31,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_32,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NRM_33,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NCM_02,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NCM_03,moments,vetted,skimage,exact (rel=9.0e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_NCM_11,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NCM_12,moments,vetted,skimage,exact (rel=5.9e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_NCM_20,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_NCM_21,moments,vetted,skimage,exact (rel=1.0e-14),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_NCM_30,moments,vetted,skimage,exact (rel=2.7e-15),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_HU1,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_HU2,moments,vetted,skimage,agreed,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_skimage.h,test_moments_skimage.h,,,tracker, +2D,IMOM_HU3,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_HU4,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_HU5,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_HU6,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted after the calcHu_imp h6 precedence fix; the old skimage flag rel=3.6e10 WAS the bug (h6 emitted the raw eta03 == IMOM_NCM_03; gen_moments_skimage.py) +2D,IMOM_HU7,moments,vetted,skimage,exact (rel=0.0e+00),moments.skimage_regionprops,exact,test_moments_regression.h;test_moments_skimage.h,test_moments_regression.h,Document convention or find another direct built-in oracle.,promote-after-deepdive,tracker,PROMOTED regression->vetted vs skimage regionprops after centroid-truncation fix +2D,IMOM_WRM_00,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_01,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_10,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WRM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WCM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WCM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WCM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WCM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WCM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WCM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WCM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WNCM_02,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WNCM_03,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WNCM_11,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WNCM_12,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WNCM_20,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WNCM_21,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WNCM_30,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WHU1,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WHU2,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WHU3,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WHU4,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WHU5,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WHU6,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,IMOM_WHU7,moments,regression,,na,"Not mode-specific. Any disagreement is a definition, coordinate-frame, spacing, aggregation, or implementation issue rather than Nyxus IBSI/radiomics mode.",,test_moments_regression.h,test_moments_regression.h,none (Nyxus-specific weighted moment),oracle-identified,tracker,"no mainstream oracle: skimage weighted moments correspond to Nyxus IMOM_ (non-W) family, already vetted; the W-variants are a distinct Nyxus/WIPP-specific weighting (IMOM_WRM_00=512893 vs sum-intensity=346635)" +2D,HISTOGRAM,intensity_histogram,vetted,analytic,agreed,,1e4,test_intensity_histogram_ibsi.h,test_intensity_histogram_ibsi.h,"confirmed: real multi-valued (per-bin frequency) feature, not a sentinel",not-in-tracker,audit,"Analytic vetting: PixelIntensityFeatures::val_HISTOGRAM = TrivialHistogram::get_cust_frequencies(n_greybins), raw per-bin counts over N equal-width bins spanning [min,max] (top-inclusive, Nyxus::to_grayscale binning). Hand-derived expected vector [2,1,2] for fixture {1,1,3,5,7} with N=3 bins, confirmed against a Nyxus run." +2D,IH_MEAN_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_VARIANCE_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_SKEWNESS_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_EXCESS_KURTOSIS_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_MEDIAN_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_MINIMUM_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_P10_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_P90_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_MAXIMUM_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_MODE_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_INTERQUANTILE_RANGE_VAL,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" +2D,IH_RANGE_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_MEAN_ABSOLUTE_DEVIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_ROBUST_MEAN_ABSOLUTE_DEVIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_MEDIAN_ABSOLUTE_DEVIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_COEFFICIENT_OF_VARIATION_VAL,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_QUANTILE_COEFFICIENT_OF_DISPERSION_VAL,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" +2D,IH_ENTROPY_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_UNIFORMITY_VAL,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_ROBUST_MEAN_VAL,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,none (bin-center VAL variant; analytic vs Nyxus def),analytic-trivial;not-in-tracker,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" +2D,IH_MEAN_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_VARIANCE_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_SKEWNESS_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_EXCESS_KURTOSIS_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_MEDIAN_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_MINIMUM_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_P10_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_P90_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_MAXIMUM_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,TBD,not-in-tracker,audit, +2D,IH_MODE_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,IBSI first-order + pyradiomics,not-in-tracker,audit, +2D,IH_INTERQUANTILE_RANGE_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_RANGE_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_MEAN_ABSOLUTE_DEVIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_ROBUST_MEAN_ABSOLUTE_DEVIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_MEDIAN_ABSOLUTE_DEVIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_COEFFICIENT_OF_VARIATION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_QUANTILE_COEFFICIENT_OF_DISPERSION_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_ENTROPY_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,pyradiomics:Entropy/Uniformity or mirp (IBSI IH),not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_UNIFORMITY_IDX,intensity_histogram,vetted,ibsi,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,pyradiomics:Entropy/Uniformity or mirp (IBSI IH),not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_ibsi (IBSI IH phantom consensus for _IDX; the 4 anchorable _VAL via affine VAL=transform(IDX), recipe ih.ibsi_fbn)" +2D,IH_MAX_GRADIENT,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, +2D,IH_MAX_GRADIENT_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, +2D,IH_MIN_GRADIENT,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, +2D,IH_MIN_GRADIENT_IDX,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, +2D,IH_ROBUST_MEAN_IDX,intensity_histogram,vetted,analytic,,ih.ibsi_fbn,,test_intensity_histogram_ibsi.h,,mirp (IBSI Intensity-Histogram family); vet _IDX,not-in-tracker;oracle-identified,audit,"vetted by test_ih_dispersion_robust_analytic (hand-computed on the robust-window discriminating fixture; no clean IBSI anchor - robust-mean has no IBSI feature; QCoD_VAL/IQR_VAL are Nyxus continuous-percentile extensions of the IBSI discrete-percentile IQR/QCoD, so they have no IBSI counterpart by design)" +2D,IH_NUM_BINS,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, +2D,IH_BIN_SIZE,intensity_histogram,vetted,analytic,,,,test_intensity_histogram_regression.h;test_intensity_histogram.py,test_intensity_histogram_analytic.h,numpy/scipy analytic,not-in-tracker,audit, +3D,3COV,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,mirp:stat_cov (IBSI 7TET; no pyradiomics equiv),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3COVERED_IMAGE_INTENSITY_RANGE,firstorder,regression,,na,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,none (Nyxus-specific: (roi_max-roi_min)/(slide_max-slide_min)),bug-degenerate,tracker,BUG: 3D segmented workflow never sets roi.slide_idx (workflow_3d_segmented.cpp) so 3d_intensity.cpp takes the else branch and always emits degenerate 1; unvettable until slide_idx+min/max_preroi_inten are wired through the 3D pipeline (2D sets it via pixel_feed.cpp). Oracle (octave/oracle_3d) confirms intended value = (roi_range)/(slide_range) +3D,3ENERGY,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3ENTROPY,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3EXCESS_KURTOSIS,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3HYPERFLATNESS,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,none (scipy.moment order 5/6 only),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3HYPERSKEWNESS,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,none (scipy.moment order 5/6 only),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3INTEGRATED_INTENSITY,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3INTERQUARTILE_RANGE,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3KURTOSIS,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3MAX,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3MEAN,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3MEDIAN,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3MEDIAN_ABSOLUTE_DEVIATION,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,mirp:stat_medad (IBSI N72L),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3MIN,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3MODE,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,scipy.stats.mode on raw voxels (IBSI mode is on histogram),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3P01,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) +3D,3P10,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3P25,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) +3D,3P75,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) +3D,3P90,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3P99,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,numpy (trivial closed-form; IBSI has only P10/P90),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) +3D,3QCOD,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d); Nyxus 100-bin CDF-interp reproduced exactly; ~0.2% vs prctile (definitional) +3D,3RANGE,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3ROBUST_MEAN,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,octave/MATLAB (mean of voxels in [P10,P90]),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; rel<1e-9) after fixing 3ROBUST_MEAN which was hardcoded 0 in both 3d_intensity.cpp paths +3D,3ROBUST_MEAN_ABSOLUTE_DEVIATION,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3ROOT_MEAN_SQUARED,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3SKEWNESS,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3STANDARD_DEVIATION,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3STANDARD_DEVIATION_BIASED,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3STANDARD_ERROR,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3VARIANCE,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3VARIANCE_BIASED,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3UNIFORMITY,firstorder,vetted,pyradiomics,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h;test_3d_firstorder_pyradiomics.h,test_3d_firstorder_pyradiomics.h,,,tracker,test_3d_inten.h ORPHANED (not #included; never run) - left per decision A +3D,3UNIFORMITY_PIU,firstorder,vetted,matlab,agreed,,,test_3d_firstorder_coverage.h;test_3d_inten.h,test_3d_firstorder_regression.h,pyradiomics/mirp (native 3D first-order; kurtosis -3),,tracker,vetted vs Octave/MATLAB oracle (octave/oracle_3d; raw-formula rel<1e-9) +3D,3AREA,morphology,regression,,needs_audit,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,matlab,convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." +3D,3AREA_2_VOLUME,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:SurfaceVolumeRatio(3D),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." +3D,3COMPACTNESS1,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:Compactness1/Compactness2(3D),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." +3D,3COMPACTNESS2,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:Compactness1/Compactness2(3D),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." +3D,3MESH_VOLUME,morphology,vetted,matlab,agreed,,,test_3d_morphology_coverage.h;test_3d_morphology_matlab.h,test_3d_morphology_matlab.h,,,tracker, +3D,3SPHERICAL_DISPROPORTION,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:SphericalDisproportion(3D shape),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." +3D,3SPHERICITY,morphology,regression,,na,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_regression.h,pyradiomics:Sphericity(3D shape),convention-mismatch,tracker,"convention: Nyxus surface area is voxel-face-based (3AREA 59992) vs MIRP/pyradiomics mesh area (46739, ~28% diff); all area/volume-derived features inherit it. Needs surface-convention decision (see Vetting-Work-Log)." +3D,3VOLUME_CONVEXHULL,morphology,vetted,matlab,agreed,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_matlab.h,,,tracker, +3D,3VOXEL_VOLUME,morphology,vetted,matlab,agreed,,,test_3d_morphology_coverage.h;test_3d_morphology_regression.h,test_3d_morphology_matlab.h,,,tracker, +3D,3MAJOR_AXIS_LEN,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:MajorAxisLength(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" +3D,3MINOR_AXIS_LEN,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:MinorAxisLength(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" +3D,3LEAST_AXIS_LEN,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:LeastAxisLength(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" +3D,3ELONGATION,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:Elongation(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" +3D,3FLATNESS,morphology,vetted,mirp,agreed,,,test_3d_morphology_coverage.h,test_3d_morphology_regression.h,pyradiomics:Flatness(3D shape),,tracker,"FIXED axis-length mislabel (3d_surface.cpp used wrong eigenvalue indices -> LEAST>MAJOR, FLATNESS>1) + vetted vs MIRP morph_pca_* (exact): MAJOR 104.71, MINOR 88.30, LEAST 71.51, ELONGATION 0.843, FLATNESS 0.683" +3D,3GLCM_ACOR,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_ASM,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_CLUPROM,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_CLUSHADE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_CLUTEND,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_CONTRAST,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_CORRELATION,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_DIFAVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_DIFENTRO,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_DIFVAR,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_DIS,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_DIFAVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_ENERGY,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ASM (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_ENTROPY,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_HOM1,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ID (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_HOM2,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_IDM (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_ID,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_IDN,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_IDM,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_IDMN,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_INFOMEAS1,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_INFOMEAS2,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_IV,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_JAVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_JE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_JMAX,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_JVAR,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_SUMAVERAGE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_SUMENTROPY,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h;test_3d_glcm_pyradiomics.h,test_3d_glcm_pyradiomics.h,,,tracker,test_3d_glcm.h ORPHANED (not #included in test_all.cc; 26 test_3glcm_* fns never run) - left as-is per decision A +3D,3GLCM_SUMVARIANCE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_3d_glcm.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_CLUTEND (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_VARIANCE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,"pyradiomics/mirp (DIS=DifferenceAverage, HOM1=Id, HOM2=Idm, SUMVAR=ClusterTendency, ENERGY=JointEnergy=ASM, VAR=mirp cm_var); CONFIG-SENSITIVE: symmetric+13dir vs Nyxus asym/1-offset/100lvl",,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JVAR (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_ASM_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_ACOR_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_CLUPROM_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_CLUSHADE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_CLUTEND_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_CONTRAST_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_CORRELATION_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_DIFAVE_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, +3D,3GLCM_DIFENTRO_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_DIFVAR_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_DIS_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_mirp.h,,,tracker, +3D,3GLCM_ENERGY_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ASM_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_ENTROPY_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JE_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_HOM1_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_ID_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_ID_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_IDN_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, +3D,3GLCM_IDM_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_IDMN_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, +3D,3GLCM_IV_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_JAVE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_JE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_INFOMEAS1_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_INFOMEAS2_AVE,glcm,vetted,mirp,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_mirp.h,,,tracker, +3D,3GLCM_VARIANCE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_JVAR_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLCM_JMAX_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_JVAR_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_SUMAVERAGE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_SUMENTROPY_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h;test_nyxus.py,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: 3GLCM_*_AVE = calc_ave(per-direction base), which is exactly the value test_3d_glcm_pyradiomics.h asserts == pyradiomics for the vetted base feature" +3D,3GLCM_SUMVARIANCE_AVE,glcm,vetted,pyradiomics,agreed,,,test_3d_glcm_coverage.h,test_3d_glcm_regression.h,mirp,,tracker,"vetted by equivalence: numerically identical to pyradiomics-vetted 3GLCM_CLUTEND_AVE (rel<1e-6, gtest TEST_3DGLCM_EQUIVALENCE_DUMP asserts it). ENTROPY/HOM2 also required the /sum_p fix" +3D,3GLDM_SDE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_LDE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_GLN,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_DN,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_DNN,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_GLV,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_DV,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_DE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_LGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_HGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_SDLGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_SDHGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_LDLGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDM_LDHGLE,gldm,vetted,pyradiomics,agreed,,,test_3d_gldm_coverage.h;test_3d_gldm.h;test_3d_gldm_pyradiomics.h;test_nyxus.py,test_3d_gldm_pyradiomics.h,,,tracker,test_3d_gldm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLDZM_SDE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_LDE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_LGLZE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_HGLZE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_SDLGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_SDHGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_LDLGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_LDHGLE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_GLNU,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_GLNUN,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_ZDNU,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_ZDNUN,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_ZP,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_GLM,gldzm,regression,,na,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,none (intermediate mean; indirect via GLV/ZDV/DCV variances),no-mainstream-oracle,tracker, +3D,3GLDZM_GLV,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_ZDM,gldzm,regression,,na,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,none (intermediate mean; indirect via GLV/ZDV/DCV variances),no-mainstream-oracle,tracker, +3D,3GLDZM_ZDV,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3GLDZM_ZDE,gldzm,regression,,needs_audit,,,test_3d_gldzm_coverage.h;test_3d_gldzm_ibsi.h,test_3d_gldzm_regression.h,mirp,promote-after-deepdive,tracker, +3D,3NGLDM_LDE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LDE: table=0.1 vs MIRP=0.2559." +3D,3NGLDM_HDE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HDE: table=261 vs MIRP=28.07." +3D,3NGLDM_LGLCE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LGLCE: table=0.00036 vs MIRP=0.0322." +3D,3NGLDM_HGLCE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HGLCE: table=740 vs MIRP=1324." +3D,3NGLDM_LDLGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LDLGLE: table=5.8e-05 vs MIRP=0.000685." +3D,3NGLDM_LDHGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_LDHGLE: table=74 vs MIRP=474.8." +3D,3NGLDM_HDLGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HDLGLE: table=0.025 vs MIRP=8.714." +3D,3NGLDM_HDHGLE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_HDHGLE: table=20030 vs MIRP=14942.8." +3D,3NGLDM_GLNU,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_GLNU: table=115443 vs MIRP=4350.3." +3D,3NGLDM_GLNUN,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_GLNUN: table=0.23 vs MIRP=0.01585." +3D,3NGLDM_DCNU,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCNU: table=115443 vs MIRP=40745.0." +3D,3NGLDM_DCNUN,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCNUN: table=0.23 vs MIRP=0.14847." +3D,3NGLDM_DCP,ngldm,vetted,mirp,agreed,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_mirp.h,,,tracker, +3D,3NGLDM_GLM,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,no-external-oracle,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. Additionally 3NGLDM_GLM has NO counterpart in IBSI/MIRP at all (MIRP's NGLDM emits no grey-level-mean or dependence-count-mean column; the 2D table in test_ngldm_ibsi.h likewise marks GLM '--not in IBSI--'), so no external oracle exists for it." +3D,3NGLDM_GLV,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_GLV: table=190 vs MIRP=350.17." +3D,3NGLDM_DCM,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,no-external-oracle,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. Additionally 3NGLDM_DCM has NO counterpart in IBSI/MIRP at all (MIRP's NGLDM emits no grey-level-mean or dependence-count-mean column; the 2D table in test_ngldm_ibsi.h likewise marks GLM '--not in IBSI--'), so no external oracle exists for it." +3D,3NGLDM_DCV,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCV: table=86.17 vs MIRP=11.948." +3D,3NGLDM_DCENT,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCENT: table=5.23 vs MIRP=8.676." +3D,3NGLDM_DCENE,ngldm,regression,,needs_audit,,,test_3d_ngldm_coverage.h;test_3d_ngldm_regression.h,test_3d_ngldm_regression.h,mirp,unproven-reference,tracker,"NOT externally vetted. The reference table `d3ngldm_GT` in test_3d_ngldm_regression.h has NO provenance (no tool/version/config, contrary to SPEC 6.4) and is evaluated on the Nyxus coverage phantom ut_inten.nii -- NOT the IBSI digital phantom -- so IBSI consensus values cannot apply to it. An independent MIRP NGLDM run on the same phantom at the same discretisation (fixed_bin_number n=64, 3D) disagrees on every comparable feature. The passing test is a drift guard, not an oracle; needs a documented, config-matched external oracle (MIRP) before promotion. Harness: morph_oracle/mirp_ngldm_3d.py. For 3NGLDM_DCENE: table=0.14 vs MIRP=0.002875." +3D,3NGTDM_COARSENESS,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +3D,3NGTDM_CONTRAST,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +3D,3NGTDM_BUSYNESS,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +3D,3NGTDM_COMPLEXITY,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +3D,3NGTDM_STRENGTH,ngtdm,vetted,pyradiomics,agreed,,,test_3d_ngtdm_coverage.h;test_3d_ngtdm.h;test_3d_ngtdm_pyradiomics.h;test_nyxus.py,test_3d_ngtdm_pyradiomics.h,,,tracker,test_3d_ngtdm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_SAE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_LAE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_GLN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_GLNN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_SZN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_SZNN,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_ZP,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_GLV,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_ZV,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_ZE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_LGLZE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_HGLZE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_SALGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_SAHGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_LALGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLSZM_LAHGLE,glszm,vetted,pyradiomics,agreed,,,test_3d_glszm_coverage.h;test_3d_glszm.h;test_3d_glszm_pyradiomics.h;test_nyxus.py,test_3d_glszm_pyradiomics.h,,,tracker,test_3d_glszm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_SRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_LRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_GLN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_GLNN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_RLN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_RLNN,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_RP,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_GLV,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_RV,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_RE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_LGLRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_HGLRE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_SRLGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_SRHGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_LRLGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_LRHGLE,glrlm,vetted,pyradiomics,agreed,,,test_3d_glrlm_coverage.h;test_3d_glrlm.h;test_3d_glrlm_pyradiomics.h,test_3d_glrlm_pyradiomics.h,,,tracker,test_3d_glrlm.h ORPHANED (not #included; never run) - left per decision A +3D,3GLRLM_SRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_LRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_GLN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_GLNN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_RLN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_RLNN_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_RP_AVE,glrlm,vetted,mirp,agreed,,,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_mirp.h,,,tracker, +3D,3GLRLM_GLV_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_RV_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_RE_AVE,glrlm,vetted,mirp,agreed,,,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_mirp.h,,,tracker, +3D,3GLRLM_LGLRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_HGLRE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_SRLGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_SRHGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_LRLGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +3D,3GLRLM_LRHGLE_AVE,glrlm,vetted,pyradiomics,agreed,"glrlm.pyradiomics_bincount20 -- ibsi=false, GREYDEPTH=100, GLRLM_GREYDEPTH=-20 (radiomics binCount binning), 3D compat phantom, calc_ave over directions. VETTED ONLY ON THIS RECIPE (the pyradiomics-compat config); other configs are not covered.",,test_3d_glrlm_coverage.h;test_nyxus.py,test_3d_glrlm_pyradiomics.h,,,tracker,"vetted vs PyRadiomics 3D GLRLM (binCount=20, weightingNorm=None) on the 3D compat phantom (ut_inten.nii label 57) at 10% in test_3d_glrlm_pyradiomics.h (TEST_COMPAT_3GLRLM_AVE_FEATURES). save_value stores fvals[X_AVE][0] = calc_ave(angled_X), the same direction-averaged quantity the base test asserts == PyRadiomics, so the _AVE slot is a direct PyRadiomics assertion. CONFIG SCOPE: vetted only on the pyradiomics-compat recipe above; Nyxus' default binning is not covered by this assertion." +IMQ,FOCUS_SCORE,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, +IMQ,LOCAL_FOCUS_SCORE,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, +IMQ,POWER_SPECTRUM_SLOPE,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, +IMQ,MAX_SATURATION,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, +IMQ,MIN_SATURATION,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, +IMQ,SHARPNESS,imq,regression,,,,,test_imq_regression.h,test_imq_regression.h,reference IQ library (e.g. skimage/BRISQUE) or analytic,not-in-tracker,audit, diff --git a/tests/vetting/oracles/gen_neighbor_analytic.py b/tests/vetting/oracles/gen_neighbor_analytic.py new file mode 100644 index 00000000..1e9039a6 --- /dev/null +++ b/tests/vetting/oracles/gen_neighbor_analytic.py @@ -0,0 +1,152 @@ +"""OFFLINE analytic oracle for the 2D neighbor angle/second-distance features +(SPEC 4, oracle=analytic). Independently reimplements Nyxus' documented +closed-form neighbor geometry in numpy and validates that it reproduces the +goldens pinned in test_neighbor_regression.h. + +Which features this vets (6): + CLOSEST_NEIGHBOR2_DIST + CLOSEST_NEIGHBOR1_ANG, CLOSEST_NEIGHBOR2_ANG + ANG_BW_NEIGHBORS_MEAN, ANG_BW_NEIGHBORS_STDDEV, ANG_BW_NEIGHBORS_MODE + +Why analytic and not a reference tool: CellProfiler already vets NUM_NEIGHBORS + +CLOSEST_NEIGHBOR1_DIST (the neighbor-graph definition). Given that graph, every +angle/second-distance feature is a deterministic closed form of the ROI +centroids -- so an independent numpy recomputation of the exact documented +formula IS the oracle (the same analytic-conformance basis as CIRCULARITY / +intensity_histogram). CellProfiler's own AngleBetweenNeighbors uses a different +definition (angle subtended at an object by its two neighbors), so it is NOT a +valid oracle for Nyxus' absolute-direction angles. + +Nyxus definitions (src/nyx/features/neighbors.cpp): + - centroid = arithmetic mean of ROI pixel (x, y) + - neighbor graph: ROIs are neighbors iff min contour-pixel L2 sqdist <= radius^2, + radius = pixel_distance (=1 here). Per-ROI neighbor list is built lower-triangle + and pushed to both ROIs, so it is in ASCENDING neighbor-label order. + - closest / second-closest ranked by CENTROID Euclidean distance; ties keep the + ascending-label push order (std::min_element returns the first minimum). + - direction angle = atan2(y2 - y1, x2 - x1) in degrees, +360 if negative + (image coords, y downwards). + - ANG_BW_NEIGHBORS_MEAN/STDDEV = arithmetic mean / SAMPLE std (Moments2, n-1 + denominator) of the direction angles to ALL neighbors. + - ANG_BW_NEIGHBORS_MODE = most frequent round(angle) integer bucket in [0,360], + lowest bucket index wins ties. + +Provenance: tool=analytic (numpy reimplementation of the documented formulas); +env=nyxus_mirp (conda), numpy 1.26/2.x; generator=tests/vetting/oracles/ +gen_neighbor_analytic.py. Run offline; CI never invokes it. +""" +import numpy as np + +# fixture neighborhood2d_scene_labels (tests/test_data.h): {x, y, label} +SCENE = [ + (4, 2, 3), (5, 2, 3), (4, 3, 3), (5, 3, 3), + (2, 4, 2), (3, 4, 2), (4, 4, 1), (5, 4, 1), (6, 4, 1), (7, 4, 4), (8, 4, 4), + (2, 5, 2), (3, 5, 2), (4, 5, 1), (5, 5, 1), (6, 5, 1), (7, 5, 4), (8, 5, 4), + (4, 6, 1), (5, 6, 1), (6, 6, 1), (7, 6, 4), (8, 6, 4), + (5, 7, 5), (6, 7, 5), (5, 8, 5), (6, 8, 5), +] +RADIUS = 1 # pixel_distance +TOL = 1e-9 # validation gate vs pinned goldens (gtest itself uses a loose frac bound) + +# pinned goldens from test_neighbor_regression.h (the values this oracle must reproduce) +PINNED = { + 1: {"CLOSEST_NEIGHBOR2_DIST": 2.54950975679639, "CLOSEST_NEIGHBOR1_ANG": 0.0, + "CLOSEST_NEIGHBOR2_ANG": 191.30993247402, "ANG_BW_NEIGHBORS_MEAN": 132.172516881495, + "ANG_BW_NEIGHBORS_STDDEV": 115.230018010206, "ANG_BW_NEIGHBORS_MODE": 0.0}, + 2: {"CLOSEST_NEIGHBOR2_DIST": 0.0, "CLOSEST_NEIGHBOR1_ANG": 11.3099324740202, + "CLOSEST_NEIGHBOR2_ANG": 0.0, "ANG_BW_NEIGHBORS_MEAN": 11.3099324740202, + "ANG_BW_NEIGHBORS_STDDEV": 0.0, "ANG_BW_NEIGHBORS_MODE": 11.0}, + 3: {"CLOSEST_NEIGHBOR2_DIST": 0.0, "CLOSEST_NEIGHBOR1_ANG": 78.6900675259798, + "CLOSEST_NEIGHBOR2_ANG": 0.0, "ANG_BW_NEIGHBORS_MEAN": 78.6900675259798, + "ANG_BW_NEIGHBORS_STDDEV": 0.0, "ANG_BW_NEIGHBORS_MODE": 79.0}, + 4: {"CLOSEST_NEIGHBOR2_DIST": 0.0, "CLOSEST_NEIGHBOR1_ANG": 180.0, + "CLOSEST_NEIGHBOR2_ANG": 0.0, "ANG_BW_NEIGHBORS_MEAN": 180.0, + "ANG_BW_NEIGHBORS_STDDEV": 0.0, "ANG_BW_NEIGHBORS_MODE": 180.0}, + 5: {"CLOSEST_NEIGHBOR2_DIST": 0.0, "CLOSEST_NEIGHBOR1_ANG": 258.69006752598, + "CLOSEST_NEIGHBOR2_ANG": 0.0, "ANG_BW_NEIGHBORS_MEAN": 258.69006752598, + "ANG_BW_NEIGHBORS_STDDEV": 0.0, "ANG_BW_NEIGHBORS_MODE": 259.0}, +} + + +def min_sqdist(a, b): + d = a[:, None, :] - b[None, :, :] + return (d * d).sum(-1).min() + + +def direction_angle_deg(p1, p2): + a = np.degrees(np.arctan2(p2[1] - p1[1], p2[0] - p1[0])) + return a + 360.0 if a < 0.0 else a + + +def sample_std(v): + v = np.asarray(v, float) + if len(v) < 2: + return 0.0 + return float(np.sqrt(((v - v.mean()) ** 2).sum() / (len(v) - 1))) + + +def compute(): + labels = sorted({l for _, _, l in SCENE}) + px = {l: np.array([(x, y) for x, y, ll in SCENE if ll == l], float) for l in labels} + cen = {l: px[l].mean(axis=0) for l in labels} + + neigh = {l: [] for l in labels} + for l1 in labels: + for l2 in labels: + if l1 >= l2: + continue + if min_sqdist(px[l1], px[l2]) <= RADIUS * RADIUS: + neigh[l1].append(l2) + neigh[l2].append(l1) + for l in labels: + neigh[l].sort() # ascending-label push order + + out = {} + for l in labels: + ns = neigh[l] + dists = [float(np.hypot(*(cen[l] - cen[n]))) for n in ns] + order = sorted(range(len(ns)), key=lambda i: dists[i]) # stable -> ties keep push order + angs = [direction_angle_deg(cen[l], cen[n]) for n in ns] + + cn1_ang = angs[order[0]] if ns else 0.0 + cn2_dist = dists[order[1]] if len(ns) > 1 else 0.0 + cn2_ang = angs[order[1]] if len(ns) > 1 else 0.0 + + buckets = {} + for a in angs: + b = max(0, min(360, int(round(a)))) + buckets[b] = buckets.get(b, 0) + 1 + mode = 0.0 + best = 0 + for b in range(361): + if buckets.get(b, 0) > best: + best, mode = buckets[b], float(b) + + out[l] = { + "CLOSEST_NEIGHBOR2_DIST": cn2_dist, + "CLOSEST_NEIGHBOR1_ANG": cn1_ang, + "CLOSEST_NEIGHBOR2_ANG": cn2_ang, + "ANG_BW_NEIGHBORS_MEAN": float(np.mean(angs)) if angs else 0.0, + "ANG_BW_NEIGHBORS_STDDEV": sample_std(angs), + "ANG_BW_NEIGHBORS_MODE": mode, + } + return out + + +def main(): + got = compute() + all_ok = True + print("=== neighbor analytic oracle vs pinned goldens (test_neighbor_regression.h) ===") + for l in sorted(PINNED): + for k in sorted(PINNED[l]): + o, p = got[l][k], PINNED[l][k] + scale = max(1.0, abs(p), abs(o)) + ok = abs(o - p) <= TOL * scale + all_ok &= ok + print(f" {'OK ' if ok else 'FAIL'} L{l} {k}: oracle={o!r} pinned={p!r}") + print(f"\n{'ALL CHECKS PASSED' if all_ok else 'SOME CHECKS FAILED -- do not promote'}") + return 0 if all_ok else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/vetting/oracles/gen_neighbor_cellprofiler.py b/tests/vetting/oracles/gen_neighbor_cellprofiler.py new file mode 100644 index 00000000..aa5780bd --- /dev/null +++ b/tests/vetting/oracles/gen_neighbor_cellprofiler.py @@ -0,0 +1,127 @@ +"""OFFLINE CellProfiler oracle for the 2D neighbor graph/distance features +(SPEC 4, oracle=cellprofiler). Runs the real cellprofiler.modules. +MeasureObjectNeighbors module on the gtest fixture `neighborhood2d_scene_labels` +(test_data.h) and validates it against the goldens pinned in +test_neighbor_cellprofiler.h. + +Result of this comparison (see the printed table): + NUM_NEIGHBORS -- CP == Nyxus (VETS it) + CLOSEST_NEIGHBOR1_DIST -- CP == Nyxus (VETS it) + CLOSEST_NEIGHBOR2_DIST -- CP != Nyxus by DEFINITION: CP reports the 2nd-closest + of ANY object (global); Nyxus reports the 2nd-closest *neighbor within the + search radius*, i.e. 0 when an ROI has <2 in-radius neighbors. Not CP-vettable; + vetted analytically instead (gen_neighbor_analytic.py). + PERCENT_TOUCHING -- CP != Nyxus (convention gap, 3/5 ROIs). Nyxus counts + contour pixels 8-adjacent to a neighbor / contour length; CP counts object + outline pixels overlapping a disk(distance+0.5)-dilated neighbor / perimeter. + No CP distance method (Adjacent/Expand/Within) reproduces Nyxus. Stays + regression with a documented convention divergence. + +Environment: a dedicated CellProfiler env is required to RUN this generator +(cellprofiler-core + centrosome + the cellprofiler module package, headless). +CI never invokes it -- CellProfiler is not a runtime dependency. + +Provenance: tool=cellprofiler, version=4.2.8 (module package) / cellprofiler-core +4.2.8.1, centrosome 1.2.3; python 3.9; MeasureObjectNeighbors, distance_method= +Adjacent, neighbors_are_objects=True. generator=tests/vetting/oracles/ +gen_neighbor_cellprofiler.py. Run offline. +""" +import warnings +warnings.filterwarnings("ignore") +import numpy as np + +import cellprofiler_core.preferences as cpprefs +cpprefs.set_headless() +import cellprofiler_core.object as cpo +import cellprofiler_core.measurement as cpmeas +import cellprofiler_core.workspace as cpw +import cellprofiler_core.pipeline as cpp +from cellprofiler.modules import measureobjectneighbors as mon + +# fixture neighborhood2d_scene_labels (tests/test_data.h): {x, y, label} +SCENE = [ + (4, 2, 3), (5, 2, 3), (4, 3, 3), (5, 3, 3), + (2, 4, 2), (3, 4, 2), (4, 4, 1), (5, 4, 1), (6, 4, 1), (7, 4, 4), (8, 4, 4), + (2, 5, 2), (3, 5, 2), (4, 5, 1), (5, 5, 1), (6, 5, 1), (7, 5, 4), (8, 5, 4), + (4, 6, 1), (5, 6, 1), (6, 6, 1), (7, 6, 4), (8, 6, 4), + (5, 7, 5), (6, 7, 5), (5, 8, 5), (6, 8, 5), +] +PAD = 3 # keep every ROI off the image border (CP border handling) +LABELS = [1, 2, 3, 4, 5] + +# goldens the CP run must reproduce (pinned in test_neighbor_cellprofiler.h == Nyxus) +CP_VETS = { # feature -> {label: value} (features where CP == Nyxus) + "NUM_NEIGHBORS": {1: 4, 2: 1, 3: 1, 4: 1, 5: 1}, + "CLOSEST_NEIGHBOR1_DIST": {1: 2.5, 2: 2.54950975679639, 3: 2.54950975679639, + 4: 2.5, 5: 2.54950975679639}, +} +# Nyxus values for the features where CP disagrees (for the divergence record) +NYXUS_PT = {1: 100.0, 2: 66.6666666666667, 3: 66.6666666666667, 4: 50.0, 5: 33.3333333333333} +TOL = 1e-4 + + +def build_labels(): + maxx = max(x for x, _, _ in SCENE) + maxy = max(y for _, y, _ in SCENE) + lab = np.zeros((maxy + 1 + 2 * PAD, maxx + 1 + 2 * PAD), dtype=np.int32) + for x, y, l in SCENE: + lab[y + PAD, x + PAD] = l # CP indexes [row=y, col=x] + return lab + + +def run_cp(method): + module = mon.MeasureObjectNeighbors() + module.object_name.value = "objs" + module.neighbors_name.value = "objs" + module.distance_method.value = method + if method == mon.D_WITHIN: + module.distance.value = 1 + + objects = cpo.Objects() + objects.segmented = build_labels() + oset = cpo.ObjectSet() + oset.add_objects(objects, "objs") + + m = cpmeas.Measurements() + ws = cpw.Workspace(cpp.Pipeline(), module, m, oset, m, None) + module.run(ws) + + scale = mon.S_ADJACENT if method == mon.D_ADJACENT else ( + mon.S_EXPANDED if method == mon.D_EXPAND else "1") + get = lambda name: m.get_current_measurement("objs", "Neighbors_%s_%s" % (name, scale)) + return { + "NUM_NEIGHBORS": get(mon.M_NUMBER_OF_NEIGHBORS), + "CLOSEST_NEIGHBOR1_DIST": get(mon.M_FIRST_CLOSEST_DISTANCE), + "CLOSEST_NEIGHBOR2_DIST": get(mon.M_SECOND_CLOSEST_DISTANCE), + "PERCENT_TOUCHING": get(mon.M_PERCENT_TOUCHING), + } + + +def main(): + cp = run_cp(mon.D_ADJACENT) + all_ok = True + + print("=== CellProfiler MeasureObjectNeighbors (Adjacent) vs Nyxus goldens ===") + for feat, golds in CP_VETS.items(): + for l in LABELS: + got = cp[feat][l - 1] + exp = golds[l] + ok = abs(got - exp) <= TOL * max(1.0, abs(exp)) + all_ok &= ok + print(f" {'OK ' if ok else 'FAIL'} L{l} {feat}: CP={got!r} nyxus={exp!r}") + + print("\n=== documented divergences (NOT vetted vs CP) ===") + print(f" {'L':>2} {'PT_cp':>9} {'PT_nyxus':>9} {'D2_cp':>8} {'D2_nyxus':>9}") + for l in LABELS: + print(f" {l:>2} {cp['PERCENT_TOUCHING'][l-1]:>9.4f} {NYXUS_PT[l]:>9.4f} " + f"{cp['CLOSEST_NEIGHBOR2_DIST'][l-1]:>8.4f} " + f"{'2.5495' if l==1 else '0.0000':>9}") + pt_div = sum(1 for l in LABELS if abs(cp['PERCENT_TOUCHING'][l-1] - NYXUS_PT[l]) > TOL) + print(f" PERCENT_TOUCHING diverges on {pt_div}/5 ROIs -> stays regression (convention gap)") + + print(f"\n{'ALL CP-VET CHECKS PASSED' if all_ok else 'SOME CHECKS FAILED -- do not promote'}") + return 0 if all_ok else 1 + + +if __name__ == "__main__": + raise SystemExit(main())