Regression tests in interpretation only

This commit is contained in:
Dmitry Boulytchev 2019-09-19 15:52:20 +03:00
parent 1cfd3123be
commit 5527013a7f
15 changed files with 38 additions and 28 deletions

View file

@ -9,7 +9,7 @@ check: $(TESTS)
$(TESTS): %: %.expr
@echo $@
# @$(RC) $< && cat $@.input | ./$@ > $@.log && diff $@.log orig/$@.log
cat $@.input | $(RC) -i $< > $@.log && diff $@.log orig/$@.log
cat $@.input | $(RC) -i $< > $@.log && diff $@.log orig/$@.log; true
# @cat $@.input | $(RC) -s $< > $@.log && diff $@.log orig/$@.log
clean:

View file

@ -1,5 +1,4 @@
local x, y, z;
read (x);
read (y);
x := read ();
y := read ();
z := x*y*3;
write (z)

View file

@ -1,4 +1,5 @@
fun fib (n) local r {
fun fib (n) {
local r;
if n <= 1
then result := 1
else

View file

@ -1,4 +1,5 @@
fun test (n, m) local i, s {
fun test (n, m) {
local i, s;
s := 0;
for i := 0, i <= n, i := i + 1 do
s := s + i;

View file

@ -1,4 +1,5 @@
fun printArray (x) local elem {
fun printArray (x) {
local elem;
if x.length == 0 then return fi;
for i:=0, i<x.length, i:=i+1 do
write (x[i])

View file

@ -1,4 +1,5 @@
fun sort (x) local i, j, y, n {
fun sort (x) {
local i, j, y, n;
n := x.length;
if n == 0 then return x fi;

View file

@ -1,4 +1,5 @@
fun printString (s) local i {
fun printString (s) {
local i;
for i := 0, i < s.length, i := i + 1 do
write (s[i])
od

View file

@ -1,4 +1,5 @@
fun collect_ints_acc (v, tail) local i {
fun collect_ints_acc (v, tail) {
local i;
case v of
a@#unboxed -> return Cons (a, tail)
| #string -> return tail

View file

@ -1,4 +1,5 @@
fun test (n, m) local i, s {
fun test (n, m) {
local i, s;
write (n);
write (m);
return n

View file

@ -1,4 +1,5 @@
fun test (n, m) local i, s {
fun test (n, m) {
local i, s;
s := 0;
for i := 0, i <= n, i := i + 1 do
s := s + i;

View file

@ -12,7 +12,8 @@ fun print_list (l) {
esac
}
fun array_to_list (a) local l, i {
fun array_to_list (a) {
local l, i;
l := {};
for i := a.length, i > 0, i := i-1 do
l := a[i-1] : l

View file

@ -1,4 +1,6 @@
infix "===" at "==" (v1, v2) local s1, s2, i {
infix "===" at "==" (v1, v2) {
local s1, s2, i;
s1 := v1.string;
s2 := v2.string;