mirror of
https://github.com/NGSolve/netgen.git
synced 2025-03-04 00:45:40 +05:00
add plane test
This commit is contained in:
parent
b0f13a1f20
commit
f9c462e94e
15682
tests/pytest/geofiles/plane.stl
Normal file
15682
tests/pytest/geofiles/plane.stl
Normal file
File diff suppressed because it is too large
Load Diff
@ -978,6 +978,50 @@
|
|||||||
"total_badness": 84181.20294
|
"total_badness": 84181.20294
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"plane.stl": [
|
||||||
|
{
|
||||||
|
"ne1d": 890,
|
||||||
|
"ne2d": 2646,
|
||||||
|
"ne3d": 8528,
|
||||||
|
"quality_histogram": "[4, 14, 27, 37, 43, 46, 41, 91, 102, 180, 331, 464, 679, 978, 1233, 1340, 1240, 987, 555, 136]",
|
||||||
|
"total_badness": 12856.87891
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ne1d": 572,
|
||||||
|
"ne2d": 1228,
|
||||||
|
"ne3d": 1901,
|
||||||
|
"quality_histogram": "[2, 18, 45, 48, 51, 66, 60, 92, 128, 133, 165, 191, 187, 197, 168, 128, 114, 65, 39, 4]",
|
||||||
|
"total_badness": 4320.0075948
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ne1d": 724,
|
||||||
|
"ne2d": 1754,
|
||||||
|
"ne3d": 3285,
|
||||||
|
"quality_histogram": "[4, 20, 30, 41, 36, 43, 44, 68, 96, 154, 170, 280, 339, 436, 436, 406, 340, 206, 107, 29]",
|
||||||
|
"total_badness": 5959.5331564
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ne1d": 956,
|
||||||
|
"ne2d": 2886,
|
||||||
|
"ne3d": 8682,
|
||||||
|
"quality_histogram": "[3, 11, 23, 48, 51, 47, 53, 55, 92, 133, 207, 340, 555, 905, 1236, 1446, 1418, 1197, 665, 197]",
|
||||||
|
"total_badness": 12703.577343
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ne1d": 1554,
|
||||||
|
"ne2d": 6466,
|
||||||
|
"ne3d": 31866,
|
||||||
|
"quality_histogram": "[4, 7, 10, 5, 21, 54, 53, 79, 111, 204, 328, 684, 1327, 2460, 3983, 5375, 6122, 5827, 4106, 1106]",
|
||||||
|
"total_badness": 41304.661508
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ne1d": 2992,
|
||||||
|
"ne2d": 23396,
|
||||||
|
"ne3d": 276949,
|
||||||
|
"quality_histogram": "[5, 10, 11, 13, 8, 23, 34, 93, 171, 459, 1121, 2702, 6581, 15040, 28425, 44154, 58179, 60855, 45197, 13868]",
|
||||||
|
"total_badness": 341180.22628
|
||||||
|
}
|
||||||
|
],
|
||||||
"revolution.geo": [
|
"revolution.geo": [
|
||||||
{
|
{
|
||||||
"ne1d": 320,
|
"ne1d": 320,
|
||||||
|
@ -31,11 +31,16 @@ def checkData(mesh, mp, ref):
|
|||||||
assert ref['quality_histogram'] == data['quality_histogram']
|
assert ref['quality_histogram'] == data['quality_histogram']
|
||||||
assert ref['total_badness'] == pytest.approx(data['total_badness'], rel=1e-5)
|
assert ref['total_badness'] == pytest.approx(data['total_badness'], rel=1e-5)
|
||||||
|
|
||||||
|
# get tutorials
|
||||||
def getFiles(fileEnding):
|
def getFiles(fileEnding):
|
||||||
r, d, files = next(os.walk(os.path.join("..","..","tutorials")))
|
r, d, files = next(os.walk(os.path.join("..","..","tutorials")))
|
||||||
return (f for f in files if f.endswith(fileEnding))
|
return (f for f in files if f.endswith(fileEnding))
|
||||||
|
|
||||||
|
# get additional tests
|
||||||
|
def getAdditionalFiles(fileEnding):
|
||||||
|
r, d, files = next(os.walk("geofiles"))
|
||||||
|
return (f for f in files if f.endswith(fileEnding))
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def refdata():
|
def refdata():
|
||||||
return json.load(open('results.json','r'))
|
return json.load(open('results.json','r'))
|
||||||
@ -59,25 +64,30 @@ _geofiles = [f for f in getFiles(".geo")] + [f for f in getFiles(".stl")]
|
|||||||
if has_occ:
|
if has_occ:
|
||||||
_geofiles += [f for f in getFiles(".step")]
|
_geofiles += [f for f in getFiles(".step")]
|
||||||
_geofiles.sort()
|
_geofiles.sort()
|
||||||
|
_additional_testfiles = [f for f in getAdditionalFiles(".stl")]
|
||||||
|
if has_occ:
|
||||||
|
_additional_testfiles += [f for f in getAdditionalFiles(".step")]
|
||||||
|
_additional_testfiles.sort()
|
||||||
|
|
||||||
def generateMesh(filename, mp):
|
def generateMesh(filename, mp):
|
||||||
|
folder = os.path.join("..","..","tutorials") if filename in _geofiles else "geofiles"
|
||||||
if filename.endswith(".geo"):
|
if filename.endswith(".geo"):
|
||||||
geo = csg.CSGeometry(os.path.join("..","..","tutorials", filename))
|
geo = csg.CSGeometry(os.path.join(folder, filename))
|
||||||
elif filename.endswith(".stl"):
|
elif filename.endswith(".stl"):
|
||||||
geo = stl.STLGeometry(os.path.join("..","..","tutorials", filename))
|
geo = stl.STLGeometry(os.path.join(folder, filename))
|
||||||
elif filename.endswith(".step"):
|
elif filename.endswith(".step"):
|
||||||
geo = occ.OCCGeometry(os.path.join("..","..","tutorials", filename))
|
geo = occ.OCCGeometry(os.path.join(folder, filename))
|
||||||
return geo.GenerateMesh(mp)
|
return geo.GenerateMesh(mp)
|
||||||
|
|
||||||
def isSlowTest(filename):
|
def isSlowTest(filename):
|
||||||
return filename in ["cubemcyl.geo", "frame.step", "revolution.geo", "manyholes.geo", "torus.geo",
|
return filename in ["cubemcyl.geo", "frame.step", "revolution.geo", "manyholes.geo", "torus.geo",
|
||||||
"cubemsphere.geo", "manyholes2.geo", "matrix.geo", "trafo.geo", "ellipticcone.geo",
|
"cubemsphere.geo", "manyholes2.geo", "matrix.geo", "trafo.geo", "ellipticcone.geo",
|
||||||
"period.geo", "shaft.geo", "cubeandring.geo", "ellipticcyl.geo",
|
"period.geo", "shaft.geo", "cubeandring.geo", "ellipticcyl.geo",
|
||||||
"ellipsoid.geo", "cone.geo"]
|
"ellipsoid.geo", "cone.geo", "plane.stl"]
|
||||||
|
|
||||||
def getParameters():
|
def getParameters():
|
||||||
res = []
|
res = []
|
||||||
for f in _geofiles:
|
for f in _geofiles + _additional_testfiles:
|
||||||
for i,mp in enumerate(getMeshingparameters(f)):
|
for i,mp in enumerate(getMeshingparameters(f)):
|
||||||
if isSlowTest(f):
|
if isSlowTest(f):
|
||||||
res.append( pytest.param(f, mp, i, marks=pytest.mark.slow ) )
|
res.append( pytest.param(f, mp, i, marks=pytest.mark.slow ) )
|
||||||
@ -105,7 +115,7 @@ def generateResultFile():
|
|||||||
import re, time
|
import re, time
|
||||||
data = {}
|
data = {}
|
||||||
with TaskManager():
|
with TaskManager():
|
||||||
for _file in _geofiles:
|
for _file in _geofiles + _additional_testfiles:
|
||||||
print("generate "+_file)
|
print("generate "+_file)
|
||||||
start = time.time()
|
start = time.time()
|
||||||
mps = getMeshingparameters(_file)
|
mps = getMeshingparameters(_file)
|
||||||
@ -116,10 +126,11 @@ def generateResultFile():
|
|||||||
mesh = generateMesh(_file, mp)
|
mesh = generateMesh(_file, mp)
|
||||||
meshdata.append( getData(mesh, mp) )
|
meshdata.append( getData(mesh, mp) )
|
||||||
data[_file] = meshdata
|
data[_file] = meshdata
|
||||||
|
print("needed", time.time() - start, "seconds")
|
||||||
|
|
||||||
print("needed", time.time() - start, "seconds")
|
|
||||||
s = json.dumps(data, sort_keys=True, indent=4)
|
s = json.dumps(data, sort_keys=True, indent=4)
|
||||||
open("results.json", "w").write(s)
|
open("results.json", "w").write(s)
|
||||||
|
print("done")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
generateResultFile()
|
generateResultFile()
|
||||||
|
Loading…
Reference in New Issue
Block a user