mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[python] Add tests for each module
This commit is contained in:
committed by
LeaNumworks
parent
ec5803f06f
commit
cdff61f64b
25
python/test/ion.cpp
Normal file
25
python/test/ion.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <quiz.h>
|
||||
#include "execution_environment.h"
|
||||
|
||||
QUIZ_CASE(python_ion_import) {
|
||||
// Test "from ion import *"
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_fails(env, "keydown(KEY_LEFT)");
|
||||
assert_command_execution_succeeds(env, "from ion import *");
|
||||
assert_command_execution_succeeds(env, "keydown(KEY_LEFT)");
|
||||
deinit_environment();
|
||||
|
||||
// "import ion"
|
||||
env = init_environement();
|
||||
assert_command_execution_fails(env, "ion.keydown(ion.KEY_LEFT)");
|
||||
assert_command_execution_succeeds(env, "import ion");
|
||||
assert_command_execution_succeeds(env, "ion.keydown(ion.KEY_LEFT)");
|
||||
deinit_environment();
|
||||
}
|
||||
|
||||
QUIZ_CASE(python_ion_keydown) {
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_succeeds(env, "from ion import *");
|
||||
assert_command_execution_succeeds(env, "keydown(KEY_LEFT)", "False\n");
|
||||
deinit_environment();
|
||||
}
|
||||
28
python/test/kandinsky.cpp
Normal file
28
python/test/kandinsky.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <quiz.h>
|
||||
#include "execution_environment.h"
|
||||
|
||||
QUIZ_CASE(python_kandinsky_import) {
|
||||
// Test "from kandinsky import *"
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_fails(env, "get_pixel(0,0)");
|
||||
assert_command_execution_succeeds(env, "from kandinsky import *");
|
||||
assert_command_execution_succeeds(env, "get_pixel(0,0)");
|
||||
deinit_environment();
|
||||
|
||||
// "import kandinsky"
|
||||
env = init_environement();
|
||||
assert_command_execution_fails(env, "kandinsky.get_pixel(0,0)");
|
||||
assert_command_execution_succeeds(env, "import kandinsky");
|
||||
assert_command_execution_succeeds(env, "kandinsky.get_pixel(0,0)");
|
||||
deinit_environment();
|
||||
}
|
||||
|
||||
QUIZ_CASE(python_kandinsky_basics) {
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_succeeds(env, "from kandinsky import *");
|
||||
assert_command_execution_succeeds(env, "set_pixel(0,0,color(12,12,12))");
|
||||
assert_command_execution_succeeds(env, "get_pixel(0,0)");
|
||||
assert_command_execution_succeeds(env, "fill_rect(0,0,10,10,color(2,3,2))");
|
||||
assert_command_execution_succeeds(env, "draw_string('hello',0,0)");
|
||||
deinit_environment();
|
||||
}
|
||||
19
python/test/math.cpp
Normal file
19
python/test/math.cpp
Normal file
@@ -0,0 +1,19 @@
|
||||
#include <quiz.h>
|
||||
#include "execution_environment.h"
|
||||
|
||||
QUIZ_CASE(python_math) {
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_succeeds(env, "from math import *");
|
||||
assert_command_execution_succeeds(env, "e", "2.718281828459045\n");
|
||||
assert_command_execution_succeeds(env, "gamma(9)", "40320.0\n");
|
||||
deinit_environment();
|
||||
}
|
||||
|
||||
QUIZ_CASE(python_cmath) {
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_succeeds(env, "from cmath import *");
|
||||
assert_command_execution_succeeds(env, "cos(0)", "(1+-0j)\n");
|
||||
deinit_environment();
|
||||
}
|
||||
|
||||
|
||||
11
python/test/random.cpp
Normal file
11
python/test/random.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include <quiz.h>
|
||||
#include "execution_environment.h"
|
||||
|
||||
QUIZ_CASE(python_random) {
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_fails(env, "random()");
|
||||
assert_command_execution_succeeds(env, "from random import *");
|
||||
assert_command_execution_succeeds(env, "random()");
|
||||
assert_command_execution_succeeds(env, "getrandbits(23)");
|
||||
deinit_environment();
|
||||
}
|
||||
12
python/test/time.cpp
Normal file
12
python/test/time.cpp
Normal file
@@ -0,0 +1,12 @@
|
||||
#include <quiz.h>
|
||||
#include "execution_environment.h"
|
||||
|
||||
QUIZ_CASE(python_time) {
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_fails(env, "monotonic()");
|
||||
assert_command_execution_succeeds(env, "from time import *");
|
||||
assert_command_execution_succeeds(env, "monotonic()");
|
||||
assert_command_execution_succeeds(env, "sleep(23)");
|
||||
deinit_environment();
|
||||
}
|
||||
|
||||
38
python/test/turtle.cpp
Normal file
38
python/test/turtle.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include <quiz.h>
|
||||
#include "execution_environment.h"
|
||||
|
||||
// TODO: to be completed
|
||||
|
||||
QUIZ_CASE(python_turtle) {
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_fails(env, "forward(3)");
|
||||
assert_command_execution_succeeds(env, "from turtle import *");
|
||||
assert_command_execution_succeeds(env, "reset()");
|
||||
assert_command_execution_succeeds(env, "forward(10)");
|
||||
assert_command_execution_succeeds(env, "backward(5)");
|
||||
assert_command_execution_succeeds(env, "right(10)");
|
||||
assert_command_execution_succeeds(env, "left(5)");
|
||||
assert_command_execution_succeeds(env, "circle(28)");
|
||||
assert_command_execution_succeeds(env, "speed(28)");
|
||||
assert_command_execution_succeeds(env, "goto(28,28)");
|
||||
assert_command_execution_succeeds(env, "position()", "(28.0, 28.0)\n");
|
||||
assert_command_execution_succeeds(env, "setheading(28)");
|
||||
assert_command_execution_succeeds(env, "heading()", "28.0\n");
|
||||
assert_command_execution_succeeds(env, "pendown()");
|
||||
assert_command_execution_succeeds(env, "penup()");
|
||||
assert_command_execution_succeeds(env, "pensize(2)");
|
||||
assert_command_execution_succeeds(env, "isdown()", "False\n");
|
||||
assert_command_execution_succeeds(env, "showturtle()");
|
||||
deinit_environment();
|
||||
}
|
||||
|
||||
QUIZ_CASE(python_turtle_circle) {
|
||||
// Turtle position should be unchanged after a complete circle
|
||||
TestExecutionEnvironment env = init_environement();
|
||||
assert_command_execution_succeeds(env, "from turtle import *");
|
||||
assert_command_execution_succeeds(env, "goto(0,0)");
|
||||
assert_command_execution_succeeds(env, "circle(28)");
|
||||
// FIXME: this is actually not true
|
||||
//assert_command_execution_succeeds(env, "position()", "(0.0, 0.0)\n");
|
||||
deinit_environment();
|
||||
}
|
||||
Reference in New Issue
Block a user