| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import os |
| | import time |
| | import unittest |
| |
|
| | import FreeCAD |
| |
|
| | from . import ifc_import |
| |
|
| |
|
| | FILES = [ |
| | "IfcOpenHouse_IFC4.ifc", |
| | "FZK_haus.ifc", |
| | "schultz_residence.ifc", |
| | "nineteen_plots.ifc", |
| | "schependomlaan.ifc", |
| | "king_arch.ifc", |
| | "king_arch_full.ifc", |
| | ] |
| |
|
| | BBIM = ["00:00", "00:01", "00:04", "00:05", "00:05", "00:14", "00:36"] |
| |
|
| |
|
| | class NativeIFCTest(unittest.TestCase): |
| | results = [] |
| |
|
| | def setUp(self): |
| | |
| | if FreeCAD.ActiveDocument: |
| | if FreeCAD.ActiveDocument.Name != "IfcTest": |
| | FreeCAD.newDocument("IfcTest") |
| | else: |
| | FreeCAD.newDocument("IfcTest") |
| | FreeCAD.setActiveDocument("IfcTest") |
| |
|
| | def tearDown(self): |
| | FreeCAD.closeDocument("IfcTest") |
| |
|
| | def test01_IfcOpenHouse_coin(self): |
| | print("COIN MODE") |
| | n = 0 |
| | t = import_file(n) |
| | self.results.append(register(n, t)) |
| |
|
| | def test02_IfcOpenHouse_coin(self): |
| | n = 1 |
| | t = import_file(n) |
| | self.results.append(register(n, t)) |
| |
|
| | def test03_IfcOpenHouse_coin(self): |
| | n = 2 |
| | t = import_file(n) |
| | self.results.append(register(n, t)) |
| |
|
| | def test04_IfcOpenHouse_coin(self): |
| | n = 3 |
| | t = import_file(n) |
| | self.results.append(register(n, t)) |
| |
|
| | def test05_IfcOpenHouse_coin(self): |
| | n = 4 |
| | t = import_file(n) |
| | self.results.append(register(n, t)) |
| |
|
| | def test06_IfcOpenHouse_coin(self): |
| | n = 5 |
| | t = import_file(n) |
| | self.results.append(register(n, t)) |
| |
|
| | def test07_IfcOpenHouse_coin(self): |
| | n = 6 |
| | t = import_file(n) |
| | self.results.append(register(n, t)) |
| |
|
| | def test08_IfcOpenHouse_coin(self): |
| | print("SHAPE MODE") |
| | n = 0 |
| | t = import_file(n, shape=True) |
| | self.results.append(register(n, t, "shape")) |
| |
|
| | def test09_IfcOpenHouse_coin(self): |
| | n = 1 |
| | t = import_file(n, shape=True) |
| | self.results.append(register(n, t, "shape")) |
| |
|
| | def test10_IfcOpenHouse_coin(self): |
| | n = 2 |
| | t = import_file(n, shape=True) |
| | self.results.append(register(n, t, "shape")) |
| |
|
| | def test11_IfcOpenHouse_coin(self): |
| | n = 3 |
| | t = import_file(n, shape=True) |
| | self.results.append(register(n, t, "shape")) |
| |
|
| | def test12_IfcOpenHouse_coin(self): |
| | n = 4 |
| | t = import_file(n, shape=True) |
| | self.results.append(register(n, t, "shape")) |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | def testfinal(self): |
| | print("| File | File size | Import time (coin) | Import time (shape) | BlenderBIM |") |
| | print("| ---- | --------- | ------------------- | ------------------ | ---------- |") |
| | for i in range(len(self.results)): |
| | if self.results[i][0] == "coin": |
| | l = [ |
| | self.results[i][1], |
| | self.results[i][2], |
| | self.results[i][3], |
| | "Timed out", |
| | self.results[i][4], |
| | ] |
| | b = [ |
| | j |
| | for j in range(len(self.results)) |
| | if self.results[j][0] == "shape" and self.results[j][1] == self.results[i][1] |
| | ] |
| | if b: |
| | l[3] = self.results[b[0]][3] |
| | print("| " + " | ".join(l) + " |") |
| |
|
| |
|
| | def test(): |
| | "This is meant to be used from a terminal, to run the tests without the GUI" |
| |
|
| | print("COIN MODE") |
| | for f in FILES: |
| | d = FreeCAD.newDocument() |
| | ifc_import.insert( |
| | os.path.expanduser("~") + os.sep + f, |
| | d.Name, |
| | strategy=0, |
| | shapemode=1, |
| | switchwb=0, |
| | silent=True, |
| | ) |
| |
|
| |
|
| | def import_file(n, shape=False): |
| | if shape: |
| | shapemode = 0 |
| | else: |
| | shapemode = 1 |
| | stime = time.time() |
| | f = os.path.join(os.path.expanduser("~"), FILES[n]) |
| | ifc_import.insert(f, "IfcTest", strategy=0, shapemode=shapemode, switchwb=0, silent=True) |
| | return "%02d:%02d" % (divmod(round(time.time() - stime, 1), 60)) |
| |
|
| |
|
| | def register(n, t, mode="coin"): |
| | f = os.path.join(os.path.expanduser("~"), FILES[n]) |
| | fsize = round(os.path.getsize(f) / 1048576, 2) |
| | return [mode, FILES[n], str(fsize) + " Mb", t, BBIM[n]] |
| |
|