Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/changelog.d/1645.test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
add more find and fix tests for repair tools
Binary file added tests/integration/files/DuplicateFaces.scdocx
Binary file not shown.
Binary file added tests/integration/files/ExtraEdges.scdocx
Binary file not shown.
Binary file not shown.
Binary file added tests/integration/files/gear.scdocx
Binary file not shown.
63 changes: 63 additions & 0 deletions tests/integration/test_repair_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,3 +267,66 @@ def test_fix_short_edges(modeler: Modeler):
design = modeler.open_file(FILES_DIR / "ShortEdgesBefore.scdocx")
problem_areas = modeler.repair_tools.find_short_edges(design.bodies, 10)
assert problem_areas[0].fix().success is True


def test_find_and_fix_duplicate_faces(modeler: Modeler):
"""Test to read geometry, find and fix duplicate faces and validate they are removed."""
design = modeler.open_file(FILES_DIR / "DuplicateFaces.scdocx")
assert len(design.bodies) == 7
areas = modeler.repair_tools.find_duplicate_faces(design.bodies)
assert len(areas) == 6
for area in areas:
area.fix()
assert len(design.bodies) == 1


def test_find_and_fix_extra_edges(modeler: Modeler):
"""Test to read geometry, find and fix extra edges and validate they are removed."""
design = modeler.open_file(FILES_DIR / "ExtraEdges_NoComponents.scdocx")
assert len(design.bodies) == 3
starting_edge_count = 0
for body in design.bodies:
starting_edge_count += len(body.edges)
assert starting_edge_count == 69
extra_edges = modeler.repair_tools.find_extra_edges(design.bodies)
assert len(extra_edges) == 6
for edge in extra_edges:
edge.fix()
final_edge_count = 0
for body in design.bodies:
final_edge_count += len(body.edges)
assert final_edge_count == 36


def test_find_and_fix_extra_edges_in_components(modeler: Modeler):
"""
Test to read geometry, find and fix extra edges in components and validate they are
removed.
"""
design = modeler.open_file(FILES_DIR / "ExtraEdges.scdocx")
len(design.components)
starting_edge_count = 0
for components in design.components:
starting_edge_count += len(components.bodies[0].edges)
assert starting_edge_count == 69
for components in design.components:
extra_edges = modeler.repair_tools.find_extra_edges(components.bodies)
for edge in extra_edges:
edge.fix()
final_edge_count = 0
for components in design.components:
final_edge_count += len(components.bodies[0].edges)
assert final_edge_count == 36


def test_find_and_fix_inexact_edges(modeler: Modeler):
"""Test to read geometry, find and fix inexact edges and validate they are fixed removed."""
design = modeler.open_file(FILES_DIR / "gear.scdocx")
assert len(design.bodies[0].edges) == 993
inexact_edges = modeler.repair_tools.find_inexact_edges(design.bodies)
assert len(inexact_edges) == 272
for i in inexact_edges:
i.fix()
assert len(design.bodies[0].edges) == 993
inexact_edges = modeler.repair_tools.find_inexact_edges(design.bodies)
assert len(inexact_edges) == 0
Loading