Numeric Boundary: 1e-13¶
A single-point GeoJSON whose coordinate one decade above the affected magnitude class. The upper bracket. A brute force over 300000 coordinates puts GDAL's zeroing class at exactly |v| in [1e-14, 1e-13), so this value must survive. A consumer that loses it has a wider bug than the one round 6 found.
| Property | Value |
|---|---|
| Case ID | numeric_boundary_1e13 |
| Category | vector |
| Format | GeoJSON |
| Geometry type | Point |
| CRS | EPSG:4326 |
| Location | 0.00°E, 0.00°N → 0.00°E, 0.00°N |
| Test tier | unit |
| Size class | tiny |
| Storage class | bundled |
| Redistributable | yes |
| Loader | geopandas |
| Status | validated |
Use this case¶
import pytest
@pytest.mark.geocase_case("numeric_boundary_1e13")
def test_numeric_boundary_1e13(geocase_case) -> None:
data = geocase_case.load()
assert data is not None
Use GeoCase in your tests¶
Install the complete set of vector, raster, and NetCDF dependencies:
What this case checks¶
Establish whether a text write/read cycle returns this coordinate unchanged. The expected answer ships with the case, so a consumer is graded rather than left to re-derive what "survived" means.
Risk types covered¶
Expected behavior¶
| Assertion | Expected |
|---|---|
expect_loadable |
yes |
expect_valid_geometry |
yes |
expect_crs |
yes |
expected_epsg |
4326 |
expected_geometry_types |
Point |
expected_roundtrip_coordinates |
[1e-13, 1e-13] |
Notes¶
The property¶
The single point in this file one decade above the affected magnitude class:
| value | shortest round-trip repr | |
|---|---|---|
| x | 1e-13 |
1e-13 |
| y | 1e-13 |
1e-13 |
One feature, one property. Plan 40's control principle: if a consumer fails this case and passes its siblings, the failure names the property.
Why this value¶
The upper bracket. A brute force over 300000 coordinates puts GDAL's zeroing class at exactly |v| in [1e-14, 1e-13), so this value must survive. A consumer that loses it has a wider bug than the one round 6 found.
What to assert¶
assertions.expected_roundtrip_coordinates carries the pair the file holds.
Write the case out in your own format, read it back, and compare against that
field rather than against a tolerance you chose:
import geocase
meta = geocase.get_case("numeric_boundary_1e13")
expected = meta.assertions.expected_roundtrip_coordinates
A tolerance hides the failure this family exists to find -- GDAL
d6fd56f52d writes 1e-14 as 0, and every tolerance loose enough to be
"reasonable" for a coordinate near zero passes that silently.
Provenance¶
Plan 44 phase 2, from the 2026-09-06 run against GDAL d6fd56f52d. See
docs/plans/44-gdal-as-target-and-the-numeric-axis.md.
Required capabilities¶
loadgeometry-validationcoordinate-precision-check
Files¶
- Primary:
numeric_boundary_1e13.geojson - Notes:
notes.md
Source and license¶
- Source: geocase-synthetic
- License: MIT
Tags¶
geojson numeric_boundary precision single_variable vector
Related cases¶
- Numeric Boundary: 1e-14 --
numeric_boundary_1e14 - Numeric Boundary: 1e-15 --
numeric_boundary_1e15 - Numeric Boundary: 15 Significant Digits --
numeric_boundary_15_significant_digits - Numeric Boundary: 17 Significant Digits --
numeric_boundary_17_significant_digits - Numeric Boundary: Trailing Nines --
numeric_boundary_trailing_nines