From a0228221ba996f08a0f39ec153a4d4214c23ada5 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Thu, 26 Jan 2017 17:34:51 +0000 Subject: [PATCH] Moved unit-testing of input_cmd_funcs to tests sub-package. --- tests/test_input_cmd_funcs.py | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 tests/test_input_cmd_funcs.py diff --git a/tests/test_input_cmd_funcs.py b/tests/test_input_cmd_funcs.py new file mode 100644 index 00000000..3b60ffb3 --- /dev/null +++ b/tests/test_input_cmd_funcs.py @@ -0,0 +1,79 @@ +import sys +import unittest + +# http://stackoverflow.com/a/17981937/1942837 +from contextlib import contextmanager +from io import StringIO + +@contextmanager +def captured_output(): + new_out, new_err = StringIO(), StringIO() + old_out, old_err = sys.stdout, sys.stderr + try: + sys.stdout, sys.stderr = new_out, new_err + yield sys.stdout, sys.stderr + finally: + sys.stdout, sys.stderr = old_out, old_err + +# end stack copy + +from gprMax.input_cmd_funcs import * + +class My_input_cmd_funcs_test(unittest.TestCase): + def assert_output(self, out, expected_out): + """helper function""" + output = out.getvalue().strip() + self.assertEqual(output, expected_out) + + def test_rx(self): + with captured_output() as (out, err): + rx(0, 0, 0) + self.assert_output(out, '#rx: 0 0 0') + def test_rx2(self): + with captured_output() as (out, err): + rx(0, 1, 2, 'id') + self.assert_output(out, '#rx: 0 1 2 id') + def test_rx3(self): + with captured_output() as (out, err): + rx(2, 1, 0, 'idd', ['Ex']) + self.assert_output(out, '#rx: 2 1 0 idd Ex') + def test_rx4(self): + with captured_output() as (out, err): + rx(2, 1, 0, 'id', ['Ex', 'Ez']) + self.assert_output(out, '#rx: 2 1 0 id Ex Ez') + def test_rx4(self): + with captured_output() as (out, err): + rx(2, 1, 0, 'id', ['Ex', 'Ez']) + self.assert_output(out, '#rx: 2 1 0 id Ex Ez') + def test_rx_rotate_exception(self): + with self.assertRaises(ValueError): + rx(2, 1, 0, 'id', ['Ex', 'Ez'], polarisation='x', rotate90origin=(1,1)) # no dxdy given + def test_rx_rotate_success(self): + with captured_output() as (out, err): + rx(2, 1, 0, 'id', ['Ex', 'Ez'], polarisation='x', rotate90origin=(1,1), dxdy=(0,0)) + self.assert_output(out, '#rx: 1 2 0 id Ex Ez') # note: x, y swapped + def test_rx_rotate_success2(self): + with captured_output() as (out, err): + rx(2, 1, 0, 'id', ['Ex', 'Ez'], polarisation='y', rotate90origin=(1,1), dxdy=(0,0)) + self.assert_output(out, '#rx: 1 2 0 id Ex Ez') # note: x, y swapped + + def test_src_steps(self): + with captured_output() as (out, err): + src_steps() + self.assert_output(out, '#src_steps: 0 0 0') + def test_src_steps2(self): + with captured_output() as (out, err): + src_steps(42, 43, 44.2) + self.assert_output(out, '#src_steps: 42 43 44.2') + + def test_rx_steps(self): + with captured_output() as (out, err): + rx_steps() + self.assert_output(out, '#rx_steps: 0 0 0') + def test_rx_steps2(self): + with captured_output() as (out, err): + rx_steps(42, 43, 44.2) + self.assert_output(out, '#rx_steps: 42 43 44.2') + +if __name__ == '__main__': + unittest.main()