Failure mode: coverage gap ($g_{excl} > 0$) + weak test selection ($n/k_{test}$ small) causes $H_{indirect} > H_{direct}$, yielding negative gain $\Delta H$.
Dataset.integrate uses coord while DataArray.integrate uses dim; API inconsistency.
The desired fix is to align the API (likely use coord consistently) and handle deprecation concerns.
DataArray.integrate has a 'dim' arg, but Dataset.integrate has a 'coord' arg
The API syntax is inconsistent:
ds.differentiate(coord='x')
da.differentiate(coord='x')
ds.integrate(coord='x')
da.integrate(dim='x') # why dim??
It should definitely be `coord` ...
The only question is whether it requires a deprecation cycle?
| Symbol | Value | Meaning |
|---|---|---|
| $N$ | 2011 | Total candidate locations (functions/methods) |
| $k_{ret}$ | 10 | Return budget for code locations |
| $k_{test}$ | 5 | Return budget for tests |
| $|G|$ | 4 | # ground-truth edit locations |
| $N_{cov}$ | 271 | Trace subspace size ($|L_{cov}|$) |
| $g_{ret}^{direct}$ | 1 | GT hit count in direct top-$k_{ret}$ |
| $n$ | 1 | # effective tests among top-$k_{test}$ |
| $g_{ret}^{indirect}$ | 2 | GT hit count in indirect top-$k_{ret}$ (within $L_{cov}$) |
| $g_{excl}$ | 2 | GT outside trace coverage ($g_{ext}$ in script) |
xarray/core/dataarray.py::DataArray.integrate
xarray/core/dataset.py::Dataset.integrate
xarray/core/dataarray.py::DataArray.map_blocks
xarray/core/dataarray.py::DataArray.unify_chunks
xarray/core/dataarray.py::DataArray.map_blocks
xarray/core/dataarray.py::DataArray.unify_chunks
Even if test-driven localization ranks well within $L_{cov}$, it cannot “see” edits outside $L_{cov}$.
When the evaluation requires covering all GT locations (here gt_threshold=1.0), uncovered GT forces an external penalty.
xarray/tests/test_dataset.py::test_differentiate
xarray/tests/test_dataset.py::test_integrate (effective)
xarray/tests/test_dataset.py::TestDataset.test_expand_dims_mixed_int_and_coords
xarray/tests/test_concat.py::test_concat_merge_single_non_dim_coord
xarray/tests/test_dataset.py::TestDataset.test_dataset_diff_n2
xarray/tests/test_dataset.py::test_integrate
Therefore $H_{stage1}=-\log_2(1/5)=2.3219$.
xarray/core/coordinates.py::DataArrayCoordinates.dims
xarray/core/coordinates.py::DatasetCoordinates.dims
xarray/core/dataarray.py::DataArray.differentiate
xarray/core/dataset.py::Dataset.differentiate
xarray/core/dataarray.py::_infer_coords_and_dims
xarray/core/dataset.py::Dataset.dims
xarray/core/dataarray.py::DataArray.dims
xarray/core/dataarray.py::DataArray.dims
xarray/core/dataarray.py::DataArray.coords
xarray/core/dataarray.py::DataArray.integrate
xarray/core/dataarray.py::DataArray.differentiate
xarray/core/dataset.py::Dataset.differentiate
xarray/core/dataarray.py::_infer_coords_and_dims
xarray/core/dataset.py::Dataset.dims
xarray/core/dataarray.py::DataArray.dims
xarray/core/dataarray.py::DataArray.dims
xarray/core/dataarray.py::DataArray.coords
xarray/core/dataarray.py::DataArray.integrate
xarray/core/dataset.py::Dataset.coords
xarray/core/dataset.py::Dataset.integrate
(Term 1: ambiguity among returned hits; Term 2: residual uncertainty for the remaining GT outside the returned set.)
This is the canonical “coverage gap” bad case: trace-constrained localization can’t win if a meaningful portion of GT lies outside traces.