Skip to content

Invalid U64 F64 Bounds

Synthetic invalid CityJSON fixture that uses stored vertex values above u64::MAX and transform values outside the f64 range. The input remains syntactically valid JSON, but implementations that coerce the numeric fields into bounded integer or float types should reject it.

Case

  • id: invalid_u64_f64_bounds
  • layer: invalid
  • family: invalid
  • artifact_mode: checked-in
  • source_kind: synthetic
  • representation: cityjson
  • path: cases/invalid/invalid_u64_f64_bounds

Files

  • source: cases/invalid/invalid_u64_f64_bounds/invalid_u64_f64_bounds.json

Source JSON

case.json

{
  "artifact_mode": "checked-in",
  "artifact_paths": {
    "source": "cases/invalid/invalid_u64_f64_bounds/invalid_u64_f64_bounds.json"
  },
  "assertions": [
    "rejects_numeric_bounds_overflow"
  ],
  "cityjson_version": "2.0",
  "description": "Synthetic invalid CityJSON fixture that uses stored vertex values above `u64::MAX` and transform values outside the `f64` range. The input remains syntactically valid JSON, but implementations that coerce the numeric fields into bounded integer or float types should reject it.",
  "family": "invalid",
  "geometry_kind": "dummy",
  "id": "invalid_u64_f64_bounds",
  "layer": "invalid",
  "representation": "cityjson",
  "source_kind": "synthetic",
  "version": 2
}

invariants.json

{
  "checks": [
    {
      "description": "CityJSON readers reject vertices and transform values outside u64/f64 bounds.",
      "id": "rejects_numeric_bounds_overflow"
    }
  ],
  "expected_result": "reject",
  "fixture": "invalid_u64_f64_bounds.json",
  "id": "invalid_u64_f64_bounds",
  "kind": "negative",
  "version": 1
}