FEM: unit tests, test values and units of known quantities from all build in solid materials

This commit is contained in:
Bernd Hahnebach
2019-05-13 22:47:55 +02:00
parent 13af9ab884
commit 2046f81b1c
2 changed files with 34 additions and 0 deletions

View File

@@ -99,6 +99,7 @@ gf()
./bin/FreeCADCmd --run-test "femtest.testcommon.TestFemCommon.test_adding_refshaps"
./bin/FreeCADCmd --run-test "femtest.testcommon.TestFemCommon.test_pyimport_all_FEM_modules"
./bin/FreeCADCmd --run-test "femtest.testmaterial.TestMaterialUnits.test_known_quantity_units"
./bin/FreeCADCmd --run-test "femtest.testmaterial.TestMaterialUnits.test_material_card_quantities"
./bin/FreeCADCmd --run-test "femtest.testmesh.TestMeshCommon.test_mesh_seg2_python"
./bin/FreeCADCmd --run-test "femtest.testmesh.TestMeshCommon.test_mesh_seg3_python"
./bin/FreeCADCmd --run-test "femtest.testmesh.TestMeshCommon.test_unv_save_load"
@@ -148,6 +149,9 @@ unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName("femtest.t
import unittest
unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName("femtest.testmaterial.TestMaterialUnits.test_known_quantity_units"))
import unittest
unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName("femtest.testmaterial.TestMaterialUnits.test_material_card_quantities"))
import unittest
unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName("femtest.testmesh.TestMeshCommon.test_mesh_seg2_python"))

View File

@@ -27,6 +27,8 @@ import FreeCAD
import unittest
from .utilstest import fcc_print
from os.path import join
class TestMaterialUnits(unittest.TestCase):
fcc_print('import TestMaterialUnits')
@@ -54,6 +56,34 @@ class TestMaterialUnits(unittest.TestCase):
.format(param)
)
def test_material_card_quantities(self):
# test the value and unit of known quantity parameter from solid build in material cards
# keep in mind only if FreeCAD is installed all materials are copied
# TODO Fluid materials (are they installed?)
# get build in materials
builtin_solid_mat_dir = join(FreeCAD.getResourceDir(), "Mod", "Material", "StandardMaterial")
fcc_print('{}'.format(builtin_solid_mat_dir))
from materialtools.cardutils import add_cards_from_a_dir as addmats
materials, cards, icons = addmats({}, {}, {}, builtin_solid_mat_dir, '')
# get known material quantity parameter
from materialtools.cardutils import get_known_material_quantity_parameter as knownquant
known_quantities = knownquant()
# check param, value pairs
from materialtools.cardutils import check_value_unit as checkvalueunit
for mat in materials:
fcc_print('{}'.format(mat))
for param, value in materials[mat].items():
if param in known_quantities:
# fcc_print(' {} --> {}'.format(param, value))
self.assertTrue(
checkvalueunit(param, value),
'Unit of quantity {} from material parameter {} is wrong.'
.format(value, param)
)
def tearDown(self):
# clearance, is executed after every test
FreeCAD.closeDocument(self.doc_name)