mirror of
https://github.com/cosinekitty/astronomy.git
synced 2026-04-20 22:48:02 -04:00
Added an InternalError class to explicitly indicate that an exception occurs due to an internal assertion failure inside Astronomy Engine. Any InternalError should be considered a bug in Astronomy Engine, not a bug in calling code. Upon reviewing the code for searching moon phases, I discovered that there was inconsistent behavior in SearchMoonPhase. It was sometimes returning null, other times throwing an exception. Because the caller passes in `limitDays`, it makes sense to simply return `null` in any case where the search fails. This is to support callers that intentionally want to find whether or not a moon phase occurs in a given small window of time. Updated internal callers of SearchMoonPhase to throw an InternalError when they know they should always find an event. Internal function FindSeasonChange did not check to make sure SearchSunLongitude succeeded. There is no known case where this failure happens, but if it did, a null AstroTime would have been stored in SeasonsInfo. It is better to fail early with an explicit InternalError. Other miscellaneous C# code cleanup. In the Python code, I found a couple of `raise Error` that needed to be changed to `raise InternalError`.