Added while loop

This commit is contained in:
Marvin Kaiser
2020-01-13 16:00:42 +01:00
parent 33215a1b4a
commit bd4ae1d605
15 changed files with 428 additions and 299 deletions

View File

@@ -114,6 +114,9 @@ int main(){
// Tests for comparison expressions
failed += runComparisonTests();
// Tests for while loop
failed += runWhileTests();
printf("\n=== Failed Tests: %d\n", failed);
if (failed > 0) {

View File

@@ -4,4 +4,5 @@
int runFunctionCallTests();
int runRecursiveTests();
int runComparisonTests();
int runComparisonTests();
int runWhileTests();

View File

@@ -133,4 +133,12 @@ function gte(x, y) {
return (x >= y);
}
function myWhile(end) {
let cond = 0;
while ((cond < end)) {
cond = (cond + 1);
}
return cond;
}
add(1, 1);

27
src/test/while/while.c Normal file
View File

@@ -0,0 +1,27 @@
#include <stdio.h>
#include "while.h"
void printWhileSuccess(char* name, int x, int expected, int result) {
printf("SUCCESS:\t%s(%d)\tGOT: %d\tExpected: %d\n", name, x, result, expected);
}
void printWhileError(char* name, int x, int expected, int result) {
printf("ERROR:\t\t%s(%d)\tGOT: %d\tExpected: %d\n", name, x, result, expected);
}
int whileTest(char* name, int x, int expected, int result) {
if (expected == result) {
printWhileSuccess(name, x, expected, result);
return 0;
} else {
printWhileError(name, x, expected, result);
return 1;
}
}
int runWhileTests() {
printf("\nWhile Tests \n");
int failed = 0;
failed += whileTest("while", 5, 5, myWhile(5));
return failed;
}

1
src/test/while/while.h Normal file
View File

@@ -0,0 +1 @@
int myWhile(int x);