Skip to content

fix: Daisyworld and MonoLake as in TerraME; every model bit-identical… - #19

Merged
profsergiocosta merged 1 commit into
mainfrom
tests/test_goldens
Oct 22, 2026
Merged

profsergiocosta merged 1 commit into
mainfrom
tests/test_goldens

Conversation

@profsergiocosta

Copy link
Copy Markdown
Member

Compared with TerraME 2.0.1 runs of the sysdyn package (terrame-goldens v0.1.0):

  • Daisyworld: the planet albedo for the black daisies is computed again after the white area is updated, as in the Lua model. New attributes temp_near_white and temp_near_black.
  • MonoLake: lake surface and elevation through TerraME's sci.Spline (a Catmull-Rom curve sampled at 1000 points per segment, read linearly; new models._spline.Spline) instead of scipy's CubicSpline, an undeclared dependency. As in TerraME, a volume outside the curve raises an error.
  • PredatorPrey, RoomTemperature, SIR and MonoLake: arithmetic in TerraME's order.

All 16 deterministic cases now give the same doubles as TerraME at every step. tests/test_goldens.py (marker golden) checks it bit for bit from a copy of the goldens in tests/goldens (SHA-256 provenance and the script that copies them), and RandomWalk by distribution. The strict xfails of Daisyworld and MonoLake are removed. The Mono Lake notebook uses the new Spline.

… to TerraME runs

Compared with TerraME 2.0.1 runs of the sysdyn package (terrame-goldens
v0.1.0):

- Daisyworld: the planet albedo for the black daisies is computed again
  after the white area is updated, as in the Lua model. New attributes
  temp_near_white and temp_near_black.
- MonoLake: lake surface and elevation through TerraME's sci.Spline (a
  Catmull-Rom curve sampled at 1000 points per segment, read linearly; new
  models._spline.Spline) instead of scipy's CubicSpline, an undeclared
  dependency. As in TerraME, a volume outside the curve raises an error.
- PredatorPrey, RoomTemperature, SIR and MonoLake: arithmetic in TerraME's
  order.

All 16 deterministic cases now give the same doubles as TerraME at every
step. tests/test_goldens.py (marker golden) checks it bit for bit from a
copy of the goldens in tests/goldens (SHA-256 provenance and the script
that copies them), and RandomWalk by distribution. The strict xfails of
Daisyworld and MonoLake are removed. The Mono Lake notebook uses the new
Spline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WHohDPhCtXJvVZ7jTGwK8e
@profsergiocosta
profsergiocosta merged commit b3ffaa7 into main Oct 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants