[python] Improve test API

This commit is contained in:
Émilie Feral
2020-04-01 14:57:25 +02:00
committed by LeaNumworks
parent ffb8f8f953
commit d0a77bda2b
4 changed files with 122 additions and 107 deletions

View File

@@ -1,120 +1,113 @@
#include <quiz.h>
#include "execution_environment.h"
static const char * s_pyplotArrowScript = R"(#
from matplotlib.pyplot import *
arrow(2,3,4,5)
show()
)";
QUIZ_CASE(python_matplotlib_pyplot_import) {
// Test "from matplotlib.pyplot import *"
TestExecutionEnvironment env = init_environement();
assert_command_execution_fails(env, "arrow(2,3,4,5)");
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "arrow(2,3,4,5)");
deinit_environment();
// "from matplotlib import *"
env = init_environement();
assert_command_execution_fails(env, "pyplot.arrow(2,3,4,5)");
assert_command_execution_succeeds(env, "from matplotlib import *");
assert_command_execution_succeeds(env, "pyplot.arrow(2,3,4,5)");
deinit_environment();
// "import matplotlib"
env = init_environement();
assert_command_execution_fails(env, "matplotlib.pyplot.arrow(2,3,4,5)");
assert_command_execution_succeeds(env, "import matplotlib");
assert_command_execution_succeeds(env, "matplotlib.pyplot.arrow(2,3,4,5)");
deinit_environment();
// "import matplotlib.pyplot"
env = init_environement();
assert_command_execution_fails(env, "matplotlib.pyplot.arrow(2,3,4,5)");
assert_command_execution_succeeds(env, "import matplotlib.pyplot");
assert_command_execution_succeeds(env, "matplotlib.pyplot.arrow(2,3,4,5)");
deinit_environment();
}
QUIZ_CASE(python_matplotlib_pyplot_arrow) {
assert_script_execution_succeeds(s_pyplotArrowScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "arrow(2,3,4,5)");
assert_command_execution_succeeds(env, "show()");
deinit_environment();
}
static const char * s_pyplotAxisScript = R"(#
from matplotlib.pyplot import *
axis((2,3,4,5))
axis([2,3,4,5])
print(axis())
scatter(0,1)
show()
)";
static const char * s_pyplotAxisErrorScript = R"(#
from matplotlib.pyplot import *
axis(2,3,4,5)
)";
QUIZ_CASE(python_matplotlib_pyplot_axis) {
assert_script_execution_succeeds(s_pyplotAxisScript, "(2.0, 3.0, 4.0, 5.0)\n");
assert_script_execution_fails(s_pyplotAxisErrorScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "axis((2,3,4,5))");
assert_command_execution_succeeds(env, "axis([2,3,4,5])");
assert_command_execution_succeeds(env, "axis()","(2.0, 3.0, 4.0, 5.0)\n");
assert_command_execution_succeeds(env, "show()");
assert_command_execution_fails(env, "axis(2,3,4,5)");
deinit_environment();
}
static const char * s_pyplotBarScript = R"(#
from matplotlib.pyplot import *
bar([0,2,3],[10,12,23])
bar([0,2,3],10)
bar([],[])
bar([1,2,3],[1,2,3],2,3)
bar([1,2,3],[1,2,3],[1,2,3],[1,2,3])
show()
)";
static const char * s_pyplotBarErrorScript = R"(#
from matplotlib.pyplot import *
bar([1,2,3],[1,2,3,4],[1,2,3],[1,2,3])
show()
)";
QUIZ_CASE(python_matplotlib_pyplot_bar) {
assert_script_execution_succeeds(s_pyplotBarScript);
assert_script_execution_fails(s_pyplotBarErrorScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "bar([0,2,3],[10,12,23])");
assert_command_execution_succeeds(env, "bar([0,2,3],10)");
assert_command_execution_succeeds(env, "bar([],[])");
assert_command_execution_succeeds(env, "bar([1,2,3],[1,2,3],2,3)");
assert_command_execution_succeeds(env, "bar([1,2,3],[1,2,3],[1,2,3],[1,2,3])");
assert_command_execution_succeeds(env, "show()");
assert_command_execution_fails(env, "bar([1,2,3],[1,2,3,4],[1,2,3],[1,2,3])");
deinit_environment();
}
static const char * s_pyplotGridScript = R"(#
from matplotlib.pyplot import *
grid(True)
grid()
show()
)";
QUIZ_CASE(python_matplotlib_pyplot_grid) {
assert_script_execution_succeeds(s_pyplotGridScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "grid(True)");
assert_command_execution_succeeds(env, "grid()");
deinit_environment();
}
static const char * s_pyplotHistScript = R"(#
from matplotlib.pyplot import *
hist([2,3,4,5,6])
hist([2,3,4,5,6],23)
hist([2,3,4,5,6],[0,2,3])
hist([2,3,4,5,6],[0,2,3, 4,5,6,7])
show()
)";
QUIZ_CASE(python_matplotlib_pyplot_hist) {
assert_script_execution_succeeds(s_pyplotHistScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "hist([2,3,4,5,6])");
assert_command_execution_succeeds(env, "hist([2,3,4,5,6],23)");
assert_command_execution_succeeds(env, "hist([2,3,4,5,6],[0,2,3])");
assert_command_execution_succeeds(env, "hist([2,3,4,5,6],[0,2,3, 4,5,6,7])");
assert_command_execution_succeeds(env, "show()");
deinit_environment();
}
static const char * s_pyplotPlotScript = R"(#
from matplotlib.pyplot import *
plot([2,3,4,5,6])
plot([2,3,4,5,6],[3,4,5,6,7])
show()
)";
static const char * s_pyplotPlotErrorScript = R"(#
from matplotlib.pyplot import *
plot([2,3,4,5,6],2)
)";
QUIZ_CASE(python_matplotlib_pyplot_plot) {
assert_script_execution_succeeds(s_pyplotPlotScript);
assert_script_execution_fails(s_pyplotPlotErrorScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "plot([2,3,4,5,6])");
assert_command_execution_succeeds(env, "plot(2,3)");
assert_command_execution_succeeds(env, "plot([2,3,4,5,6],[3,4,5,6,7])");
assert_command_execution_succeeds(env, "show()");
assert_command_execution_fails(env, "plot([2,3,4,5,6],2)");
deinit_environment();
}
static const char * s_pyplotScatterScript = R"(#
from matplotlib.pyplot import *
scatter(2,3)
scatter([2,3,4,5,6],[3,4,5,6,7])
show()
)";
static const char * s_pyplotScatterErrorScript = R"(#
from matplotlib.pyplot import *
scatter([2,3,4,5,6],2)
)";
QUIZ_CASE(python_matplotlib_pyplot_scatter) {
assert_script_execution_succeeds(s_pyplotScatterScript);
assert_script_execution_fails(s_pyplotScatterErrorScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "scatter(2,3)");
assert_command_execution_succeeds(env, "scatter([2,3,4,5,6],[3,4,5,6,7])");
assert_command_execution_succeeds(env, "show()");
assert_command_execution_fails(env, "scatter([2,3,4,5,6],2)");
deinit_environment();
}
static const char * s_pyplotTextScript = R"(#
from matplotlib.pyplot import *
text(2,3,'hello')
show()
)";
QUIZ_CASE(python_matplotlib_pyplot_text) {
assert_script_execution_succeeds(s_pyplotTextScript);
TestExecutionEnvironment env = init_environement();
assert_command_execution_succeeds(env, "from matplotlib.pyplot import *");
assert_command_execution_succeeds(env, "text(2,3,'hello')");
assert_command_execution_succeeds(env, "show()");
deinit_environment();
}