jcm.dycore.base_test

Contract tests for the DynamicalCore protocol.

The intent here is not to test a backend — it is to test the shape of the protocol itself. A trivial in-test fake exercises every abstract method so that the ABC machinery raises on any incomplete subclass. The registry and the Predictions pytree-compatibility are also covered.

The richer end-to-end design spike (Phase 0.5) lives in jcm/dycore/protocol_test.py, where a non-trivial fake cubed-sphere dycore drives real Held-Suarez physics through Model.

Classes

DynamicalCoreContractTest([methodName])

The ABC must reject incomplete implementations and accept complete ones.

PredictionsTest([methodName])

Predictions must round-trip through JAX pytree machinery.

RegistryTest([methodName])

The dycore name→factory registry must round-trip and complain helpfully.