Move every program and expectation out of tests/reference and register the unified tests/language corpus as local cases. Remove the old immutable-corpus protections from build, maintenance, and documentation paths. Co-authored-by: andrew <andrew@aklabs.net>
963 B
The language test corpus
The .bas files in this directory and their sibling .txt files are the editable language
corpus. CMake registers every program as an individual local_* CTest case and compares its
output with the sibling expectation.
The corpus includes cases carried over from the deprecated Go implementation as well as cases written for this interpreter. Their provenance is useful when investigating a regression, but it does not make any case immutable or turn the old implementation into a specification.
Change a program and its expectation deliberately and in the same commit. If the changed
output represents an intentional language decision, record the reason in TODO.md or the
relevant documentation. If it is an accidental change, fix the interpreter instead.
The examples/ subdirectory contains complete BASIC programs used as worked examples. It is
part of the same corpus and follows the same .bas/.txt pairing rule.