Skip to content

Numeric Boundary: 1e-13

vectorGeoJSONPointEPSG:4326tinybundled

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.

Point geometry of numeric_boundary_1e13, rendered from the case's data
Point geometry, rendered from the case's actual geometry. Scale is normalized to the viewport and is not comparable between cases.
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:

pip install "geocase[all]"

View GeoCase on PyPI.

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

  • load
  • geometry-validation
  • coordinate-precision-check

Files

Browse this case on GitHub

Source and license

  • Source: geocase-synthetic
  • License: MIT

Tags

geojson numeric_boundary precision single_variable vector