Compares resolved scene graph output against checked-in oracle fixtures.
Oracle comparisons serialize selected graph subtrees into a stable JSON shape and report field-level differences for resolver validation.
Summary
Functions
Compares expected and actual oracle nodes and returns field-level diffs.
Reads an oracle manifest file and returns its comparison entries.
Runs one oracle comparison against either a fixture binary or an already-built graph.
Serializes a scene node and its descendants into the stable oracle JSON shape.
Functions
@spec compare( Figler.Scene.Graph.Oracle.Node.t() | nil, Figler.Scene.Graph.Oracle.Node.t() | nil, String.t(), float(), boolean() ) :: [Figler.Scene.Graph.Oracle.Diff.t()]
Compares expected and actual oracle nodes and returns field-level diffs.
@spec entries!(Path.t()) :: [Figler.Scene.Graph.Oracle.Entry.t()]
Reads an oracle manifest file and returns its comparison entries.
@spec run( binary() | Figler.Scene.Graph.t(), Path.t(), Figler.Scene.Graph.Oracle.Entry.t() ) :: map()
Runs one oracle comparison against either a fixture binary or an already-built graph.
Binary input is decoded into a focused graph rooted at the oracle entry node. Graph input is used as-is, which lets batch runners build the graph once and compare multiple oracle entries against it.
@spec serialize( Figler.Scene.Node.t() | nil, Figler.Scene.Graph.t(), non_neg_integer() ) :: Figler.Scene.Graph.Oracle.Node.t() | nil
Serializes a scene node and its descendants into the stable oracle JSON shape.