Implemented do while loops

This commit is contained in:
Marvin Kaiser
2020-01-13 16:43:38 +01:00
parent 02e57b7db5
commit e52ad061f9
16 changed files with 129 additions and 36 deletions

30
src/test/loop/loop.c Normal file
View File

@@ -0,0 +1,30 @@
#include <stdio.h>
#include "loop.h"
void printLoopSuccess(char* name, int x, int expected, int result) {
printf("SUCCESS:\t%s(%d)\tGOT: %d\tExpected: %d\n", name, x, result, expected);
}
void printLoopError(char* name, int x, int expected, int result) {
printf("ERROR:\t\t%s(%d)\tGOT: %d\tExpected: %d\n", name, x, result, expected);
}
int loopTest(char* name, int x, int expected, int result) {
if (expected == result) {
printLoopSuccess(name, x, expected, result);
return 0;
} else {
printLoopError(name, x, expected, result);
return 1;
}
}
int runLoopTests() {
printf("\nLoop Tests \n");
int failed = 0;
failed += loopTest("while", 5, 5, myWhile(5));
failed += loopTest("doWhile", 0, 1, myDoWhile(0));
failed += loopTest("doWhile", 1, 1, myDoWhile(1));
return failed;
}

2
src/test/loop/loop.h Normal file
View File

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

View File

@@ -125,7 +125,7 @@ int main(){
failed += runComparisonTests();
// Tests for while loop
failed += runWhileTests();
failed += runLoopTests();
printf("\n=== Failed Tests: %d\n", failed);

View File

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

View File

@@ -146,4 +146,12 @@ function myWhile(end) {
return cond;
}
function myDoWhile(end) {
let cond = 0;
do {
cond = (cond + 1);
} while((cond < end));
return cond;
}
add(1, 1);

View File

@@ -1,27 +0,0 @@
#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;
}

View File

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