]> OCCT Git - occt.git/commitdiff
Update of tests database
authorapv <apv@opencascade.com>
Wed, 9 Aug 2017 14:54:16 +0000 (17:54 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 10 Aug 2017 10:56:12 +0000 (13:56 +0300)
Test for 0023838: Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell)
Test for 0023866: GccAna_Circ2d3Tan does not find a circle
Test for 0023925: BRepFeat_SplitShape produces invalid shape
Test for 0023942: Pipe algorithms unrobust to number rounding
Test for 0025385: steep increase in tolerance by intersection
Test for 0025395: SIGSEGV in BRepOffsetAPI_MakeThickSolid
Test for 0025458: can a sweep be used to create 1-fold tori (using a closed wire as path)
Test for 0025478: Fillets can not touch
Test for 0025481: Edge must not contain obsolete curve representations
Test for 0025515: Boolean operation become worse for unknown reason.
Test for 0025521: Fillet creates shell with bad orientation of SubShape
Test for 0025551: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface
Test for 0025586: Poor mesh quality, or failure of meshing for closed extruded surfaces with holes
Test for 0025626: Loft of ellipses shows wrinkle near seam edge
Test for 0025628: BRepMesh fails to mesh face with open wire, considered as correct by checkshape
Test for 0025693: Wire of BSplines fails bopcheck
Test for 0025730: result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0
Test for 0025738: BRepMesh fails to produce correct mesh for the face
Test for 0025776: HLR returns intersecting edges in OutLineV of helical sweep
Test for 0025798: BRepFeat_SplitShape returns invalid result
Test for 0025817: crescent face is not meshed
Test for 0025827: BRepMesh does not synchronize parameters of glued vertices on small edges
Test for 0025837: Bad triangulation when IGES loaded in meters
Test for 0025852: Text to BRep algorithm produces bad faces for circled symbols
Test for 0025856: BRepOffsetAPI_ThruSections returns an invalid shape if one wire contains degenerated edges
Test for 0025879: result of blend fails the bopcheck
Test for 0025967: Shape Healing fails to correct a face with missing poles and pcurves
Test for 0026052: Missing pcurves are computed incorrectly on two connected faces laying on the same surface
Test for 0025061: BRepMesh should skip internal wires with self intersections to produce mesh for the shape anyway
Test for 0024490: Computed surface properties differ substantially depending on NaturalRestriction flag
Test for 0024568: Split shape produces an invalid result
Test for 0024692: fuseedge corruption of spherical edge
Test for 0024772: Intersection of cylinder and cone produces incorrect results
Test for 0024954: BRepBuilderAPI_MakeFace adds wire with aribitary orientation
Test for 0025104: Prism from BSpline curve can not be chamfered
Test for 0025206: Fillet creates edge with C0 continuity
Test for 0025979: fillet creates faces with non-closed wires
Test for 0025983: Fusion of sweep and its mirror invalid
Test for 0025994: Boolean fuse result in invalid result.
Test for 0026034: Result of revolution aborts the bopcheck if translated
Test for 0026077: nurbsconvert of psphere fails the bopargcheck
Test for 0025989: toridial surface gets damaged in STEP export

58 files changed:
tests/boolean/bfuse_complex/F5
tests/bugs/heal/bug25967 [new file with mode: 0644]
tests/bugs/heal/bug26052 [new file with mode: 0644]
tests/bugs/mesh/bug25061 [new file with mode: 0644]
tests/bugs/mesh/bug25551 [new file with mode: 0644]
tests/bugs/mesh/bug25586_1 [new file with mode: 0644]
tests/bugs/mesh/bug25586_2 [new file with mode: 0644]
tests/bugs/mesh/bug25586_3 [new file with mode: 0644]
tests/bugs/mesh/bug25628 [new file with mode: 0644]
tests/bugs/mesh/bug25738 [new file with mode: 0644]
tests/bugs/mesh/bug25817 [new file with mode: 0644]
tests/bugs/mesh/bug25827 [new file with mode: 0644]
tests/bugs/mesh/bug25837_1 [new file with mode: 0644]
tests/bugs/mesh/bug25837_2 [new file with mode: 0644]
tests/bugs/modalg_7/bug23838 [new file with mode: 0644]
tests/bugs/modalg_7/bug23925 [new file with mode: 0755]
tests/bugs/modalg_7/bug23942 [new file with mode: 0644]
tests/bugs/modalg_7/bug24490 [new file with mode: 0644]
tests/bugs/modalg_7/bug24568 [new file with mode: 0644]
tests/bugs/modalg_7/bug24692 [new file with mode: 0644]
tests/bugs/modalg_7/bug24772 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_1 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_2 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_3 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_4 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_5 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_6 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_7 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_8 [new file with mode: 0644]
tests/bugs/modalg_7/bug24954_9 [new file with mode: 0644]
tests/bugs/modalg_7/bug25104 [new file with mode: 0644]
tests/bugs/modalg_7/bug25206 [new file with mode: 0644]
tests/bugs/modalg_7/bug25385 [new file with mode: 0644]
tests/bugs/modalg_7/bug25395_1 [new file with mode: 0644]
tests/bugs/modalg_7/bug25395_2 [new file with mode: 0644]
tests/bugs/modalg_7/bug25458 [new file with mode: 0755]
tests/bugs/modalg_7/bug25478_1 [new file with mode: 0755]
tests/bugs/modalg_7/bug25478_2 [new file with mode: 0755]
tests/bugs/modalg_7/bug25521 [new file with mode: 0755]
tests/bugs/modalg_7/bug25626 [new file with mode: 0644]
tests/bugs/modalg_7/bug25730 [new file with mode: 0755]
tests/bugs/modalg_7/bug25776 [new file with mode: 0755]
tests/bugs/modalg_7/bug25798 [new file with mode: 0644]
tests/bugs/modalg_7/bug25856_1 [new file with mode: 0755]
tests/bugs/modalg_7/bug25856_2 [new file with mode: 0755]
tests/bugs/modalg_7/bug25879 [new file with mode: 0755]
tests/bugs/modalg_7/bug25979 [new file with mode: 0644]
tests/bugs/modalg_7/bug25983 [new file with mode: 0644]
tests/bugs/modalg_7/bug25994 [new file with mode: 0644]
tests/bugs/modalg_7/bug26034 [new file with mode: 0644]
tests/bugs/modalg_7/bug26077_1 [new file with mode: 0644]
tests/bugs/modalg_7/bug26077_2 [new file with mode: 0644]
tests/bugs/moddata_3/bug23866 [new file with mode: 0644]
tests/bugs/moddata_3/bug25481 [new file with mode: 0644]
tests/bugs/moddata_3/bug25693_1 [new file with mode: 0755]
tests/bugs/moddata_3/bug25693_2 [new file with mode: 0755]
tests/bugs/step/bug25989 [new file with mode: 0644]
tests/bugs/vis/bug25852 [new file with mode: 0644]

index 2100a643779a23c0e62c9cced41258c7d8f651ad..192bb9641cdc4987dd30b367eb89dfdb30627ea8 100644 (file)
@@ -1,10 +1,10 @@
 # Original bug : pro10658
 # Date : 24mar98
-puts "TODO ALL: Error : The area of result shape is"
+
 restore [locate_data_file CTO900_pro10658a.rle] a
 restore [locate_data_file pro10658b.rle] b
 
 bfuse result a b
 
-checkprops result -s 8231.06
+checkprops result -s 8636.79
 checkview -display result -2d -otherwise { a b } -s -path ${imagedir}/${test_image}.png
