| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "Common FEM unit tests" |
| | __author__ = "Bernd Hahnebach" |
| | __url__ = "https://www.freecad.org" |
| |
|
| | import unittest |
| |
|
| | import FreeCAD |
| |
|
| | import ObjectsFem |
| | from . import support_utils as testtools |
| | from .support_utils import fcc_print |
| |
|
| |
|
| | class TestFemCommon(unittest.TestCase): |
| | fcc_print("import TestFemCommon") |
| |
|
| | |
| | def setUp(self): |
| | |
| |
|
| | |
| | self.document = FreeCAD.newDocument(self.__class__.__name__) |
| |
|
| | |
| | def tearDown(self): |
| | |
| | FreeCAD.closeDocument(self.document.Name) |
| |
|
| | |
| | def test_00print(self): |
| | |
| | |
| |
|
| | fcc_print( |
| | "\n{0}\n{1} run FEM TestFemCommon tests {2}\n{0}".format(100 * "*", 10 * "*", 61 * "*") |
| | ) |
| |
|
| | |
| | def test_adding_refshaps(self): |
| | doc = self.document |
| | slab = doc.addObject("Part::Plane", "Face") |
| | slab.Length = 500.00 |
| | slab.Width = 500.00 |
| | cf = ObjectsFem.makeConstraintFixed(doc) |
| | ref_eles = [] |
| | |
| | |
| | |
| | for i, face in enumerate(slab.Shape.Edges): |
| | ref_eles.append("Edge%d" % (i + 1)) |
| | cf.References = [(slab, ref_eles)] |
| | doc.recompute() |
| | expected_reflist = [(slab, ("Edge1", "Edge2", "Edge3", "Edge4"))] |
| | assert_err_message = ( |
| | "Adding reference shapes did not result in expected list {} != {}".format( |
| | cf.References, expected_reflist |
| | ) |
| | ) |
| | self.assertEqual(cf.References, expected_reflist, assert_err_message) |
| |
|
| | |
| | def test_pyimport_all_FEM_modules(self): |
| | |
| | pymodules = [] |
| |
|
| | |
| | pymodules += testtools.collect_python_modules("") |
| | pymodules += testtools.collect_python_modules("femexamples") |
| | pymodules += testtools.collect_python_modules("feminout") |
| | pymodules += testtools.collect_python_modules("femmesh") |
| | pymodules += testtools.collect_python_modules("femobjects") |
| | pymodules += testtools.collect_python_modules("femresult") |
| | pymodules += testtools.collect_python_modules("femtest") |
| | pymodules += testtools.collect_python_modules("femtools") |
| | pymodules += testtools.collect_python_modules("femsolver") |
| | |
| | |
| | pymodules += testtools.collect_python_modules("femsolver/elmer") |
| | pymodules += testtools.collect_python_modules("femsolver/elmer/equations") |
| | pymodules += testtools.collect_python_modules("femsolver/z88") |
| | pymodules += testtools.collect_python_modules("femsolver/calculix") |
| | if FreeCAD.GuiUp: |
| | pymodules += testtools.collect_python_modules("femcommands") |
| | pymodules += testtools.collect_python_modules("femguiobjects") |
| | pymodules += testtools.collect_python_modules("femguiutils") |
| | pymodules += testtools.collect_python_modules("femtaskpanels") |
| | pymodules += testtools.collect_python_modules("femviewprovider") |
| |
|
| | |
| | |
| | for mod in pymodules: |
| | if ( |
| | mod == "femsolver.solver_taskpanel" |
| | or mod == "femexamples.examplesgui" |
| | or mod == "TestFemGui" |
| | ) and not FreeCAD.GuiUp: |
| | continue |
| |
|
| | fcc_print(f"Try importing {mod} ...") |
| | try: |
| | im = __import__(f"{mod}") |
| | except ImportError as e: |
| | |
| | if "vtkmodules" in e.name and not "BUILD_FEM_VTK_PYTHON" in FreeCAD.__cmake__: |
| | im = True |
| | else: |
| | im = False |
| | if not im: |
| | |
| | __import__(f"{mod}") |
| | self.assertTrue(im, f"Problem importing {mod}") |
| |
|