OcalEN Validation Report
Scientific lunar calculator - current measured state.
1. Honest framing
OcalEN's scientific lunar calculator is a new tool. The standards it implements (IAU 2006, IERS 2010, DE440, IAU 2000A, GUM 100:2008, CCSDS 502.0-B-3) are the same standards used by operational reference services. What is currently measured against those services is summarised below; what is pending is listed under "pending baselines" with the planned coverage and the procedure to populate.
This page never invents numbers. If a baseline has zero samples, that is what the page says.
2. Test suite results (static catalogue)
The static catalogue mirrors the methodology Section 12.8 table. The catalogue is updated when the underlying tests change; it is not re-executed at page render. To re-run any test locally, invoke the file shown in the second column:
php /lua/calculadora-lunar/<file>
| Test category | File | Coverage | Status | What it proves |
|---|---|---|---|---|
| Parameter audit | test_param_audit.php |
17 / 17 documented inputs | PASS | every documented input affects the output |
| Phase regression (clip-level) | test_phase0_regression.php |
3 / 3 known events | PASS | principal-phase identification at clip-level epochs |
| Toggle matrix | test_phase11_toggle_matrix.php |
30 / 30 model toggles | PASS | each engine toggle produces a distinct numerical output |
| Engine extension | test_phase24_engine_extension.php |
67 / 67 internal contracts | PASS | NPB matrix, state vectors, uncertainty propagation, monthly ephemeris |
| JPL Horizons smoke | test_phase11_jpl_horizons.php |
2 samples (Phase 11 smoke fixture) | PASS (wide tolerance) | smoke comparison only; not a precision baseline |
| JPL Horizons regression baseline | test_phase26_horizons_baseline.php |
0 / planned 200 to 1000 | SKIPPED (no samples yet) | sub-arcsec precision when populated |
3. Numerical residuals
Aggregated p50 / p95 / max residuals against external references are produced by the consumer test runners. They appear in this section once the underlying baseline has at least one sample. Until then, the relevant rows say "not yet measured" and refer to the schema document for the planned tolerance.
JPL Horizons regression not yet measured
Planned coverage: 200 to 1000 samples. Consumer: test_phase26_horizons_baseline.php.
Why empty. The calculator is a new tool. The broader baseline is built incrementally as samples are fetched and audited; the schema and the procedure are committed first, the data is committed batch by batch.
Schema and procedure: see _big_files/fixtures/horizons/BASELINE_SCHEMA.md.
USNO Astronomical Almanac cross-check not yet measured
Planned coverage: 120 to 360 samples. Consumer: pending (test runner lands when first batch is committed).
Why empty. The calculator is a new tool. The broader baseline is built incrementally as samples are fetched and audited; the schema and the procedure are committed first, the data is committed batch by batch.
Schema and procedure: see _big_files/fixtures/usno/BASELINE_SCHEMA.md.
IMCCE / INPOP21a cross-check not yet measured
Planned coverage: 100 to 300 samples. Consumer: pending (test runner lands when first batch is committed).
Why empty. The calculator is a new tool. The broader baseline is built incrementally as samples are fetched and audited; the schema and the procedure are committed first, the data is committed batch by batch.
Schema and procedure: see _big_files/fixtures/imcce/BASELINE_SCHEMA.md.
4. Pending baselines
The following extensions are required before the methodology can defend any sub-arcsecond precision claim. They are listed here so the gap is visible to the reader and to any reviewer:
- JPL Horizons regression - target
200 to 1000samples; schema at_big_files/fixtures/horizons/BASELINE_SCHEMA.md. - USNO Astronomical Almanac cross-check - target
120 to 360samples; schema at_big_files/fixtures/usno/BASELINE_SCHEMA.md. - IMCCE / INPOP21a cross-check - target
100 to 300samples; schema at_big_files/fixtures/imcce/BASELINE_SCHEMA.md. - Round-trip unit tests across the unit conversions exposed by the form (km / AU / mi, deg / dms / rad, UTC / JD / MJD) - test runner pending.
5. Source of truth
- Methodology paper: https://www.ocalendario.com.br/calculadora-lunar-cientifica/methodology
- Engine entry point:
lua/calculadora-lunar/engine/OcseLiteLunarEngine.php - Input contract:
lua/calculadora-lunar/engine/InputContract.php - Test suite:
lua/calculadora-lunar/test_phase*.php(32 files in directory) - JPL Horizons baseline schema:
_big_files/fixtures/horizons/BASELINE_SCHEMA.md - USNO baseline schema:
_big_files/fixtures/usno/BASELINE_SCHEMA.md - IMCCE baseline schema:
_big_files/fixtures/imcce/BASELINE_SCHEMA.md - Calculator: https://www.ocalendario.com.br/calculadora-lunar-cientifica
6. Test files in this build
The directory lua/calculadora-lunar/ contains 32 test files. Each file is a standalone PHP script runnable from CLI. The list below is enumerated from the filesystem at page render time:
| File | Size (KB) |
|---|---|
test_phase0_regression.php |
4.1 |
test_phase10_helpers.php |
8.2 |
test_phase11_jpl_horizons.php |
3.6 |
test_phase11_refraction.php |
3.4 |
test_phase11_schema_validation.php |
8.3 |
test_phase11_services.php |
12.6 |
test_phase11_state_vectors.php |
4.2 |
test_phase11_time_scales.php |
4.2 |
test_phase11_toggle_matrix.php |
8.9 |
test_phase11_uncertainty_budget.php |
5.5 |
test_phase12_iau2006_frames.php |
5.8 |
test_phase14_charts.php |
2.7 |
test_phase15_besselian.php |
4.1 |
test_phase16_planets.php |
5.9 |
test_phase17_de440.php |
13.5 |
test_phase18_eclipse_path.php |
14.3 |
test_phase19_hipparcos.php |
12.5 |
test_phase1_meeus_example.php |
2.2 |
test_phase20_sbdb.php |
9.9 |
test_phase21_search.php |
11.9 |
test_phase21_search_ui.php |
10.1 |
test_phase24_engine_extension.php |
12.2 |
test_phase25_popular_view.php |
5.1 |
test_phase25_unit_roundtrip.php |
17.2 |
test_phase26_horizons_baseline.php |
9.8 |
test_phase3_sun.php |
1.6 |
test_phase5_apsides.php |
1.6 |
test_phase6_eclipses.php |
1.1 |
test_phase8_seasons.php |
1.2 |
test_phase9_libration_topo.php |
4.2 |
test_phase9_nutation.php |
2.9 |
test_phase9_saros.php |
1.8 |