Functionally identical to v0.1.0 — no code changes to the library.
Changed
The package description no longer lists "biodynamic cycles" alongside the astronomy, which read as an endorsement of the tradition rather than a description of what the library computes. It now leads with the verifiable ephemerides and attributes the declination cycle to the calendars that use it, matching the separation the README and the GreenCal moduledoc already draw.
Fixed (tests only)
Three over-constrained assumptions in the property tests, each caught by CI on a real day the library handles correctly:
- The apparent midnight sun starts near 65.7°, not at the Arctic circle (66.56°) — rise and set are defined at h₀ = −0.8333°, refraction plus semidiameter, not at the geometric horizon.
- A UTC civil day can hold two sunrises (
{-65.0, 123.75}on 2038-08-12), so total sunlight exceedsset − rise. - A UTC civil day can hold a sunset that precedes its sunrise (
{65.0, 180.0}on 2000-01-01), whereset − riseis negative and meaningless.
All three are now pinned by their own regression tests. The library was correct in every case; the properties were not. Verified across ten fixed seeds and thirty random ones.
95 tests and 5 properties, green on Elixir 1.15, 1.17 and 1.19.