Skip to content

Commit c5e61e9

Browse files
committed
Added tests for run_code() function
1 parent 33b46a3 commit c5e61e9

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

pymatbridge/tests/test_run_code.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import pymatbridge as pymat
2+
import numpy.testing as npt
3+
import test_utils as tu
4+
5+
6+
class TestFunctionProcessor:
7+
8+
# Start a Matlab session before running any tests
9+
@classmethod
10+
def setup_class(cls):
11+
cls.mlab = tu.connect_to_matlab()
12+
13+
# Tear down the Matlab session after running all the tests
14+
@classmethod
15+
def teardown_class(cls):
16+
tu.stop_matlab(cls.mlab)
17+
18+
# Running 'disp()' in Matlab command window
19+
def test_disp(self):
20+
result1 = self.mlab.run_code("disp('Hello world')")['content']['stdout']
21+
result2 = self.mlab.run_code("disp(' ')")['content']['stdout']
22+
result3 = self.mlab.run_code("disp('')")['content']['stdout']
23+
24+
npt.assert_equal(result1, "Hello world\n")
25+
npt.assert_equal(result2, " \n")
26+
npt.assert_equal(result3, "")
27+
28+
# Make some assignments and run basic operations
29+
def test_basic_operation(self):
30+
result_assignment_a = self.mlab.run_code("a = 21.23452261")['content']['stdout']
31+
result_assignment_b = self.mlab.run_code("b = 347.745")['content']['stdout']
32+
result_sum = self.mlab.run_code("a + b")['content']['stdout']
33+
result_diff = self.mlab.run_code("a - b")['content']['stdout']
34+
result_product = self.mlab.run_code("a * b")['content']['stdout']
35+
result_division = self.mlab.run_code("c = a / b")['content']['stdout']
36+
37+
38+
npt.assert_equal(result_assignment_a, unicode("\na =\n\n 21.2345\n\n"))
39+
npt.assert_equal(result_assignment_b, unicode("\nb =\n\n 347.7450\n\n"))
40+
npt.assert_equal(result_sum, unicode("\nans =\n\n 368.9795\n\n"))
41+
npt.assert_equal(result_diff, unicode("\nans =\n\n -326.5105\n\n"))
42+
npt.assert_equal(result_product, unicode("\nans =\n\n 7.3842e+03\n\n"))
43+
npt.assert_equal(result_division, unicode("\nc =\n\n 0.0611\n\n"))
44+
45+
# Put in some undefined code
46+
def test_undefined_code(self):
47+
success = self.mlab.run_code("this_is_nonsense")['success']
48+
message = self.mlab.run_code("this_is_nonsense")['content']['stdout']
49+
50+
npt.assert_equal(success, "false")
51+
npt.assert_equal(message, "Undefined function or variable 'this_is_nonsense'.")
52+
53+

0 commit comments

Comments
 (0)