#include "include/test.hpp" #include "../src/include/execute.hpp" #include "../src/include/utils.hpp" EvalResult execute(string s) { Memory memory; return execute(split_string(s, '\n'), memory); } int main() { _TEST_PRESENTATION("Statements"); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int x = 0; if (1) x++; x;")) == 1), "If vérifié", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int x = 0; if (0) x++; x;")) == 0), "If pas vérifié", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int x = 1; if (0) x++; else x--; x;")) == 0), "If else pas vérifié", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int i = 0; while (i < 100) i++; i;")) == 100), "While", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int i = 0; for (int j = 0; j < 100; j++) { i++; } i;")) == 100), "For", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int x; for (int i=0; i < 30; i++) { x=i; if (i==20) break; }; x;")) == 20), "For break", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int x; int i=0; while (i < 30) { x=i; if (i==20) break; i++; }; x;")) == 20), "While break", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int x = 0; for (int i = 0; i < 20; i++) { x++; continue; x++; } x;")) == 20), "For continue", true ); _TEST_ASSERT( _TEST_NO_EXCEPTION(get(execute("int x = 0; int i = 0; while (i < 20) { i++; if (i % 2 == 0) continue; x++; } x;")) == 10), "While continue", true ); return 0; }