55import gmsh
66from src .mesher import Mesher
77from src .AreaExporterService import AreaExporterService
8+
9+
810class testAreaExporterService (unittest .TestCase ):
911 @staticmethod
10- def sumAreasFromList (areas :List [float ]):
11- total :float = 0
12+ def sumAreasFromList (areas : List [float ]):
13+ total : float = 0
1214 for area in areas :
1315 total += area
1416 return total
@@ -23,32 +25,65 @@ def setUp(self):
2325
2426 def tearDown (self ):
2527 gmsh .finalize ()
28+
2629 def inputFileFromCaseName (self , caseName ) -> None :
2730 return self .testdataPath + caseName + '/' + caseName + ".step"
2831
2932 def testAreaExporterReturnsTrueValues (self ):
3033 caseName = 'five_wires'
31- mappedElements = Mesher ().meshFromStep (self .inputFileFromCaseName (caseName ), caseName )
34+ mappedElements = Mesher ().meshFromStep (
35+ self .inputFileFromCaseName (caseName ), caseName )
3236 areaExporter = AreaExporterService ()
33- areaExporter .addPhysicalModelForConductors (mappedElements = mappedElements )
37+ areaExporter .addPhysicalModelForConductors (
38+ mappedElements = mappedElements )
3439 geometries = areaExporter .computedAreas ['geometries' ]
3540
36- internalElements = []
37- for geometry in geometries :
38- if geometry ['geometry' ] == "Conductor_0" :
39- totalArea = geometry ['area' ]
40- else :
41- internalElements .append (geometry ['area' ])
42- areaElements = self .sumAreasFromList (internalElements )
41+ expectedDict = {
42+ 'geometries' : [
43+ {
44+ 'area' : 28.274334 ,
45+ 'geometry' : 'Conductor_0' ,
46+ 'label' : 'Conductor_0'
47+ },
48+ {
49+ 'area' : 0.785398 ,
50+ 'geometry' : 'Conductor_5' ,
51+ 'label' : 'Conductor_1'
52+ },
53+ {
54+ 'area' : 2.010619 ,
55+ 'geometry' : 'Conductor_1' ,
56+ 'label' : 'Conductor_002'
57+ },
58+ {
59+ 'area' : 0.785398 ,
60+ 'geometry' : 'Conductor_2' ,
61+ 'label' : 'Conductor_003'
62+ },
63+ {
64+ 'area' : 0.785398 ,
65+ 'geometry' : 'Conductor_3' ,
66+ 'label' : 'Conductor_004'
67+ },
68+ {
69+ 'area' : 0.785398 ,
70+ 'geometry' : 'Conductor_4' ,
71+ 'label' : 'Conductor_005'
72+ },
73+ ]
74+ }
4375
44- self .assertAlmostEqual (totalArea , areaElements , places = 5 )
76+ self .maxDiff = None
77+ self .assertDictEqual (areaExporter .computedAreas , expectedDict )
4578
4679 def testJsonFormat (self ) -> None :
4780 caseName = 'DielectricUnshieldedPair'
48- mappedElements = Mesher ().meshFromStep (self .inputFileFromCaseName (caseName ), caseName )
81+ mappedElements = Mesher ().meshFromStep (
82+ self .inputFileFromCaseName (caseName ), caseName )
4983 areaExporter = AreaExporterService ()
50- areaExporter .addPhysicalModelForConductors (mappedElements = mappedElements )
51-
84+ areaExporter .addPhysicalModelForConductors (
85+ mappedElements = mappedElements )
86+
5287 expectedDict = {
5388 'geometries' : [
5489 {
@@ -60,7 +95,7 @@ def testJsonFormat(self) -> None:
6095 'area' : 201.06193 ,
6196 'geometry' : 'Conductor_0' ,
6297 'label' : 'LeftConductor'
63- }
98+ }
6499 ]
65100 }
66101 self .maxDiff = None
0 commit comments