Skip to content
LightCurve
WebsiteApp

Validation

Test suite

What the automated tests check.

npm test (in app/) runs 187 Vitest tests; npm run browsers checks the application in Chrome, Edge, Firefox and WebKit, the engine of Safari.

Area Checks
Ephemerides and frames Sun and Moon positions, Earth’s shadow, airmass, sky background, refraction
Geometry Sign convention of the phase (evening negative, morning positive), az/el ↔ signed phase round trip, observable windows, a predicted pass
Photometry Lambertian sphere vs analytic formula, earthshine, magnitudes
Models The 13 catalogue models and the 20 DISCOS shapes build with sensible sizes; ISS, Tiangong and Hubble dimensions; array width from the DISCOS cross-section; cross-sections of a cube and a sphere
Orbits TLE reading, ISS altitude and period, immobility of a GEO in the sky, look angles identical to satellite.js, LVLH attitude
Observer in orbit Range, no atmosphere, line of sight hidden by the Earth (independent check), Sun exclusion
CCSDS TDM round trip, OEM vs SGP4 within 50 m, AEM round trip and attitude law
Measurements CSV and stations files, station recovered from the angles (J2000 or of date), measured line of sight
Analysis Free tumbling (energy and angular momentum, stable and unstable axes), periodogram on a noisy irregular signal, glint geometry, Nelder–Mead, facet extraction, attitude-state classes, joint fit of two series from two stations
Materials Measured BRDF: flat table for a Lambertian surface, parametric fit recovering the model
Sensor Catalogue (field, pixel scale, CCD / CMOS binning), saturation; photometric bands (solar colours, material colours, extinction, photons)
Tools Synthetic dataset and validation runners, DISCOS export reader
Analysis module Period of a noisy track, full turn of a double-peaked curve, red noise not called periodic; file kinds and station types; Lambertian diameter round trip; on the demonstration history: the three behaviours, spin-down and abrupt change, equinox glints, the attitude upset found by the monitor and no false alarm, equivalent diameter
Analysis preview File kinds; the diagnostic of a full history agrees with the analysis on objects, tracks and points, and says what is missing (stations, range, history); a TDM read with its phase angles computed from the geometry; the demonstration results up to date with the analyses, its points rebuilt exactly; no analysis method among the modules of the preview
Licensing Keys issued by the command-line tool; altered, expired, foreign keys, unknown plans, other payload formats and prefixes refused; what each plan contains (Trial: nothing in, nothing out); builds and add-ons
Accounts server Password hashing, sign-in and its brake, redirection kept inside the site, forms from another site refused, files outside the build refused; modules sent only within the licence (the Analysis workspace to the Operations plan and to the single feature, the preview and the report pages it shares to every plan, source maps never), ended licence, invitation by e-mail and single-use link, roles and seats, a disabled member signed out, password reset answering the same for unknown addresses, password change closing the other sessions, log retention and deletion of ended organisations; server licence capping plans, add-ons, end dates and seats, no application without a valid key, no key needed on localhost only
Browsers WebGL 2 with float rendering, curves in a worker or on the page, the same magnitude in Chrome, Edge, Firefox and WebKit (npm run browsers)