Salome HOME
fix boundary condition dialog
[modules/hydrosolver.git] / tests / boundaryConditionsTest.py
1 import os
2 import sys
3 import tempfile
4 import filecmp
5
6 import unittest
7
8 cur_dir = os.path.dirname(os.path.realpath(__file__))
9 data_dir = os.path.join(cur_dir, "data")
10
11 #hydro_solver_root = os.path.join(os.environ['HYDROSOLVER_ROOT_DIR'], 'lib', 'python2.7', 'site-packages', 'salome')
12 #sys.path.append(hydro_solver_root)
13 import boundaryConditions
14
15
16 class TestBoundaryConditions(unittest.TestCase):
17     def testReadPresets(self):
18         file_path = os.path.join(data_dir, "bnd_conditions_presets.txt")
19         reader = boundaryConditions.PresetReader(file_path)
20         presets = reader.read()
21         self.assertEqual(3, len(presets))
22
23         self.assertEqual(True, presets.has_key("Closed boundaries/walls"))
24         self.assertEqual((2,2,2,2), presets["Closed boundaries/walls"])
25
26         self.assertEqual(True, presets.has_key("Incident waves"))
27         self.assertEqual((1,1,1,None), presets["Incident waves"])
28
29         self.assertEqual(True, presets.has_key("Free T"))
30         self.assertEqual((None,None,None,4), presets["Free T"])
31
32     def testRead(self):
33         file_path = os.path.join(data_dir, "bnd_conditions1.cli")
34         reader = boundaryConditions.BoundaryConditionReader(file_path)
35         conditions = reader.read()
36         self.assertEqual(7, len(conditions))
37         self.assertEqual(0, len(reader.errors))
38
39     def testWrite(self):
40         file_path = os.path.join(tempfile.gettempdir(), "bnd_conditions_w.cli")
41         writer = boundaryConditions.BoundaryConditionWriter(file_path)
42
43         cnd1 = boundaryConditions.BoundaryCondition(5, 4, 4, 4, "group1")
44         cnd2 = boundaryConditions.BoundaryCondition(4, 5, 5, 5, "group2")
45
46         writer.write([cnd1, cnd2])
47         self.assertEqual(True, os.path.exists(file_path))
48         self.assertEqual(0, len(writer.errors))
49
50         os.remove(file_path)
51
52     def testReadWrite(self):
53         input_file_path = os.path.join(data_dir, "bnd_conditions1.cli")
54         reader = boundaryConditions.BoundaryConditionReader(input_file_path)
55         conditions = reader.read()
56
57         output_file_path = os.path.join(tempfile.gettempdir(), "bnd_conditions1_w.cli")
58         writer = boundaryConditions.BoundaryConditionWriter(output_file_path)
59         writer.write(conditions)
60
61         try:
62             self.assertEqual(True, filecmp.cmp(input_file_path, output_file_path))
63         finally:
64             os.remove(output_file_path)
65
66 unittest.main()