{
  "run_date": "2026-10-04",
  "python": "3.9.6",
  "platform": "Darwin",
  "timezone_data": [
    {
      "zone": "America/New_York",
      "source": "system TZPATH",
      "sha256": "e9ed07d7bee0c76a9d442d091ef1f01668fee7c4f26014c0a868b19fe6c18a95",
      "version_markers": {
        "+VERSION": "2026c",
        "tzdata.zi": "# version 2026c-rearguard"
      }
    },
    {
      "zone": "Asia/Shanghai",
      "source": "system TZPATH",
      "sha256": "64ffc2e43a94435a043c040d1d3af7e92d031adc78e7737af1861baa4eeef3e6",
      "version_markers": {
        "+VERSION": "2026c",
        "tzdata.zi": "# version 2026c-rearguard"
      }
    }
  ],
  "intervals": [
    {
      "case": "NY spring",
      "zone": "America/New_York",
      "start": "2026-03-07T20:00:00-05:00",
      "next_local_day": "2026-03-08T20:00:00-04:00",
      "same_zone_subtraction_hours": 24.0,
      "utc_elapsed_hours": 23.0,
      "after_24_elapsed_hours": "2026-03-08T21:00:00-04:00"
    },
    {
      "case": "NY autumn",
      "zone": "America/New_York",
      "start": "2026-10-31T20:00:00-04:00",
      "next_local_day": "2026-11-01T20:00:00-05:00",
      "same_zone_subtraction_hours": 24.0,
      "utc_elapsed_hours": 25.0,
      "after_24_elapsed_hours": "2026-11-01T19:00:00-05:00"
    },
    {
      "case": "Shanghai",
      "zone": "Asia/Shanghai",
      "start": "2026-03-07T20:00:00+08:00",
      "next_local_day": "2026-03-08T20:00:00+08:00",
      "same_zone_subtraction_hours": 24.0,
      "utc_elapsed_hours": 24.0,
      "after_24_elapsed_hours": "2026-03-08T20:00:00+08:00"
    }
  ],
  "gap": {
    "local_input": "2026-03-08T02:30:00",
    "constructor_result": "2026-03-08T02:30:00-05:00",
    "utc_round_trip": "2026-03-08T03:30:00-04:00",
    "valid_candidates": 0
  },
  "fold": {
    "local_input": "2026-11-01T01:30:00",
    "earlier": "2026-11-01T01:30:00-04:00",
    "earlier_utc": "2026-11-01T05:30:00+00:00",
    "later": "2026-11-01T01:30:00-05:00",
    "later_utc": "2026-11-01T06:30:00+00:00",
    "elapsed_hours": 1
  },
  "boundary_checks": [
    "ordinary local time",
    "missing local time rejected",
    "ambiguous local time policy",
    "invalid policy rejected",
    "naive interval input rejected",
    "unknown zone rejected",
    "next-day gap rejected",
    "next-day ambiguity rejected"
  ]
}
