Module Dcalc.Autotest

This module scans a program for "test" scopes, detected as scopes without any undefined inputs. It runs the interpreter to compute their results, then inserts assertion in the code that ensure correctness of said results.

If the given scope has any inputs, does nothing but reboxing. Otherwise, this function runs the interpreter on the scope to determine its outputs, then inserts assertions within the scope.

NOTE: scopes with context variables are *not* treated at the moment ; functional values are ignored in the equality assertions

val program : 'm Ast.program -> 'm Ast.program