\ No newline at end of file
diff --git a/tests/bugs/heal/bug25967 b/tests/bugs/heal/bug25967
new file mode 100644 (file)
index 0000000..2bd5904
--- /dev/null
@@ -0,0 +1,19 @@
+puts "TODO OCC25967 ALL: Error :  is WRONG because number of EDGE entities in shape"
+
+puts "========"
+puts "OCC25967"
+puts "========"
+puts ""
+########################################################################
+# Shape Healing fails to correct a face with missing poles and pcurves
+########################################################################
+
+restore [locate_data_file bug25967_face-no-sh-fwd.brep] f
+
+fixshape result f
+pcurve result
+checknbshapes result -edge 4
+
+v2d
+2dfit
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/heal/bug26052 b/tests/bugs/heal/bug26052
new file mode 100644 (file)
index 0000000..3d6b214
--- /dev/null
@@ -0,0 +1,56 @@
+puts "TODO OCC26052 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC26052"
+puts "========"
+puts ""
+##############################################################################################
+# Missing pcurves are computed incorrectly on two connected faces laying on the same surface
+##############################################################################################
+
+cylinder c 10
+circle c1 0 0 0 10
+circle c2 0 0 0 10
+circle c3 0 0 10 10
+circle c4 0 0 10 10
+line l1 10 0 0 0 0 1
+line l2 -10 0 0 0 0 1
+trim c1 c1 0 pi
+trim c2 c2 pi 2*pi
+trim c3 c3 0 pi
+trim c4 c4 pi 2*pi
+trim l1 l1 0 10
+trim l2 l2 0 10
+vertex v1 10 0 0
+vertex v2 -10 0 0
+vertex v3 10 0 10
+vertex v4 -10 0 10
+mkedge ec1 c1 v1 v2
+mkedge ec2 c2 v2 v1
+mkedge ec3 c3 v3 v4
+mkedge ec4 c4 v4 v3
+mkedge el1 l1 v1 v3
+mkedge el2 l2 v2 v4
+shape w1 W
+#orientation ec3 R
+#orientation el1 R
+add ec1 w1
+add el2 w1
+add ec3 w1
+add el1 w1
+shape w2 W
+#orientation el1 F
+#orientation el2 R
+#orientation ec4 R
+add ec2 w2
+add el1 w2
+add ec4 w2
+add el2 w2
+mkface f1 c w1
+mkface f2 c w2
+shape s Sh
+add f1 s
+add f2 s
+fixshape result s
+
+checkshape result
diff --git a/tests/bugs/mesh/bug25061 b/tests/bugs/mesh/bug25061
new file mode 100644 (file)
index 0000000..f97cb70
--- /dev/null
@@ -0,0 +1,19 @@
+puts "TODO OCC25061 ALL: ERROR: OCC25061 is reproduced."
+
+puts "========"
+puts "OCC25061"
+puts "========"
+puts ""
+####################################################################################################
+# BRepMesh should skip internal wires with self intersections to produce mesh for the shape anyway
+####################################################################################################
+
+restore [locate_data_file bug25061_a.brep] a
+
+incmesh a 0.1
+set bug_info [tricheck a]
+
+if {[string trim $bug_info] == "face 1 has no triangulation"} {
+  puts "ERROR: OCC25061 is reproduced. Mesh is not created."
+}
+
diff --git a/tests/bugs/mesh/bug25551 b/tests/bugs/mesh/bug25551
new file mode 100644 (file)
index 0000000..74e2f39
--- /dev/null
@@ -0,0 +1,33 @@
+puts "TODO OCC25551 ALL: Error: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface"
+
+puts "================"
+puts "OCC25551"
+puts "================"
+puts ""
+#######################################################################################
+# BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface
+#######################################################################################
+
+restore [locate_data_file bug25551_m-a-i-B6.brep] res
+
+explode res f
+
+triangles res_2
+
+set ExpectedArea 0.208305
+set tol_abs 0.00001
+
+set prop [ sprops res_2]
+regexp {Mass\s*:\s*([0-9.e+-]+)} $prop prop_s Area
+
+if { [expr abs($Area - $ExpectedArea)] > $tol_abs } {
+  puts "OK: BRepMesh not produce internal nodes outside the face interior based on distorted BSpline surface"
+} else {
+  puts "Error: BRepMesh can produce internal nodes outside the face interior based on distorted BSpline surface"
+}
+
+smallview
+donly res_2
+top
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/mesh/bug25586_1 b/tests/bugs/mesh/bug25586_1
new file mode 100644 (file)
index 0000000..a9efa46
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO OCC25586 ALL: Error : The area of result shape is"
+
+puts "========="
+puts "OCC25586"
+puts "========="
+puts ""
+#########################################################
+# Poor mesh quality, or failure of meshing for closed extruded surfaces with holes
+#########################################################
+
+restore [locate_data_file bug25586_circle_extrusion.brep] result
+
+checkprops result -s 1.
+
+checkview -display result -2d -path ${imagedir}/${test_image}-axo.png
+
+vinit
+vdisplay result
+vfit
+vsetdispmode 1
+checkview -screenshot -3d -path ${imagedir}/${test_image}-3d.png
+
+vfront
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-front.png
+
+vback
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-back.png
+
+vleft
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-left.png
+
+vright
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-right.png
+
+vtop
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-top.png
+
+vbottom
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-bottom.png
diff --git a/tests/bugs/mesh/bug25586_2 b/tests/bugs/mesh/bug25586_2
new file mode 100644 (file)
index 0000000..2804977
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO OCC25586 ALL: Error : The area of result shape is"
+
+puts "========="
+puts "OCC25586"
+puts "========="
+puts ""
+#########################################################
+# Poor mesh quality, or failure of meshing for closed extruded surfaces with holes
+#########################################################
+
+restore [locate_data_file bug25586_cylindrical_with_circle_hole.brep] result
+
+checkprops result -s 1.
+
+checkview -display result -2d -path ${imagedir}/${test_image}-axo.png
+
+vinit
+vdisplay result
+vfit
+vsetdispmode 1
+checkview -screenshot -3d -path ${imagedir}/${test_image}-3d.png
+
+vfront
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-front.png
+
+vback
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-back.png
+
+vleft
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-left.png
+
+vright
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-right.png
+
+vtop
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-top.png
+
+vbottom
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-bottom.png
diff --git a/tests/bugs/mesh/bug25586_3 b/tests/bugs/mesh/bug25586_3
new file mode 100644 (file)
index 0000000..18c4c7b
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO OCC25586 ALL: Error : The area of result shape is"
+
+puts "========="
+puts "OCC25586"
+puts "========="
+puts ""
+#########################################################
+# Poor mesh quality, or failure of meshing for closed extruded surfaces with holes
+#########################################################
+
+restore [locate_data_file bug25586_quasi_closed.brep] result
+
+checkprops result -s 1.
+
+checkview -display result -2d -path ${imagedir}/${test_image}-axo.png
+
+vinit
+vdisplay result
+vfit
+vsetdispmode 1
+checkview -screenshot -3d -path ${imagedir}/${test_image}-3d.png
+
+vfront
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-front.png
+
+vback
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-back.png
+
+vleft
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-left.png
+
+vright
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-right.png
+
+vtop
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-top.png
+
+vbottom
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-bottom.png
diff --git a/tests/bugs/mesh/bug25628 b/tests/bugs/mesh/bug25628
new file mode 100644 (file)
index 0000000..5fbde32
--- /dev/null
@@ -0,0 +1,32 @@
+puts "TODO CR25628 ALL: Error: Number of triangles is equal to 0"
+puts "TODO CR25628 ALL: Error: Number of nodes is equal to 0"
+puts "TODO CR25628 ALL: Error: BRepMesh fails to mesh face with open wire, considered as correct by checkshape"
+
+puts "========="
+puts "CR25628"
+puts "========="
+puts ""
+##############################################################################################
+# BRepMesh fails to mesh face with open wire, considered as correct by checkshape
+##############################################################################################
+
+pload XDE
+
+stepread [locate_data_file bug25628_twr_hull.stp] a *
+renamevar a_1 a
+explode a f
+
+checkshape a_36
+
+set Log [incmesh a_36 0.1]
+if {[regexp "OpenWire" ${Log}] == 1} {
+    puts "Error: BRepMesh fails to mesh face with open wire, considered as correct by checkshape"
+}
+
+checktrinfo a_1 -tri -nod
+
+smallview
+donly a_36
+left
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}-2d.png
diff --git a/tests/bugs/mesh/bug25738 b/tests/bugs/mesh/bug25738
new file mode 100644 (file)
index 0000000..b19789c
--- /dev/null
@@ -0,0 +1,31 @@
+puts "TODO CR25738 ALL: Not connected mesh inside face"
+puts "TODO CR25738 ALL: Error: BRepMesh fails to produce correct mesh for the face"
+
+puts "========="
+puts "CR25738"
+puts "========="
+puts ""
+######################################################
+# BRepMesh fails to produce correct mesh for the face
+######################################################
+
+restore [locate_data_file bug25738_face1736.brep] a
+
+incmesh a 1 -a 20
+
+front
+fit
+isos a 0
+triangles a
+
+trinfo a
+
+set info [tricheck a]
+set pattern "Free_links +(\[0-9\]+) +Cross_face_errors +(\[0-9\]+) +Async_edges +(\[0-9\]+) +Free_nodes +(\[0-9\]+)"
+regexp "${pattern}" $info full freelinks crossfaces asyncedges freenodes
+
+if { $freenodes > 0 } {
+  puts "Error: BRepMesh fails to produce correct mesh for the face"
+}
+
+checkview -screenshot -2d -path ${imagedir}/${test_image}-2d.png
diff --git a/tests/bugs/mesh/bug25817 b/tests/bugs/mesh/bug25817
new file mode 100644 (file)
index 0000000..01bd6d8
--- /dev/null
@@ -0,0 +1,34 @@
+puts "========="
+puts "CR25817"
+puts "========="
+puts ""
+#############################
+# crescent face is not meshed
+#############################
+
+restore [locate_data_file bug25817_mesh-missing-cresent.brep] c
+
+tclean c
+
+set Log [incmesh c 0.1]
+if {[regexp "NoError" ${Log}] == 0} {
+    puts "Error: face is not meshed"
+}
+
+tricheck c
+
+smallview
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}-1.png
+
+explode c F
+
+set Log [incmesh c_4 0.1]
+if {[regexp "NoError" ${Log}] == 0} {
+    puts "Error: crescent face is not meshed"
+}
+
+clear
+donly c_4
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}-2.png
diff --git a/tests/bugs/mesh/bug25827 b/tests/bugs/mesh/bug25827
new file mode 100644 (file)
index 0000000..365214f
--- /dev/null
@@ -0,0 +1,20 @@
+puts "TODO CR25827 ALL: Faulty shapes in variables faulty_"
+
+puts "========="
+puts "CR25827"
+puts "========="
+puts ""
+############################################################################
+# BRepMesh does not synchronize parameters of glued vertices on small edges
+############################################################################
+
+restore [locate_data_file bug25827_result_valid.brep] r
+
+checkshape r
+
+incmesh r 0.01 -a 10 -relative -parallel
+
+checkshape r
+
+checkview -display r -2d -path ${imagedir}/${test_image}-2d.png
+checkview -display r -3d -path ${imagedir}/${test_image}-3d.png
diff --git a/tests/bugs/mesh/bug25837_1 b/tests/bugs/mesh/bug25837_1
new file mode 100644 (file)
index 0000000..7919a9b
--- /dev/null
@@ -0,0 +1,25 @@
+puts "========="
+puts "CR25837"
+puts "========="
+puts ""
+######################################################
+# Bad triangulation when IGES loaded in meters
+######################################################
+
+pload XDE
+
+param xstep.cascade.unit MM
+newmodel
+
+igesbrep [locate_data_file bug25837_S.igs] result *
+
+vinit
+vdisplay result
+vfit
+vsetdispmode 1
+
+set x 200
+set y 200
+checkcolor $x $y 0 0 0
+
+checkview -screenshot -3d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/mesh/bug25837_2 b/tests/bugs/mesh/bug25837_2
new file mode 100644 (file)
index 0000000..9060f9a
--- /dev/null
@@ -0,0 +1,27 @@
+puts "TODO CR25837 ALL: Error : Colors are not equal in default coordinate and in the near coordinates too"
+
+puts "========="
+puts "CR25837"
+puts "========="
+puts ""
+######################################################
+# Bad triangulation when IGES loaded in meters
+######################################################
+
+pload XDE
+
+param xstep.cascade.unit M
+newmodel
+
+igesbrep [locate_data_file bug25837_S.igs] result *
+
+vinit
+vdisplay result
+vfit
+vsetdispmode 1
+
+set x 200
+set y 200
+checkcolor $x $y 0 0 0
+
+checkview -screenshot -3d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug23838 b/tests/bugs/modalg_7/bug23838
new file mode 100644 (file)
index 0000000..075daa1
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC23838 Windows: OSD_Exception_ACCESS_VIOLATION"
+puts "TODO OCC23838 Linux: segmentation violation"
+puts "TODO OCC23838 ALL:TEST INCOMPLETE"
+
+puts "============"
+puts "OCC23838"
+puts "============"
+puts ""
+#######################################################
+# Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell)
+#######################################################
+
+restore [locate_data_file bug23838_profile.brep] prof
+restore [locate_data_file bug23838_SpineAndSupport.brep] comp
+
+explode comp
+renamevar comp_1 supp
+renamevar comp_2 spine
+
+mksweep spine
+setsweep -DX supp
+addsweep prof
+
+buildsweep result -R
+
+checkshape result
+
+checkview -display result -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug23925 b/tests/bugs/modalg_7/bug23925
new file mode 100755 (executable)
index 0000000..dd1a0d5
--- /dev/null
@@ -0,0 +1,22 @@
+puts "============"
+puts "OCC23925"
+puts "============"
+puts ""
+#######################################################################
+# BRepFeat_SplitShape produces invalid shape
+#######################################################################
+
+restore [locate_data_file bug23925_E.brep] e
+restore [locate_data_file bug23925_F.brep] f
+
+splitshape result f f e
+
+set nb_F [ llength [explode result F] ]
+
+if { ${nb_F} == 2 } {
+   puts "OK: BRepFeat_SplitShape produces good shape"
+} else {
+   puts "Error: BRepFeat_SplitShape produces invalid shape"
+}
+
+checkview -display result -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug23942 b/tests/bugs/modalg_7/bug23942
new file mode 100644 (file)
index 0000000..b528027
--- /dev/null
@@ -0,0 +1,87 @@
+puts "TODO OCC23942 ALL: is not equal"
+
+puts "========"
+puts "OCC23942"
+puts "========"
+puts ""
+#########################################################
+# Pipe algorithms unrobust to number rounding
+#########################################################
+
+#
+### 1
+#
+interpol c [locate_data_file bug23942_points.txt]
+tuyau r_1 c 5
+
+decho off
+dlog reset
+dlog on
+
+dump r_1
+
+set info_1 [dlog get]
+dlog reset
+dlog off
+decho on
+
+regexp {Degrees :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_1} full X Degrees_1
+regexp {NbPoles :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_1} full X NbPoles_1
+regexp {NbKnots :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_1} full UKnots_1 VKnots_1
+puts "Degrees_1 = ${Degrees_1}"
+puts "NbPoles_1 = ${NbPoles_1}"
+puts "UKnots_1 = ${UKnots_1}"
+puts "VKnots_1 = ${VKnots_1}"
+
+#
+### 2
+#
+save c ${imagedir}/cc
+restore ${imagedir}/cc
+tuyau r_2 cc 5
+
+decho off
+dlog reset
+dlog on
+
+dump r_2
+
+set info_2 [dlog get]
+dlog reset
+dlog off
+decho on
+
+regexp {Degrees :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_2} full X Degrees_2
+regexp {NbPoles :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_2} full X NbPoles_2
+regexp {NbKnots :+([-0-9.+eE]+) +([-0-9.+eE]+)} ${info_2} full UKnots_2 VKnots_2
+puts "Degrees_2 = ${Degrees_2}"
+puts "NbPoles_2 = ${NbPoles_2}"
+puts "UKnots_2 = ${UKnots_2}"
+puts "VKnots_2 = ${VKnots_2}"
+
+#
+### 3
+#
+if {${Degrees_1} != ${Degrees_2}} {
+   puts "Error : Degrees_1 is not equal Degrees_2"
+} else {
+   puts "OK : Degrees_1 is equal Degrees_2"
+}
+if {${NbPoles_1} != ${NbPoles_2}} {
+   puts "Error : NbPoles_1 is not equal NbPoles_2"
+} else {
+   puts "OK : NbPoles_1 is equal NbPoles_2"
+}
+if {${UKnots_1} != ${UKnots_2}} {
+   puts "Error : UKnots_1 is not equal UKnots_2"
+} else {
+   puts "OK : UKnots_1 is equal UKnots_2"
+}
+if {${VKnots_1} != ${VKnots_2}} {
+   puts "Error : VKnots_1 is not equal VKnots_2"
+} else {
+   puts "OK : VKnots_1 is equal VKnots_2"
+}
+
+checkview -display r_1 -2d -path ${imagedir}/${test_image}_1.png
+checkview -display r_2 -2d -path ${imagedir}/${test_image}_2.png
diff --git a/tests/bugs/modalg_7/bug24490 b/tests/bugs/modalg_7/bug24490
new file mode 100644 (file)
index 0000000..7236f76
--- /dev/null
@@ -0,0 +1,40 @@
+puts "========"
+puts "OCC24490"
+puts "========"
+puts ""
+#########################################################################################
+# Computed surface properties differ substantially depending on NaturalRestriction flag
+#########################################################################################
+
+restore [locate_data_file bug24490_face_naturalrestriction_flag.brep] ff
+restore [locate_data_file bug24490_face_naturalrestriction_noflag.brep] fn
+
+# Get information from model ff
+set bug_info [sprops ff]
+set ff_area [lindex $bug_info 2]
+set ff_CG_X [lindex $bug_info 9]
+set ff_CG_Y [lindex $bug_info 12]
+set ff_CG_Z [lindex $bug_info 15]
+
+# Get information from model ff
+set bug_info [sprops fn]
+set fn_area [lindex $bug_info 2]
+set fn_CG_X [lindex $bug_info 9]
+set fn_CG_Y [lindex $bug_info 12]
+set fn_CG_Z [lindex $bug_info 15]
+
+# Verification
+if {$ff_area != $fn_area} {
+  puts "ERROR: OCC24490 is reproduced. Areas of identical shapes are different."
+}
+
+if {$ff_CG_X != $fn_CG_X} {
+  puts "ERROR: OCC24490 is reproduced. Center of gravity (X) of identical shapes are different."
+}
+
+if {$ff_CG_Y != $fn_CG_Y} {
+  puts "ERROR: OCC24490 is reproduced. Center of gravity (Y) of identical shapes are different."
+}
+if {$ff_CG_Z != $fn_CG_Z} {
+  puts "ERROR: OCC24490 is reproduced. Center of gravity (Z) of identical shapes are different."
+}
diff --git a/tests/bugs/modalg_7/bug24568 b/tests/bugs/modalg_7/bug24568
new file mode 100644 (file)
index 0000000..80a20ea
--- /dev/null
@@ -0,0 +1,19 @@
+puts "========"
+puts "OCC24568"
+puts "========"
+puts ""
+##########################################
+# Split shape produces an invalid result
+##########################################
+
+restore [locate_data_file bug24568_face.brep] face
+restore [locate_data_file bug24568_wire.brep] wire
+
+splitshape result face face wire
+
+checkshape result
+
+smallview
+donly result
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
\ No newline at end of file
diff --git a/tests/bugs/modalg_7/bug24692 b/tests/bugs/modalg_7/bug24692
new file mode 100644 (file)
index 0000000..a8ed1ba
--- /dev/null
@@ -0,0 +1,31 @@
+puts "TODO OCC24692 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC24692"
+puts "========"
+puts ""
+#########################################
+# fuseedge corruption of spherical edge
+#########################################
+
+# Object_1
+pcylinder cyl 10 40
+box abox 10 40 25
+ttranslate abox 0 -20 5
+bop cyl abox
+bopfuse fuse1
+
+# Object_2
+psphere asphere 7
+ttranslate asphere 0 0 3
+box abox2 5 30 25
+ttranslate abox2 -2 -15 -11
+bop abox2 asphere
+bopfuse fuse2
+
+# Object_Result
+bop fuse1 fuse2
+bopcut result
+fuseedge result
+
+checkshape result_1
diff --git a/tests/bugs/modalg_7/bug24772 b/tests/bugs/modalg_7/bug24772
new file mode 100644 (file)
index 0000000..fa20fad
--- /dev/null
@@ -0,0 +1,45 @@
+puts "========"
+puts "OCC24772"
+puts "========"
+puts ""
+################################################################
+# Intersection of cylinder and cone produces incorrect results
+################################################################
+
+restore [locate_data_file bug24772_s1.draw] s1
+restore [locate_data_file bug24772_s2.draw] s2
+
+smallview +X+Y
+fit
+zoom 6
+
+set bug_info [intersect r s1 s2]
+
+if {[llength $bug_info] != 4} {
+#  puts "ERROR: OCC24722 is reproduced."
+} else {
+  # snapshot r_1
+  clear
+  display s1
+  display s2
+  display r_1
+  xwd $imagedir/${casename}_r_1.png
+  # snapshot r_2
+  clear
+  display s1
+  display s2
+  display r_2
+  xwd $imagedir/${casename}_r_2.png
+  # snapshot r_3
+  clear
+  display s1
+  display s2
+  display r_3
+  xwd $imagedir/${casename}_r_3.png
+  # snapshot r_4
+  clear
+  display s1
+  display s2
+  display r_4
+  xwd $imagedir/${casename}_r_4.png
+}
diff --git a/tests/bugs/modalg_7/bug24954_1 b/tests/bugs/modalg_7/bug24954_1
new file mode 100644 (file)
index 0000000..32c61d8
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p 9.08 8.62 3.75 1.87 3.04 9. 4.26 1.37 -0.08 9.08 8.62 3.75
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_2 b/tests/bugs/modalg_7/bug24954_2
new file mode 100644 (file)
index 0000000..8930232
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p -1.15 3.42 1.95 4.54 3.13 1.36 2.97 -3.14 2.08 -1.15 3.42 1.95
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_3 b/tests/bugs/modalg_7/bug24954_3
new file mode 100644 (file)
index 0000000..655ba3c
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p -4.62 0.1 0.75 -4.12 4.64 -2.91 -1.55 -1.07 4.48 -4.62 0.1 0.75
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_4 b/tests/bugs/modalg_7/bug24954_4
new file mode 100644 (file)
index 0000000..26c9790
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p -2.92 -4.7 -2.87 4.73 1.75 1.76 3.14 -1.23 2.74 -2.92 -4.7 -2.87
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_5 b/tests/bugs/modalg_7/bug24954_5
new file mode 100644 (file)
index 0000000..b61e4d5
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p -4.05 3.84 0.17 4.22 3.55 3.19 -1.32 -1.44 -1.57 -4.05 3.84 0.17
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_6 b/tests/bugs/modalg_7/bug24954_6
new file mode 100644 (file)
index 0000000..de63e70
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p -2.36 -1.62 0.17 3.26 -1.05 -3.8 2.75 -4.01 4.95 -2.36 -1.62 0.17
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_7 b/tests/bugs/modalg_7/bug24954_7
new file mode 100644 (file)
index 0000000..217ae88
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p 4.72 2.03 -2.52 -4.78 1.89 -3.82 -1.42 4.56 1.55 4.72 2.03 -2.52
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_8 b/tests/bugs/modalg_7/bug24954_8
new file mode 100644 (file)
index 0000000..adce128
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p 2.02 -1.4 -3.75 -2.93 -1.87 1.72 -5. -0.18 0.39 2.02 -1.4 -3.75
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug24954_9 b/tests/bugs/modalg_7/bug24954_9
new file mode 100644 (file)
index 0000000..435cda4
--- /dev/null
@@ -0,0 +1,53 @@
+puts "========"
+puts "OCC24954"
+puts "========"
+puts ""
+################################################################
+# BRepBuilderAPI_MakeFace adds wire with aribitary orientation
+################################################################
+
+polyline p 1.21 0.16 4.2 3.12 4.16 0.93 -2.33 -2.55 2.41 1.21 0.16 4.2
+wire w p
+mkplane f w
+
+# Verify orientation of shapes
+set bug_info [whatis p]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis w]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+set bug_info [whatis f]
+if {[lindex $bug_info 5] != "FORWARD"} {
+  puts "ERROR: Input data is incorrect."
+}
+
+# Explode face (f) and verify wire orientation
+puts "Checks wires:"
+set wire_name_list [explode f w]
+set while_count 0
+while {$while_count < [llength $wire_name_list]} {
+  set bug_info [whatis [lindex $wire_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Wire [lindex $wire_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $wire_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
+
+# Explode face (f) and verify edge orientation
+puts "Checks edges:"
+set edge_name_list [explode f e]
+set while_count 0
+while {$while_count < [llength $edge_name_list]} {
+  set bug_info [whatis [lindex $edge_name_list $while_count]]
+  if {[lindex $bug_info 5] != "FORWARD"} {
+    puts "ERROR: OCC24954 is reproduced. Edge [lindex $edge_name_list $while_count] has REVERSED orientation."
+  } else {
+    puts "     [lindex $edge_name_list $while_count] has FORWARD orientation."
+  }
+  set while_count [expr {$while_count + 1}]
+}
diff --git a/tests/bugs/modalg_7/bug25104 b/tests/bugs/modalg_7/bug25104
new file mode 100644 (file)
index 0000000..0fc04ce
--- /dev/null
@@ -0,0 +1,18 @@
+puts "TODO OCC25104 ALL: ERROR: OCC25104 is reproduced."
+
+puts "========"
+puts "OCC25104"
+puts "========"
+puts ""
+##########################################################
+# 0025104: Prism from BSpline curve can not be chamfered
+##########################################################
+
+restore [locate_data_file bug25104_whale2-draw-path.brep] path
+
+prism Extrude001 path 0. 0. 5.
+
+set bug_info [string trim [bopcheck Extrude001]]
+if {$bug_info != "This shape seems to be OK."} {
+  puts "ERROR: OCC25104 is reproduced. Prism has been created with errors."
+}
diff --git a/tests/bugs/modalg_7/bug25206 b/tests/bugs/modalg_7/bug25206
new file mode 100644 (file)
index 0000000..5a269d4
--- /dev/null
@@ -0,0 +1,31 @@
+puts "TODO OCC25206 ALL: ERROR: OCC25206 is reproduced."
+
+puts "========"
+puts "OCC25206"
+puts "========"
+puts ""
+##########################################
+# Fillet creates edge with C0 continuity
+##########################################
+
+restore [locate_data_file bug25206_lampe-1-draw-Fusion.brep] Fusion
+
+explode Fusion E
+set edges [explode Fusion E]
+blend Fillet Fusion 25 Fusion_4 25 Fusion_5 25 Fusion_6 25 Fusion_7 25 Fusion_8 25 Fusion_9 25 Fusion_10 25 Fusion_11 25 Fusion_12
+explode Fillet E
+renamevar Fillet_8 E8
+set bug_info [dump E8]
+
+# Find section "VKnots" in dump and cut it
+set bug_info [string trim [string range $bug_info [string first "VKnots" $bug_info] [expr {[string length $bug_info] - 1}]]]
+
+# Get value for VKnots #7
+set VKnots_7 [lindex $bug_info 29]
+# Get value for VKnots #8
+set VKnots_8 [lindex $bug_info 33]
+
+# Check CO continuity
+if {$VKnots_7 == 8 && $VKnots_8 == 9} {
+  puts "ERROR: OCC25206 is reproduced. CO continuity has been detected."
+}
diff --git a/tests/bugs/modalg_7/bug25385 b/tests/bugs/modalg_7/bug25385
new file mode 100644 (file)
index 0000000..a2bbcf7
--- /dev/null
@@ -0,0 +1,24 @@
+puts "TODO OCC25385 ALL: is not equal to expected"
+
+puts "============"
+puts "OCC25385"
+puts "============"
+puts ""
+#######################################################################
+# steep increase in tolerance by intersection
+#######################################################################
+
+restore [locate_data_file bug25385_shell2.brep] s
+
+regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance s] full MaxTol_s_1
+
+plane p 28.5 0 0 1 0 0 0 1 0
+mkface f p
+bop s f
+bopsection r
+
+regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance s] full MaxTol_s_2
+
+set tol_abs_MaxTol 0.0001
+set tol_rel_MaxTol 0.0001
+checkreal "MaxTolerance " ${MaxTol_s_2} ${MaxTol_s_1} ${tol_abs_MaxTol} ${tol_rel_MaxTol}
diff --git a/tests/bugs/modalg_7/bug25395_1 b/tests/bugs/modalg_7/bug25395_1
new file mode 100644 (file)
index 0000000..7e3cccc
--- /dev/null
@@ -0,0 +1,18 @@
+puts "TODO OCC25395 ALL: ERROR. offsetperform operation not done."
+
+puts "========"
+puts "OCC25395"
+puts "========"
+puts ""
+#######################################################
+# SIGSEGV in BRepOffsetAPI_MakeThickSolid
+#######################################################
+
+restore [locate_data_file bug25395_thickness2-s1.brep] s1
+
+explode s1 F
+offsetparameter 1e-7 p a
+offsetload s1 1 s1_2 s1_3 s1_4
+offsetperform Thickness
+
+checkview -display Thickness -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug25395_2 b/tests/bugs/modalg_7/bug25395_2
new file mode 100644 (file)
index 0000000..8cb879e
--- /dev/null
@@ -0,0 +1,49 @@
+puts "TODO OCC25395 ALL: Standard_ConstructionError"
+puts "TODO OCC25395 ALL:TEST INCOMPLETE"
+
+puts "========"
+puts "OCC25395"
+puts "========"
+puts ""
+#######################################################
+# SIGSEGV in BRepOffsetAPI_MakeThickSolid
+#######################################################
+
+ellipse Ellipse-curve 0 0 0 100.87 22
+mkedge Ellipse-edge Ellipse-curve 0 6.28318530718
+wire Ellipse-wire Ellipse-edge
+mkplane Ellipse Ellipse-wire
+ttranslate Ellipse 0 -27 184.5
+
+explode Ellipse E
+wire Sweep-0-spine Ellipse_1
+mksweep Sweep-0-spine
+
+setsweep -CF
+
+circle Circle-curve 0 0 0 18
+mkedge Circle-edge Circle-curve 0 0
+wire Circle Circle-edge
+trotate Circle 0 0 0 0 -1 0 90
+ttranslate Circle 0 -70 202.5
+
+addsweep Circle 
+
+buildsweep Sweep -C -S
+
+box Box001 300 90 300
+ttranslate Box001 -150 -27 0
+
+bcut Cut031 Sweep Box001
+
+box Box002 300 100 30
+ttranslate Box002 -150 -100 202.5
+
+bcut Cut032 Cut031 Box002
+explode Cut032 F
+
+offsetparameter 1e-7 p a
+offsetload Cut032 1 Cut032_3 Cut032_2 Cut032_4
+offsetperform Thickness
+
+checkview -display Thickness -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug25458 b/tests/bugs/modalg_7/bug25458
new file mode 100755 (executable)
index 0000000..0bd8092
--- /dev/null
@@ -0,0 +1,34 @@
+puts "TODO OCC25458 ALL: Error : 1-fold tori is bad"
+
+puts "============"
+puts "OCC25458"
+puts "============"
+puts ""
+###########################################################################
+## can a sweep be used to create 1-fold tori (using a closed wire as path)
+###########################################################################
+
+restore [locate_data_file bug25458_sweep-torus1-draw-Wire.brep] Wire
+
+explode Wire E
+wire Sweep-0-spine Wire_1
+
+mksweep Sweep-0-spine
+setsweep -FR
+
+circle Circle-curve 0 0 0 10
+mkedge Circle-edge Circle-curve 0 0
+wire Circle Circle-edge
+trotate Circle 0 0 0 1 0 0 90
+ttranslate Circle 40.1121575545 0 36.5930306315
+
+addsweep Circle
+buildsweep Sweep -C -S
+
+set info [bopcheck Sweep]
+
+if { [regexp "This shape seems to be OK" ${info}] != 1 } {
+    puts "Error : 1-fold tori is bad"
+}
+
+checkview -display Sweep -3d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug25478_1 b/tests/bugs/modalg_7/bug25478_1
new file mode 100755 (executable)
index 0000000..be467eb
--- /dev/null
@@ -0,0 +1,22 @@
+puts "TODO OCC25478 ALL: Error: Fillets can not touch"
+
+puts "============"
+puts "OCC25478"
+puts "============"
+puts ""
+########################
+# Fillets can not touch
+########################
+
+box Box 10 10 10
+explode Box E
+
+catch { blend Fillet Box 5 Box_1 5 Box_3 } msg
+
+if { [info exist Fillet] == 0 } {
+  puts "Error: Fillets can not touch"
+} else {
+  puts "OK: Fillets can touch"
+}
+
+checkview -display Fillet -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug25478_2 b/tests/bugs/modalg_7/bug25478_2
new file mode 100755 (executable)
index 0000000..de2a08e
--- /dev/null
@@ -0,0 +1,25 @@
+puts "TODO OCC25478 ALL: Error: Fillets can not touch"
+
+puts "============"
+puts "OCC25478"
+puts "============"
+puts ""
+########################
+# Fillets can not touch
+########################
+
+box Box001 10 10 10
+box Box002 10 10 12
+ttranslate Box002 5 5 -1
+bcut Cut Box001 Box002
+explode Cut E
+
+catch { blend Fillet002 Cut 2.5 Cut_13 2.5 Cut_17 2.5 Cut_18 } msg
+
+if { [info exist Fillet002] == 0 } {
+  puts "Error: Fillets can not touch"
+} else {
+  puts "OK: Fillets can touch"
+}
+
+checkview -display Fillet002 -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug25521 b/tests/bugs/modalg_7/bug25521
new file mode 100755 (executable)
index 0000000..7823fc0
--- /dev/null
@@ -0,0 +1,19 @@
+puts "TODO OCC25521 ALL: Faulty shapes in variables faulty_1 to"
+
+puts "============"
+puts "OCC25521"
+puts "============"
+puts ""
+######################################################
+# Fillet creates shell with bad orientation of SubShape
+######################################################
+
+restore [locate_data_file bug25521_fillet-suborient3-draw-s1.brep] s1
+
+ttranslate s1 0 0 3
+explode s1 E
+blend Fillet s1 2 s1_4
+
+checkshape Fillet
+
+checkview -display Fillet -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug25626 b/tests/bugs/modalg_7/bug25626
new file mode 100644 (file)
index 0000000..694ca66
--- /dev/null
@@ -0,0 +1,23 @@
+puts "TODO OCC25626 ALL: Error :  is WRONG because number of EDGE entities"
+puts "TODO OCC25626 ALL: Error :  is WRONG because number of WIRE entities"
+
+puts "============"
+puts "OCC25626"
+puts "============"
+puts ""
+############################################################################
+# Loft of ellipses shows wrinkle near seam edge
+############################################################################
+
+restore [locate_data_file bug25626_loft-el1-draw-Loft-00-section.brep] Loft-00-section
+restore [locate_data_file bug25626_loft-el1-draw-Loft-01-section.brep] Loft-01-section
+restore [locate_data_file bug25626_loft-el1-draw-Loft-02-section.brep] Loft-02-section
+
+thrusections Loft 0 0 Loft-00-section Loft-01-section Loft-02-section
+
+checkshape Loft
+
+checknbshapes Loft -wire 1 -edge 3
+
+checkview -display Loft -2d -path ${imagedir}/${test_image}-2d.png
+checkview -display Loft -3d -path ${imagedir}/${test_image}-3d.png
diff --git a/tests/bugs/modalg_7/bug25730 b/tests/bugs/modalg_7/bug25730
new file mode 100755 (executable)
index 0000000..18ad471
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC25730 ALL: result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0"
+
+puts "============"
+puts "OCC25730"
+puts "============"
+puts ""
+#############################################################################################
+## result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0
+#############################################################################################
+
+restore [locate_data_file bug25730_thickness8-draw-fillet001.brep] Fillet001
+
+explode Fillet001 F
+
+offsetparameter 1e-7 p a
+offsetload Fillet001 -1 Fillet001_4
+offsetperform Thickness
+
+if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Fillet001]] == 1 } {
+    puts "Error : result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0"
+}
+
+if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Thickness]] == 1 } {
+    puts "Error : result of MakeThickSolid aborts the BOPCheck in Geom_OffsetSurface::SetD0"
+}
+
+checkview -display Fillet001 -2d -path ${imagedir}/${test_image}-Fillet001-2d.png
+checkview -display Thickness -2d -path ${imagedir}/${test_image}-Thickness-2d.png
diff --git a/tests/bugs/modalg_7/bug25776 b/tests/bugs/modalg_7/bug25776
new file mode 100755 (executable)
index 0000000..e3bf7a8
--- /dev/null
@@ -0,0 +1,36 @@
+puts "TODO OCC25776 ALL: Error : Number of edges is WRONG"
+
+puts "============"
+puts "OCC25776"
+puts "============"
+puts ""
+##############################################################
+## HLR returns intersecting edges in OutLineV of helical sweep
+##############################################################
+
+restore [locate_data_file bug25776_shape2dhelix1-draw-Shape.brep] Shape
+
+hprj Shape2DView_proj 0 0 0 1 0 0 0 1 0
+houtl Shape2DView_outl Shape
+hfill Shape2DView_outl Shape2DView_proj 0
+hload Shape2DView_outl
+hsetprj Shape2DView_proj
+hupdate
+hhide
+hres2d
+
+# vol_2 and vol_3 - bad edges
+checknbshapes vol -edge 9 -m "Number of edges"
+
+smallview
+top
+donly vol
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}-2d.png
+
+vinit
+vsetdispmode 1
+vdisplay Shape
+vright
+vfit
+checkview -screenshot -3d -path ${imagedir}/${test_image}-3d-right.png
diff --git a/tests/bugs/modalg_7/bug25798 b/tests/bugs/modalg_7/bug25798
new file mode 100644 (file)
index 0000000..8ffbc6f
--- /dev/null
@@ -0,0 +1,27 @@
+puts "TODO OCC25798 ALL: Faulty shapes in variables faulty_1 to"
+
+puts "============"
+puts "OCC25798"
+puts "============"
+puts ""
+##############################################
+#  BRepFeat_SplitShape returns invalid result
+##############################################
+
+restore [locate_data_file bug25798_Pump2.brep] p
+
+explode p
+checkshape p
+whatis p
+
+renamevar p_1 f
+checkshape f
+explode f
+
+splitshape result f_4 f_4 p_5
+
+whatis result
+checkshape result
+tolerance result
+
+checkview -display result -2d -path ${imagedir}/${test_image}.png 
diff --git a/tests/bugs/modalg_7/bug25856_1 b/tests/bugs/modalg_7/bug25856_1
new file mode 100755 (executable)
index 0000000..d91653a
--- /dev/null
@@ -0,0 +1,22 @@
+puts "TODO OCC25856 ALL: Faulty shapes in variables faulty_1 to"
+
+puts "============"
+puts "OCC25856"
+puts "============"
+puts ""
+#############################################################################################
+# BRepOffsetAPI_ThruSections returns an invalid shape if one wire contains degenerated edges
+#############################################################################################
+
+restore [locate_data_file bug25856_threeWires.brep] t
+
+explode t
+
+thrusections -N r 0 0 t_1 t_2
+checkshape r
+
+fixshape rr r
+checkshape rr
+
+checkview -display r  -2d -path ${imagedir}/${test_image}_1.png
+checkview -display rr -2d -path ${imagedir}/${test_image}_2.png
diff --git a/tests/bugs/modalg_7/bug25856_2 b/tests/bugs/modalg_7/bug25856_2
new file mode 100755 (executable)
index 0000000..6689ab3
--- /dev/null
@@ -0,0 +1,20 @@
+puts "============"
+puts "OCC25856"
+puts "============"
+puts ""
+#############################################################################################
+# BRepOffsetAPI_ThruSections returns an invalid shape if one wire contains degenerated edges
+#############################################################################################
+
+restore [locate_data_file bug25856_threeWires.brep] t
+
+explode t
+
+thrusections -N r 0 0 t_1 t_2 t_3
+checkshape r
+
+fixshape rr r
+checkshape rr
+
+checkview -display r  -2d -path ${imagedir}/${test_image}_1.png
+checkview -display rr -2d -path ${imagedir}/${test_image}_2.png
diff --git a/tests/bugs/modalg_7/bug25879 b/tests/bugs/modalg_7/bug25879
new file mode 100755 (executable)
index 0000000..a2a8b18
--- /dev/null
@@ -0,0 +1,20 @@
+puts "TODO OCC25879 ALL: Error : result of blend fails the bopcheck"
+
+puts "============"
+puts "OCC25879"
+puts "============"
+puts ""
+######################################################
+# result of blend fails the bopcheck
+######################################################
+
+box Box 10 10 10
+explode Box E
+
+blend Fillet Box 1 Box_1 1 Box_2 1 Box_3 1 Box_4 1 Box_5 1 Box_6 1 Box_7 1 Box_8 1 Box_9 1 Box_10 1 Box_11 1 Box_12
+
+if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Fillet]] == 1 } {
+    puts "Error : result of blend fails the bopcheck"
+}
+
+checkview -display Fillet -2d -path ${imagedir}/${test_image}-2d.png
diff --git a/tests/bugs/modalg_7/bug25979 b/tests/bugs/modalg_7/bug25979
new file mode 100644 (file)
index 0000000..773338f
--- /dev/null
@@ -0,0 +1,16 @@
+puts "TODO OCC25979 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC25979"
+puts "========"
+puts ""
+##############################################
+# fillet creates faces with non-closed wires
+##############################################
+
+restore [locate_data_file bug25979_fillet-missingface1-tcl-Fillet005.brep] Fillet005
+
+explode Fillet005 E
+blend Fillet003 Fillet005 1.27 Fillet005_1 1.27 Fillet005_2 1.27 Fillet005_3 1.27 Fillet005_4 1.27 Fillet005_5 1.27 Fillet005_7 1.27 Fillet005_8 1.27 Fillet005_10 1.27 Fillet005_11 1.27 Fillet005_12 1.27 Fillet005_13 1.27 Fillet005_14 1.27 Fillet005_15 1.27 Fillet005_16 1.27 Fillet005_17 1.27 Fillet005_18 1.27 Fillet005_19 1.27 Fillet005_20 1.27 Fillet005_21 1.27 Fillet005_22 1.27 Fillet005_23 1.27 Fillet005_24 1.27 Fillet005_25 1.27 Fillet005_26 1.27 Fillet005_27 1.27 Fillet005_28 1.27 Fillet005_29 1.27 Fillet005_30 1.27 Fillet005_31 1.27 Fillet005_33 1.27 Fillet005_34 1.27 Fillet005_35 1.27 Fillet005_36 1.27 Fillet005_37 1.27 Fillet005_38 1.27 Fillet005_39 1.27 Fillet005_40 1.27 Fillet005_41 1.27 Fillet005_42 1.27 Fillet005_43 1.27 Fillet005_44 1.27 Fillet005_46 1.27 Fillet005_47 1.27 Fillet005_48 1.27 Fillet005_49 1.27 Fillet005_50
+
+checkshape Fillet003
diff --git a/tests/bugs/modalg_7/bug25983 b/tests/bugs/modalg_7/bug25983
new file mode 100644 (file)
index 0000000..9eb515c
--- /dev/null
@@ -0,0 +1,24 @@
+puts "TODO OCC25983 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC25983"
+puts "========"
+puts ""
+##########################################
+# Fusion of sweep and its mirror invalid
+##########################################
+
+restore [locate_data_file bug25983_deform-fusion1-tcl-BSpline.brep] BSpline
+wire Knurling-0-spine BSpline
+mksweep Knurling-0-spine
+setsweep -FR
+polyline DWire 0 0 0 1 -0.9999999999999998 0 1.0000000000000002 0.9999999999999998 0 0 0 0
+trotate DWire 0 0 0 1 0 0 134.99999999999693
+ttranslate DWire 9 0 0
+addsweep DWire 
+buildsweep Knurling -C -S
+copy Knurling Clone
+tmirror Clone 0 0 0 1 0 0
+bfuse result Knurling Clone
+
+checkshape result
diff --git a/tests/bugs/modalg_7/bug25994 b/tests/bugs/modalg_7/bug25994
new file mode 100644 (file)
index 0000000..c6af846
--- /dev/null
@@ -0,0 +1,18 @@
+puts "========"
+puts "OCC25994"
+puts "========"
+puts ""
+#########################################
+# Boolean fuse result in invalid result
+#########################################
+
+restore [locate_data_file bug25994_body.brep] body
+restore [locate_data_file bug25994_wing.brep] wing
+
+bfuse result body wing
+
+checkshape result
+
+smallview
+fit
+checkview -screenshot -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/modalg_7/bug26034 b/tests/bugs/modalg_7/bug26034
new file mode 100644 (file)
index 0000000..98441c2
--- /dev/null
@@ -0,0 +1,21 @@
+puts "========"
+puts "OCC26034"
+puts "========"
+puts ""
+##########################################################
+# Result of revolution aborts the bopcheck if translated
+##########################################################
+
+restore [locate_data_file bug26034_revolve-seg1-tcl-Revolve002.brep] Revolve002
+
+set bug_info [ string trim [bopcheck Revolve002]]
+if {$bug_info != "This shape seems to be OK."} {
+  puts "ERROR: Initial shape is invalid."
+}
+
+ttranslate Revolve002 0 0 -0.5
+
+set bug_info [ string trim [bopcheck Revolve002]]
+if {$bug_info != "This shape seems to be OK."} {
+  puts "ERROR: OCC26034 is reproduced. bopcheck gives incorrect result after ttranslate operation."
+}
diff --git a/tests/bugs/modalg_7/bug26077_1 b/tests/bugs/modalg_7/bug26077_1
new file mode 100644 (file)
index 0000000..1068bd1
--- /dev/null
@@ -0,0 +1,18 @@
+puts "TODO OCC26077 ALL: ERROR: OCC26077 is reproduced."
+
+puts "========"
+puts "OCC26077"
+puts "========"
+puts ""
+#################################################
+# nurbsconvert of psphere fails the bopargcheck
+#################################################
+
+psphere s 10
+nurbsconvert result s
+
+set bug_info [string trim [bopargcheck result]]
+
+if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} {
+  puts "ERROR: OCC26077 is reproduced. Command bopargcheck returns FAIL status for nurbsconvert of sphere."
+}
diff --git a/tests/bugs/modalg_7/bug26077_2 b/tests/bugs/modalg_7/bug26077_2
new file mode 100644 (file)
index 0000000..18f2081
--- /dev/null
@@ -0,0 +1,57 @@
+puts "TODO OCC26077 ALL: Error: Boolean operation of the given type is not allowed on the given inputs"
+puts "TODO OCC26077 ALL: ERROR: OCC26077 is reproduced."
+puts "TODO OCC26077 ALL: ERROR: Problematic shape in OCC26077:"
+
+puts "========"
+puts "OCC26077"
+puts "========"
+puts ""
+#################################################
+# nurbsconvert of psphere fails the bopargcheck
+#################################################
+
+ellipse Ellipse002-untrimmed 0 0 0 8.2 6.2
+mkedge Ellipse002 Ellipse002-untrimmed 0 6.283185307179586
+trotate Ellipse002 0 0 0 0 0 1 90
+ttranslate Ellipse002 0 0 15
+prism Extrude_Ellipse Ellipse002 0 0 6
+ttranslate Extrude_Ellipse 0 0 -4
+restore [locate_data_file bug26077_ellipsoid1-tcl-Loft-00-section.brep] Loft-00-section
+restore [locate_data_file bug26077_ellipsoid1-tcl-Loft-01-section.brep] Loft-01-section
+thrusections Loft 1 0 Loft-00-section Loft-01-section
+psphere Ellipsoid-sphere 12.5
+deform Ellipsoid Ellipsoid-sphere 1 1.04 1.2
+
+set bug_info [string trim [bopargcheck Loft]]
+if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} {
+  puts "ERROR: Problematic shape in OCC26077: Shape Loft is not valid for BOP."
+}
+
+set bug_info [string trim [bopargcheck Ellipsoid]]
+if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} {
+  puts "ERROR: Problematic shape in OCC26077: Shape Ellipsoid is not valid for BOP."
+}
+
+set bug_info [string trim [bfuse Fusion Loft Ellipsoid]]
+if {[string length $bug_info] == 0} {
+  puts "OCC26077: Operation bfuse (bfuse Fusion Loft Ellipsoid) has been finished with OK status."
+} else {
+  puts "ERROR: OCC26077 is reproduced. Operation bfuse (bfuse Fusion Loft Ellipsoid) has been finished with KO status."
+}
+
+set bug_info [string trim [bopargcheck Extrude_Ellipse]]
+if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} {
+  puts "ERROR: Problematic shape in OCC26077: Shape Extrude_Ellipse is not valid for BOP."
+}
+
+set bug_info [string trim [bopargcheck Fusion]]
+if {$bug_info != "Shape(s) seem(s) to be valid for BOP."} {
+  puts "ERROR: Problematic shape in OCC26077: Shape Fusion is not valid for BOP."
+}
+
+set bug_info [string trim [bfuse Fusion002 Extrude_Ellipse Fusion]]
+if {[string length $bug_info] == 0} {
+  puts "OCC26077: Operation bfuse (bfuse Fusion002 Extrude_Ellipse Fusion) has been finished with OK status."
+} else {
+  puts "ERROR: OCC26077 is reproduced. Operation bfuse (bfuse Fusion002 Extrude_Ellipse Fusion) has been finished with KO status."
+}
diff --git a/tests/bugs/moddata_3/bug23866 b/tests/bugs/moddata_3/bug23866
new file mode 100644 (file)
index 0000000..18b3086
--- /dev/null
@@ -0,0 +1,35 @@
+puts "========"
+puts "OCC23866"
+puts "========"
+puts ""
+########################################
+#  GccAna_Circ2d3Tan does not find a circle
+########################################
+
+restore [locate_data_file bug23866_3curves.brep] 3curves
+
+explode 3curves
+
+mkcurve 3d_curve_1 3curves_1
+mkcurve 3d_curve_2 3curves_2
+mkcurve 3d_curve_3 3curves_3
+
+to2d 2d_curve_1 3d_curve_1
+to2d 2d_curve_2 3d_curve_2
+to2d 2d_curve_3 3d_curve_3
+
+set circles_Nb [llength [cirtang cir 2d_curve_1 2d_curve_2 2d_curve_3] ]
+
+if { ${circles_Nb} != 8 } {
+   puts "Error: GccAna_Circ2d3Tan does not find a circle"
+} else {
+   puts "OK: GccAna_Circ2d3Tan find a circle"
+   checklength cir_1 -l 9429.8727947293246
+   checklength cir_2 -l 888.65915068757909
+   checklength cir_3 -l 8.5227983514817236
+   checklength cir_4 -l 6.2260879234386
+   checklength cir_5 -l 14054.240322333564
+   checklength cir_6 -l 596.25725451268329
+   checklength cir_7 -l 7.6941358383928531
+   checklength cir_8 -l 6.8966408969867814
+}
diff --git a/tests/bugs/moddata_3/bug25481 b/tests/bugs/moddata_3/bug25481
new file mode 100644 (file)
index 0000000..acbff66
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO OCC25481 ALL: unexpected polygons are found"
+puts "TODO OCC25481 ALL: unexpected pcurves are found"
+
+puts "================"
+puts "OCC25481"
+puts "================"
+puts ""
+#######################################################################
+# Edge must not contain obsolete curve representations
+#######################################################################
+
+pcylinder c 1 1
+incmesh c 0.1 -a 60
+subshape c e 1
+unset c
+renamevar c_1 e
+
+polygons e
+
+set dmp [dump e]
+set npol 0
+set npc 0
+foreach l [split $dmp \n] {
+  if [regexp -- {- PCurve} $l dummy dummy] {
+    puts $l
+    incr npc
+  }
+  if [regexp -- {- PolygonOnTriangulation} $l dummy dummy] {
+    puts $l
+    incr npol
+  }
+}
+
+if $npol {
+  puts "Error : $npol unexpected polygons are found"
+} else {
+  puts "OK : unexpected polygons are not found"
+}
+if $npc {
+  puts "Error : $npc unexpected pcurves are found"
+} else {
+  puts "OK : unexpected pcurves are not found"
+}
+
+checkview -display e -2d -path ${imagedir}/${test_image}.png
diff --git a/tests/bugs/moddata_3/bug25693_1 b/tests/bugs/moddata_3/bug25693_1
new file mode 100755 (executable)
index 0000000..f2687bf
--- /dev/null
@@ -0,0 +1,17 @@
+puts "TODO OCC25693 ALL: Wire of BSplines fails bopcheck"
+
+puts "============"
+puts "OCC25693"
+puts "============"
+puts ""
+###############################
+## Wire of BSplines fails bopcheck
+###############################
+
+restore [locate_data_file bug25693_path3035.brep] result
+
+if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck result]] == 1 } {
+    puts "Error : Wire of BSplines fails bopcheck"
+}
+
+checkview -display result -2d -path ${imagedir}/${test_image}-2d.png
diff --git a/tests/bugs/moddata_3/bug25693_2 b/tests/bugs/moddata_3/bug25693_2
new file mode 100755 (executable)
index 0000000..c2e15c5
--- /dev/null
@@ -0,0 +1,24 @@
+puts "TODO OCC25693 ALL: Wire of BSplines fails bopcheck"
+
+puts "============"
+puts "OCC25693"
+puts "============"
+puts ""
+###############################
+## Wire of BSplines fails bopcheck
+###############################
+
+restore [locate_data_file bug25693_path3039.brep] path3039
+
+prism Extrude_path3039 path3039 0 0 50
+
+if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck path3039]] == 1 } {
+    puts "Error : bad shape"
+}
+
+if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Extrude_path3039]] == 1 } {
+    puts "Error : Wire of BSplines fails bopcheck"
+}
+
+checkview -display path3039 -2d -path ${imagedir}/${test_image}-path3039-2d.png
+checkview -display Extrude_path3039 -2d -path ${imagedir}/${test_image}-Extrude_path3039-2d.png
diff --git a/tests/bugs/step/bug25989 b/tests/bugs/step/bug25989
new file mode 100644 (file)
index 0000000..efcc5f4
--- /dev/null
@@ -0,0 +1,41 @@
+puts "TODO OCC25989 ALL: Error : The volume of result shape is"
+
+puts "========"
+puts "OCC25989"
+puts "========"
+puts ""
+################################################
+# toridial surface gets damaged in STEP export
+################################################
+
+set StepFileName ${imagedir}/${casename}_fusion-step1-out.step
+
+catch {exec rm ${StepFileName}}
+
+box Box 10 10 10
+pcylinder Cylinder 2 10
+psphere Sphere 5
+ptorus Torus 10 2
+
+bclearobjects
+bcleartools
+baddobjects Box
+baddtools Cylinder Sphere Torus
+bfillds
+bbop Fusion 1
+
+checkshape Fusion
+bopcheck Fusion
+
+set FusionVolume [lindex [string trim [vprops Fusion]] 2]
+
+stepwrite m Fusion
+writeall $StepFileName
+
+stepread $StepFileName a *
+renamevar a_1 result
+
+checkshape result
+bopcheck result
+
+checkprops result -v $FusionVolume
diff --git a/tests/bugs/vis/bug25852 b/tests/bugs/vis/bug25852
new file mode 100644 (file)
index 0000000..c5572ac
--- /dev/null
@@ -0,0 +1,25 @@
+puts "TODO CR25852 ALL: Faulty shapes in variables faulty_1 to"
+
+puts "============"
+puts "CR25852"
+puts "============"
+puts ""
+
+################################################################
+# Text to BRep algorithm produces bad faces for circled symbols
+################################################################
+
+text2brep t "\u00ae" Courier 10
+whatis t
+
+vinit View1
+vclear
+vtop
+vsetdispmode 1
+vdisplay t
+vfit
+
+vmoveto 250 250
+checkshape t
+
+checkview -screenshot -3d -path ${imagedir}/${test_image}.png