From 02e57b7db5f22fd06f581fad470fe6d3b6e22d5a Mon Sep 17 00:00:00 2001 From: Marvin Kaiser Date: Mon, 13 Jan 2020 16:17:20 +0100 Subject: [PATCH] Added tests for self-altering expressions --- src/test/testCode.c | 10 ++++++++++ src/test/testCode.h | 3 ++- src/test/tests.k | 7 ++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/test/testCode.c b/src/test/testCode.c index 409702d..9a4f29d 100644 --- a/src/test/testCode.c +++ b/src/test/testCode.c @@ -21,6 +21,10 @@ int cNeg(int x) { int cId(int x) { return x; } +int cSelfMinus(int x) { + x = x - 1; + return x; +} void printSuccess(char* name, int x, int y, int expected, int result) { printf("SUCCESS:\t%s(%d, %d)\tGOT: %d\tExpected: %d\n", name, x, y, result, expected); @@ -105,6 +109,12 @@ int main(){ failed += testOneArg("id", cId, id, -1); failed += testOneArg("id", cId, id, 15); + printf("\nMisc Tests\n"); + failed += testOneArg("selfMinus", cSelfMinus, selfMinus, 5); + failed += testOneArg("selfMinus", cSelfMinus, selfMinus, 0); + failed += testOneArg("selfMinus", cSelfMinus, selfMinus, 100); + failed += testOneArg("selfMinus", cSelfMinus, selfMinus, -50); + // Tests for passing arguments to functions failed += runFunctionCallTests(); diff --git a/src/test/testCode.h b/src/test/testCode.h index 8e7dc08..a89022f 100644 --- a/src/test/testCode.h +++ b/src/test/testCode.h @@ -7,4 +7,5 @@ int sub(int x, int y); int mul(int x, int y); int modulo(int x, int y); int neg(int x); -int id(int x); \ No newline at end of file +int id(int x); +int selfMinus(int x); \ No newline at end of file diff --git a/src/test/tests.k b/src/test/tests.k index 1386717..aaf7e91 100644 --- a/src/test/tests.k +++ b/src/test/tests.k @@ -133,6 +133,11 @@ function gte(x, y) { return (x >= y); } +function selfMinus(x) { + x = (x - 1); + return x; +} + function myWhile(end) { let cond = 0; while ((cond < end)) { @@ -141,4 +146,4 @@ function myWhile(end) { return cond; } -add(1, 1); +add(1, 1);