]> SALOME platform Git repositories - modules/hydrosolver.git/blob - tests/boundaryConditionsTest.py
Salome HOME
Lot4: add boundary conditions reader/writer, presets reader and tests
[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 sys.path.append(os.path.join(cur_dir, "..", "src", "HYDROTools"))
12 import boundaryConditions
13
14  
15 class TestBoundaryConditions(unittest.TestCase):
16     def testReadPresets(self):
17         file_path = os.path.join(data_dir, "bnd_conditions_presets.txt")
18         reader = boundaryConditions.PresetReader(file_path)
19         presets = reader.read()
20         self.assertEqual(3, len(presets))
21         
22         self.assertEqual(True, presets.has_key("Closed boundaries/walls"))
23         self.assertEqual((2,2,2,2), presets["Closed boundaries/walls"])
24         
25         self.assertEqual(True, presets.has_key("Incident waves"))
26         self.assertEqual((1,1,1,None), presets["Incident waves"])
27         
28         self.assertEqual(True, presets.has_key("Free T"))
29         self.assertEqual((None,None,None,4), presets["Free T"])
30         
31     def testRead(self):
32         file_path = os.path.join(data_dir, "bnd_conditions1.cli")
33         reader = boundaryConditions.BoundaryConditionReader(file_path)
34         conditions = reader.read()
35         self.assertEqual(7, len(conditions))
36         self.assertEqual(0, len(reader.errors))
37         
38     def testWrite(self):
39         file_path = os.path.join(tempfile.gettempdir(), "bnd_conditions_w.cli")
40         writer = boundaryConditions.BoundaryConditionWriter(file_path)
41         
42         cnd1 = boundaryConditions.BoundaryCondition(5, 4, 4, 4, "group1")
43         cnd2 = boundaryConditions.BoundaryCondition(4, 5, 5, 5, "group2")
44         
45         writer.write([cnd1, cnd2])
46         self.assertEqual(True, os.path.exists(file_path))
47         self.assertEqual(0, len(writer.errors))
48         
49         os.remove(file_path)
50         
51     def testReadWrite(self):
52         input_file_path = os.path.join(data_dir, "bnd_conditions1.cli")
53         reader = boundaryConditions.BoundaryConditionReader(input_file_path)
54         conditions = reader.read()
55         
56         output_file_path = os.path.join(tempfile.gettempdir(), "bnd_conditions1_w.cli")
57         writer = boundaryConditions.BoundaryConditionWriter(output_file_path)
58         writer.write(conditions)
59
60         try:
61             self.assertEqual(True, filecmp.cmp(input_file_path, output_file_path))
62         finally:
63             os.remove(output_file_path)
64         
65 unittest.main()