Ein symbolisches Ergebnis lässt sich schlecht mit einem anderen symbolischen Ergebnis vergleichen: Zwei richtige Ergebnisse können völlig verschieden aussehen, und um sie zu vergleichen, bräuchte man ein zweites Algebrasystem, das über Gleichheit entscheidet.
Stattdessen numerisch vergleichen
Die Testsuite leitet einen Ausdruck symbolisch ab und wertet dann an fünf Stellen sowohl das Ergebnis als auch einen zentralen Differenzenquotienten der Ausgangsfunktion aus. Stimmen beide an jeder Stelle im Rahmen der Toleranz überein, ist das symbolische Ergebnis so gut wie sicher richtig. Fünfundfünfzig Ausdrücke laufen bei jeder Änderung auf diese Weise durch.
Auch die Erklärungen werden geprüft
Die durchgerechneten Beispiele auf den Regelseiten werden genauso geprüft. Jedes Beispiel gibt ein Ergebnis in Rechner-Schreibweise an; der Test liest es ein, leitet die Ausgangsfunktion mit der Engine ab und vergleicht beides numerisch. Neunzig Beispiele, geprüft bei jedem Build.
Was dabei nicht auffällt
Numerische Übereinstimmung sagt nichts über die Schritte – eine Engine könnte mit der falschen Regel beim richtigen Ergebnis landen. Die Schritte werden durch Lesen geprüft, und das ist ein weiterer Grund, warum der Rechenweg lesbar sein muss.