# 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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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."
+}
+
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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."
+}
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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}]
+}
--- /dev/null
+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."
+}
--- /dev/null
+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."
+}
--- /dev/null
+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}
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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."
+}
--- /dev/null
+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."
+}
--- /dev/null
+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."
+}
--- /dev/null
+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
+}
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+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