diff --git a/tests/bugs/caf/bug170_3 b/tests/bugs/caf/bug170_3 index 8cbabed88d..bb5fb26740 100755 --- a/tests/bugs/caf/bug170_3 +++ b/tests/bugs/caf/bug170_3 @@ -14,6 +14,7 @@ Label $docName 0:2 SetComment $docName 0:2 $str1 file delete ${imagedir}/${docName}.xml +file delete ${imagedir}/${newDocName}.xml if [ catch {SaveAs $docName ${imagedir}/${docName}.xml} ] { puts "Error : (SaveAs)" @@ -21,7 +22,7 @@ if [ catch {SaveAs $docName ${imagedir}/${docName}.xml} ] { puts "OK : (SaveAs)" } -exec cp ${imagedir}/${docName}.xml ${imagedir}/${newDocName}.xml +file copy ${imagedir}/${docName}.xml ${imagedir}/${newDocName}.xml Open ${imagedir}/${newDocName}.xml $newDocName diff --git a/tests/bugs/caf/bug381_1 b/tests/bugs/caf/bug381_1 index 3accee94e0..dd308c3383 100755 --- a/tests/bugs/caf/bug381_1 +++ b/tests/bugs/caf/bug381_1 @@ -11,7 +11,8 @@ NewDocument D MDTV-Standard catch { SaveAs D ${imagedir}/OCC381.std } if { [catch { OCC381_Save D } ] } { - puts "OCC381: Error" + puts "OCC381: Error" } else { + catch { exec chmod 777 ${imagedir}/OCC381.std } file delete ${imagedir}/OCC381.std } diff --git a/tests/bugs/caf/bug381_2 b/tests/bugs/caf/bug381_2 index 4abf85bce9..a651303561 100755 --- a/tests/bugs/caf/bug381_2 +++ b/tests/bugs/caf/bug381_2 @@ -11,6 +11,7 @@ NewDocument D MDTV-Standard if { [catch { OCC381_SaveAs D ${imagedir}/OCC381.std}] } { puts "OCC381: Error" } else { + catch {exec chmod 777 ${imagedir}/OCC381.std} file delete ${imagedir}/OCC381.std } diff --git a/tests/bugs/iges/buc60823 b/tests/bugs/iges/buc60823 index c699df5dde..e2aab6dc40 100755 --- a/tests/bugs/iges/buc60823 +++ b/tests/bugs/iges/buc60823 @@ -1,11 +1,13 @@ -if { [array get env os_type] != "" } { - set os $env(os_type) -} -if { [string compare $os "windows"] != 0 } { - puts "TODO OCC12345 ALL: An exception was caught" - puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*" - puts "TODO OCC12345 ALL: TEST INCOMPLETE" -} +### by apn on IR-2012-12-21 +##if { [array get env os_type] != "" } { +## set os $env(os_type) +##} +##if { [string compare $os "windows"] != 0 } { +## puts "TODO OCC12345 ALL: An exception was caught" +## puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*" +## puts "TODO OCC12345 ALL: TEST INCOMPLETE" +##} + puts "========================" puts "BUC60823" puts "========================" diff --git a/tests/bugs/iges/bug22888 b/tests/bugs/iges/bug22888 index d1af309483..a1e5deb3de 100755 --- a/tests/bugs/iges/bug22888 +++ b/tests/bugs/iges/bug22888 @@ -42,7 +42,8 @@ if { $tri_after <= 0 || $nod_after <= 0 } { puts "Error : Face is not shaded (number of nodes or triangles is wrong)" } -set CR22888_draw 1 +set only_screen 1 + diff --git a/tests/bugs/iges/bug448 b/tests/bugs/iges/bug448 new file mode 100755 index 0000000000..fcca327585 --- /dev/null +++ b/tests/bugs/iges/bug448 @@ -0,0 +1,30 @@ +puts "TODO OCC12345 ALL: Faulty OCC448: shape number is wrong" + +puts "========" +puts " OCC448 " +puts "========" +puts "" +############################################ +## wrong translation IGES file in "Only visible" mode +############################################ + +if [catch { set list [igesbrep [locate_data_file Amino_172448-65210.igs] a * ] } res] { + puts "Faulty OCC448: here is reading problem" +} else { + tpcompound result + set length [llength $list] + set NbShapes [lindex $list [expr $length - 1]] + + # + # ATANTION!!!!!!! FOR TESTING !!!!!!! + # + set GoodNbShapes 1 + if { $NbShapes != $GoodNbShapes } { + puts "NbShapes=$NbShapes" + puts "GoodNbShapes=$GoodNbShapes" + puts "Faulty OCC448: shape number is wrong" + } +} + +set 2dviewer 0 + diff --git a/tests/bugs/iges/bug5027_1 b/tests/bugs/iges/bug5027_1 new file mode 100755 index 0000000000..e4f9629f7b --- /dev/null +++ b/tests/bugs/iges/bug5027_1 @@ -0,0 +1,32 @@ +puts "============" +puts "OCC5027" +puts "============" +puts "" +###################################################### +# Incorrect result translating wire with loops from STEP +###################################################### + +set BugNumber OCC5027 + +if [catch { igesread [locate_data_file OCC5027.igs] a * } res] { + puts "Warning ${BugNumber} : here is reading problem" +} else { + tpcompound result + set nb_info [nbshapes result] + + set check_square 1 + set square 159588 + set nb_v_good 140 + set nb_e_good 144 + set nb_w_good 36 + set nb_f_good 31 + set nb_sh_good 0 + set nb_sol_good 0 + set nb_compsol_good 0 + set nb_compound_good 1 + set nb_shape_good 352 + + set 2dviewer 0 +} + + diff --git a/tests/bugs/iges/end b/tests/bugs/iges/end index ed449955a8..48b054a897 100755 --- a/tests/bugs/iges/end +++ b/tests/bugs/iges/end @@ -1,9 +1,120 @@ -if { [info exists CR22888_draw] } { -#vinit -#vclear -#vdisplay result -#vsetdispmode 1 -#vfit - vdump $imagedir/${test_image}.png +if { [info exist check_square] } { + if { [info exists square] } { + set prop "square" + set mass $square + regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m + } + + if { [info exists volume] } { + set prop "volume" + set mass $volume + regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full m + } + + if { [info exists length] } { + set prop "length" + set mass $length + regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full m + puts "checksection" + puts [checksection result] + } + + #if mass (length or square) is empty in test case then result should be an empty shape. + if { [string compare "$mass" "empty"] != 0 } { + if { $m == 0 } { + puts "Error : The command is not valid. The $prop is 0." + } + if { $mass > 0 } { + puts "The expected $prop is $mass" + } + #check of change of square is < 1% + if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } { + puts "Error : The $prop of result shape is $m" + } + } else { + if { $m != 0 } { + puts "Error : The command is not valid. The $prop is $m" + } + } +} +if { [info exists nb_v_good] } { + regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v + if { ${nb_v} != ${nb_v_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_v_good} vertexes instead of ${nb_v}" + } else { + puts "Result shape contains ${nb_v} vertexes" + } +} + +if { [info exists nb_e_good] } { + regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e + if { ${nb_e} != ${nb_e_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_e_good} edges instead of ${nb_e}" + } else { + puts "Result shape contains ${nb_e} edges" + } +} + +if { [info exists nb_w_good] } { + regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w + if { ${nb_w} != ${nb_w_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_w_good} wires instead of ${nb_w}" + } else { + puts "Result shape contains ${nb_w} wires" + } +} + +if { [info exists nb_f_good] } { + regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f + if { ${nb_f} != ${nb_f_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_f_good} faces instead of ${nb_f}" + } else { + puts "Result shape contains ${nb_f} faces" + } +} + +if { [info exists nb_sh_good] } { + regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh + if { ${nb_sh} != ${nb_sh_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_sh_good} shells instead of ${nb_sh}" + } else { + puts "Result shape contains ${nb_sh} shells" + } +} + +if { [info exists nb_sol_good] } { + regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol + if { ${nb_sol} != ${nb_sol_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_sol_good} solids instead of ${nb_sol}" + } else { + puts "Result shape contains ${nb_sol} solids" + } +} + +if { [info exists nb_compsol_good] } { + regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol + if { ${nb_compsol} != ${nb_compsol_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_compsol_good} compsolids instead of ${nb_compsol}" + } else { + puts "Result shape contains ${nb_compsol} compsolids" + } +} + +if { [info exists nb_compound_good] } { + regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound + if { ${nb_compound} != ${nb_compound_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_compound_good} compounds instead of ${nb_compound}" + } else { + puts "Result shape contains ${nb_compound} compounds" + } +} + +if { [info exists nb_shape_good] } { + regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape + if { ${nb_shape} != ${nb_shape_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_shape_good} shapes instead of ${nb_shape}" + } else { + puts "Result shape contains ${nb_shape} shapes" + } } diff --git a/tests/bugs/modalg/buc60826 b/tests/bugs/modalg/buc60826 deleted file mode 100755 index 690d68b126..0000000000 --- a/tests/bugs/modalg/buc60826 +++ /dev/null @@ -1,27 +0,0 @@ -puts "TODO OCC12345 ALL: Tcl Exception: Error: file BUC60826b.brep could not be found" -puts "TODO OCC12345 ALL: TEST INCOMPLETE" - -puts "========================" -puts "BUC60826" -puts "========================" - -#restore Model2-a.brep a -restore [locate_data_file BUC60826a.brep] a -checkshape a - -# restore Model2-b.brep b -restore [locate_data_file BUC60826b.brep] b -checkshape b - -bsection result a b - -regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection result] full num - -if { $num != 0 } { - puts " Faulty BUC60826 : Result shape is Unclosed !!! " -} else { - puts "BUC60826 OK: Result shape is CORRECT !!! " -} -set length 0 -set 2dviewer 0 - diff --git a/tests/bugs/modalg/buc60827 b/tests/bugs/modalg/buc60827 deleted file mode 100755 index 9776b3621a..0000000000 --- a/tests/bugs/modalg/buc60827 +++ /dev/null @@ -1,52 +0,0 @@ -puts "TODO OCC12345 ALL: Tcl Exception: Error: file BUC60827d.brep could not be found" -puts "TODO OCC12345 ALL: TEST INCOMPLETE" - -puts "========================" -puts "BUC60827" -puts "========================" - -#restore Model3-a.brep a -restore [locate_data_file BUC60827c.brep] a - -#restore Model3-b.brep b -restore [locate_data_file BUC60827d.brep] b - -set che [checkshape a] -if { [regexp {Faulty} $che ] == 1 } { - puts "Faulty BUC60827 (shape 1): Source shape is invalid. It was detected by Checkshape command" - puts "Body of the script was NOT executed" - renamevar a result -} else { - puts "BUC60827 OK (shape 1): Source shape is valid" - - set che [checkshape b] - if { [regexp {Faulty} $che ] == 1 } { - puts "Faulty BUC60827 (shape 2): Source shape is invalid. It was detected by Checkshape command" - puts "Body of the script was NOT executed" - renamevar b result - } else { - puts "BUC60827 OK (shape 2): Source shape is valid" - - bsection result a b - set rlen 0 - set rlen [llength [explode res v]] - if ([expr $rlen == 0]) { - puts "Faulty :The result of section is an empty compound." - } else { - distmini d1 res_1 a_1 - regexp {([-0-9.+eE]+)$} [dump d1_val] full len1 - if ([expr $len1 > 1e-7]) { - puts "Faulty :The section is incomplite." - } else { - distmini d2 res_2 a_2 - regexp {([-0-9.+eE]+)$} [dump d2_val] full len2 - if ([expr $len2 > 1e-7]) { - puts "Faulty :The section is incomplite." - } - } - } - } -} - -set length 0 -set 2dviewer 0 diff --git a/tests/bugs/modalg/buc60853 b/tests/bugs/modalg/buc60853 deleted file mode 100755 index e40cc1c55c..0000000000 --- a/tests/bugs/modalg/buc60853 +++ /dev/null @@ -1,49 +0,0 @@ -puts "TODO OCC12345 ALL: Tcl Exception: Error: file BUC60853_plane.brep could not be found" -puts "TODO OCC12345 ALL: TEST INCOMPLETE" - -puts "========" -puts "BUC60853" -puts "========" -puts "" -############################################################################### -##The exception Standard_NumericError is generated in the function TopOpeBRepTool_CurveTool::MakeCurves(). -## The error occurs only when approximate mode is switched on. The command in draw is : -## > section res err_face.brep err_plane.brep -a -############################################################################### - -restore [locate_data_file BUC60853_face.brep] face -restore [locate_data_file BUC60853_plane.brep] plane -checkshape face -checkshape plane - -bsection result face plane -a - - -# set text [nbshapes res] -# set ver [lindex $text 7] -# set edg [lindex $text 10] -# set com [lindex $text 28] - -set nb_info [nbshapes result] -regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ver -regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full edg - -# if { $com != 0} { -# puts " Faulty BUC60853: Result shape is COMPOUND, but it must be edge " -# set make_photo 0 -# } else { -if { $edg != 1} { - puts " Faulty BUC60853: Result shape contains more than one edge " - explode res v -} else { - if { $ver < 2} { - puts " Faulty BUC60853: Result edge contains less than two vertexes." - explode res v - } else { - puts " BUC60853 OK: Result of section operation is correct " - explode res v - } -} -#} -set length 0 -set 2dviewer 0 diff --git a/tests/bugs/moddata/bug104 b/tests/bugs/moddata/bug104 deleted file mode 100755 index 776bfa2132..0000000000 --- a/tests/bugs/moddata/bug104 +++ /dev/null @@ -1,32 +0,0 @@ -puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_" -puts "TODO OCC12345 ALL: Tcl Exception: Error: file OCC104-2.brep could not be found" -puts "TODO OCC12345 ALL: TEST INCOMPLETE" - -puts "================" -puts "BUC61007" -puts "OCC104" -puts "================" -puts "" -################################################################ -## These shapes are valid and seems that they have one size, but they volumes of the shapes are -## quite different. This looks like a regression in comparing to C31. -################################################################ - -cpulimit 3000 - -restore [locate_data_file OCC104-1.brep] sh1 -checkshape sh1 -regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full l1 - -restore [locate_data_file OCC104-2.brep] sh2 -checkshape sh2 -regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full l2 - -set diff [expr abs([expr $l2 - $l1])] - -if { $diff > 0.001} { - puts "Error : volume of OCC104-1.brep and OCC104-2.brep differ on the value $diff while the shape almost coinsident" -} else { - puts "Volumes of OCC104-1.brep and OCC104-2.brep are right calculated (almost coinsident)" -} - diff --git a/tests/bugs/step/bug3397 b/tests/bugs/step/bug3397 new file mode 100755 index 0000000000..bfee7430f5 --- /dev/null +++ b/tests/bugs/step/bug3397 @@ -0,0 +1,33 @@ +puts "============" +puts "OCC3397" +puts "============" +puts "" +###################################################### +# Incorrect work of ShapeFix_ComposeShell +###################################################### + +set BugNumber OCC3397 + +#mkv-04.09.06 +param read.step.shape.relationship OFF + +if [catch { stepread [locate_data_file trj12_b3-tu-203.stp] a * } res] { + puts "Faulty ${BugNumber} : here is reading problem" +} else { + tpcompound result + set nb_info [nbshapes result] + + set check_square 1 + set square 1.48021e+06 + set nb_v_good 1228 + set nb_e_good 1938 + set nb_w_good 762 + set nb_f_good 696 + set nb_sh_good 1 + set nb_sol_good 1 + set nb_compsol_good 0 + set nb_compound_good 1 + set nb_shape_good 4627 +} + +set 2dviewer 0 diff --git a/tests/bugs/step/bug5027_2 b/tests/bugs/step/bug5027_2 new file mode 100755 index 0000000000..5f4dc97524 --- /dev/null +++ b/tests/bugs/step/bug5027_2 @@ -0,0 +1,30 @@ +puts "============" +puts "OCC5027" +puts "============" +puts "" +###################################################### +# Incorrect result translating wire with loops from STEP +###################################################### + +set BugNumber OCC5027 + +if [catch { stepread [locate_data_file OCC5027.stp] a * } res] { + puts "Warning ${BugNumber} : here is reading problem" +} else { + tpcompound result + set nb_info [nbshapes result] + + set check_square 1 + set square 159588 + set nb_v_good 44 + set nb_e_good 72 + set nb_w_good 36 + set nb_f_good 31 + set nb_sh_good 1 + set nb_sol_good 1 + set nb_compsol_good 0 + set nb_compound_good 1 + set nb_shape_good 186 +} + +set 2dviewer 0 diff --git a/tests/bugs/step/bug8229 b/tests/bugs/step/bug8229 new file mode 100755 index 0000000000..38f8677aaf --- /dev/null +++ b/tests/bugs/step/bug8229 @@ -0,0 +1,16 @@ +puts "============" +puts "OCC8229" +puts "============" +puts "" +####################################################################### +# Exeption is raised during the ReadStep in DRAW on the attached shape +####################################################################### + +set BugNumber OCC8229 + +if [catch { stepread [locate_data_file OCC8229.stp] a * } res] { + puts "Faulty ${BugNumber}" +} else { + puts "OK ${BugNumber}" +} + diff --git a/tests/bugs/step/end b/tests/bugs/step/end new file mode 100755 index 0000000000..48b054a897 --- /dev/null +++ b/tests/bugs/step/end @@ -0,0 +1,120 @@ +if { [info exist check_square] } { + if { [info exists square] } { + set prop "square" + set mass $square + regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m + } + + if { [info exists volume] } { + set prop "volume" + set mass $volume + regexp {Mass +: +([-0-9.+eE]+)} [vprops result] full m + } + + if { [info exists length] } { + set prop "length" + set mass $length + regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full m + puts "checksection" + puts [checksection result] + } + + #if mass (length or square) is empty in test case then result should be an empty shape. + if { [string compare "$mass" "empty"] != 0 } { + if { $m == 0 } { + puts "Error : The command is not valid. The $prop is 0." + } + if { $mass > 0 } { + puts "The expected $prop is $mass" + } + #check of change of square is < 1% + if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } { + puts "Error : The $prop of result shape is $m" + } + } else { + if { $m != 0 } { + puts "Error : The command is not valid. The $prop is $m" + } + } +} +if { [info exists nb_v_good] } { + regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v + if { ${nb_v} != ${nb_v_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_v_good} vertexes instead of ${nb_v}" + } else { + puts "Result shape contains ${nb_v} vertexes" + } +} + +if { [info exists nb_e_good] } { + regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e + if { ${nb_e} != ${nb_e_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_e_good} edges instead of ${nb_e}" + } else { + puts "Result shape contains ${nb_e} edges" + } +} + +if { [info exists nb_w_good] } { + regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w + if { ${nb_w} != ${nb_w_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_w_good} wires instead of ${nb_w}" + } else { + puts "Result shape contains ${nb_w} wires" + } +} + +if { [info exists nb_f_good] } { + regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f + if { ${nb_f} != ${nb_f_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_f_good} faces instead of ${nb_f}" + } else { + puts "Result shape contains ${nb_f} faces" + } +} + +if { [info exists nb_sh_good] } { + regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh + if { ${nb_sh} != ${nb_sh_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_sh_good} shells instead of ${nb_sh}" + } else { + puts "Result shape contains ${nb_sh} shells" + } +} + +if { [info exists nb_sol_good] } { + regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol + if { ${nb_sol} != ${nb_sol_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_sol_good} solids instead of ${nb_sol}" + } else { + puts "Result shape contains ${nb_sol} solids" + } +} + +if { [info exists nb_compsol_good] } { + regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol + if { ${nb_compsol} != ${nb_compsol_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_compsol_good} compsolids instead of ${nb_compsol}" + } else { + puts "Result shape contains ${nb_compsol} compsolids" + } +} + +if { [info exists nb_compound_good] } { + regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound + if { ${nb_compound} != ${nb_compound_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_compound_good} compounds instead of ${nb_compound}" + } else { + puts "Result shape contains ${nb_compound} compounds" + } +} + +if { [info exists nb_shape_good] } { + regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape + if { ${nb_shape} != ${nb_shape_good} } { + puts "Error : Result shape is WRONG because it must contains ${nb_shape_good} shapes instead of ${nb_shape}" + } else { + puts "Result shape contains ${nb_shape} shapes" + } +} + diff --git a/tests/bugs/vis/bug10702 b/tests/bugs/vis/bug10702 new file mode 100755 index 0000000000..93f7f0e0fa --- /dev/null +++ b/tests/bugs/vis/bug10702 @@ -0,0 +1,47 @@ +puts "TODO OCC12345 ALL: An exception was caught" +puts "TODO OCC12345 ALL: \\*\\* Exception \\*\\*.*" +puts "TODO OCC12345 ALL: TEST INCOMPLETE" + +puts "============" +puts "OCC10702" +puts "============" +puts "" +####################################################################### +# MeshVS_NodalColorPrsBuilder does not take into account visibility of mesh elements +####################################################################### + +set BugNumber OCC10702 + +pload XDE + +meshfromstl m [locate_data_file OMF6391_box.stl] + +set x_coord 180 +set y_coord 260 + +meshdispmode m 2 +puts "\nMesh displayed in shading mode" + +QAUpdateLights +checkcolor $x_coord $y_coord 0 0 0.36 + +meshselmode m 8 +puts "\nSelection of elements is activated" + +QAShiftSelect $x_coord $y_coord +###QAShiftSelect $x_coord $y_coord + +meshhidesel m +puts "\nSelected elemement is hidden" + +QAUpdateLights +checkcolor $x_coord $y_coord 0 0 0.36 + +nodalcolor_id m +puts "\nDisplay nodal color presentation" + +QAUpdateLights +checkcolor $x_coord $y_coord 0.46 0.12 0.37 + +set only_screen 1 + diff --git a/tests/bugs/vis/bug10781 b/tests/bugs/vis/bug10781 new file mode 100755 index 0000000000..6a50f63413 --- /dev/null +++ b/tests/bugs/vis/bug10781 @@ -0,0 +1,30 @@ +puts "============" +puts "OCC10781" +puts "============" +puts "" +####################################################################### +# MeshVS is not sensitive to width of edges +####################################################################### + +set BugNumber OCC10781 + +pload XDE + +meshfromstl m [locate_data_file OMF6391_box.stl] + +set x_coord 210 +set y_coord 280 + +QAMoveTo $x_coord $y_coord +QAMoveTo $x_coord $y_coord +QAUpdateLights + +checkcolor $x_coord $y_coord 0 0 0 + +mesh_edge_width m 20 +puts "\nSet big mesh edge width" +QAUpdateLights + +checkcolor $x_coord $y_coord 1 1 1 + +set only_screen 1 diff --git a/tests/bugs/vis/bug11095 b/tests/bugs/vis/bug11095 new file mode 100755 index 0000000000..5cb9a65d9a --- /dev/null +++ b/tests/bugs/vis/bug11095 @@ -0,0 +1,37 @@ +puts "============" +puts "OCC11095" +puts "============" +puts "" +####################################################################### +# MeshVS: Borders of faces are not visible in shrink mode +####################################################################### + +set BugNumber OCC11095 + +pload XDE + +meshfromstl m [locate_data_file OMF6391_box.stl] + +set x_coord 157 +set y_coord 280 + +set RED_R1 0 +set GREEN_R1 0 +set BLUE_R1 0 + +QAMoveTo $x_coord $y_coord +QAMoveTo $x_coord $y_coord + +meshdispmode m 3 +puts "\nSet shrinked display mode\n" + +set x_coord 137 +set y_coord 277 + +checkcolor $x_coord $y_coord 0 0 0 + +if { ${stat} != 1 } { + puts "Error : Borders of faces are not visible in shrink mode" +} + +set only_screen 1 diff --git a/tests/bugs/vis/bug11615 b/tests/bugs/vis/bug11615 new file mode 100755 index 0000000000..97d7561467 --- /dev/null +++ b/tests/bugs/vis/bug11615 @@ -0,0 +1,46 @@ +puts "============" +puts "OCC11615" +puts "============" +puts "" +###################################################### +# Anisotropic scaling in 3D view +###################################################### + +set BugNumber OCC11615 + +box b 10 10 10 +vinit +vdisplay b +vfit +vscale 1 1 1 +QAUpdateLights + +set x1 [list 165 340 70] +set y1 [list 384 283 79] + +QAUpdateLights +puts "" +for {set i 0} {$i < 3} {incr i} { + set x_coord [lindex ${x1} $i] + set y_coord [lindex ${y1} $i] + + checkcolor $x_coord $y_coord 1 1 0 +} + +vscale 0.5 1.5 0.7 +vfit +QAUpdateLights + +set x2 [list 80 390 25] +set y2 [list 390 218 167] + +QAUpdateLights +puts "" +for {set i 0} {$i < 3} {incr i} { + set x_coord [lindex ${x2} $i] + set y_coord [lindex ${y2} $i] + + checkcolor $x_coord $y_coord 1 1 0 +} + +set only_screen 1 diff --git a/tests/bugs/vis/bug137_1 b/tests/bugs/vis/bug137_1 new file mode 100755 index 0000000000..9075400a8c --- /dev/null +++ b/tests/bugs/vis/bug137_1 @@ -0,0 +1,44 @@ +puts "========================" +puts "OCC137" +puts "========================" +############################################################### +#Patch description: +# +#MIT010717 : 3D selection management +#>>> MIT010717 : Selection management +# +# * Package OpenGl (OpenGl_execstruct.c) +# +# @ Avoid drawing quality problem on selected face, +# enable/disable Z offset on highlighted faces. +# +#>>> MIT010717 : drawing management +# +# * Package OpenGl (OpenGl_indexpolygon.c, ...) +# +# @ Avoid to undraw faces with confused points +############################################################### +puts "========================" + +vinit +box b 10 10 10 +vdisplay b +vfit +vsetdispmode 1 + +puts "Whole shape should be highlighted." + +OCC137 1 + +set x_coord 105 +set y_coord 100 + +QAMoveTo $x_coord $y_coord +QAMoveTo $x_coord $y_coord + +QAUpdateLights + +checkcolor $x_coord $y_coord 0 1 1 + +set only_screen 1 + diff --git a/tests/bugs/vis/bug137_2 b/tests/bugs/vis/bug137_2 new file mode 100755 index 0000000000..4c49b73fc9 --- /dev/null +++ b/tests/bugs/vis/bug137_2 @@ -0,0 +1,50 @@ +puts "========================" +puts "OCC137" +puts "========================" +############################################################### +#Patch description: +# +#MIT010717 : 3D selection management +#>>> MIT010717 : Selection management +# +# * Package OpenGl (OpenGl_execstruct.c) +# +# @ Avoid drawing quality problem on selected face, +# enable/disable Z offset on highlighted faces. +# +#>>> MIT010717 : drawing management +# +# * Package OpenGl (OpenGl_indexpolygon.c, ...) +# +# @ Avoid to undraw faces with confused points +############################################################### +puts "========================" + +vinit +box b 10 10 10 +vdisplay b +vfit +vsetdispmode 1 + +puts "Only top face should be highlighted." + +vselmode 4 1 + +OCC137 1 + +set x_coord 105 +set y_coord 100 + +QAMoveTo $x_coord $y_coord +QAMoveTo $x_coord $y_coord + +QAUpdateLights + +checkcolor $x_coord $y_coord 0 1 1 + +set x_coord 105 +set y_coord 340 + +checkcolor $x_coord $y_coord 0.78 0.54 0.09 + +set only_screen 1 diff --git a/tests/bugs/vis/bug137_3 b/tests/bugs/vis/bug137_3 new file mode 100755 index 0000000000..997ef5caf0 --- /dev/null +++ b/tests/bugs/vis/bug137_3 @@ -0,0 +1,49 @@ +puts "========================" +puts "OCC137" +puts "========================" +############################################################### +#Patch description: +# +#MIT010717 : 3D selection management +#>>> MIT010717 : Selection management +# +# * Package OpenGl (OpenGl_execstruct.c) +# +# @ Avoid drawing quality problem on selected face, +# enable/disable Z offset on highlighted faces. +# +#>>> MIT010717 : drawing management +# +# * Package OpenGl (OpenGl_indexpolygon.c, ...) +# +# @ Avoid to undraw faces with confused points +############################################################### +puts "========================" + +vinit +box b 10 10 10 +vdisplay b +vfit +vsetdispmode 1 + +puts "Only top face should be highlighted." + +OCC137 1 + +vselmode 4 1 + +set x_coord 105 +set y_coord 100 + +QAMoveTo $x_coord $y_coord +QAMoveTo $x_coord $y_coord +QAUpdateLights + +checkcolor $x_coord $y_coord 0 1 1 + +set x_coord 105 +set y_coord 340 + +checkcolor $x_coord $y_coord 0.78 0.54 0.09 + +set only_screen 1 diff --git a/tests/bugs/vis/bug137_4 b/tests/bugs/vis/bug137_4 new file mode 100755 index 0000000000..1070ba6381 --- /dev/null +++ b/tests/bugs/vis/bug137_4 @@ -0,0 +1,54 @@ +puts "========================" +puts "OCC137" +puts "========================" +############################################################### +#Patch description: +# +#MIT010717 : 3D selection management +#>>> MIT010717 : Selection management +# +# * Package OpenGl (OpenGl_execstruct.c) +# +# @ Avoid drawing quality problem on selected face, +# enable/disable Z offset on highlighted faces. +# +#>>> MIT010717 : drawing management +# +# * Package OpenGl (OpenGl_indexpolygon.c, ...) +# +# @ Avoid to undraw faces with confused points +############################################################### +puts "========================" + +vinit +box b 10 10 10 +vdisplay b +vfit +vsetdispmode 1 + +puts "Only bottom face should be highlighted." + +vselmode 4 1 + +OCC137 1 +OCC137_z + +set x_coord 105 +set y_coord 350 + +QAMoveTo $x_coord $y_coord +QAMoveTo $x_coord $y_coord +QAUpdateLights + +set x_coord 105 +set y_coord 340 + +checkcolor $x_coord $y_coord 0 1 1 + +set x_coord 105 +set y_coord 340 +QASetViewCharac 60.6309 7.07107 4.08248 0.592163 -0.60038 -0.537482 0.369921 -0.390032 0.843228 -3.28175 3.38875 3.0464 + +checkcolor $x_coord $y_coord 0.78 0.54 0.09 + +set only_screen 1 diff --git a/tests/bugs/vis/bug137_5 b/tests/bugs/vis/bug137_5 new file mode 100755 index 0000000000..5ee93f7d31 --- /dev/null +++ b/tests/bugs/vis/bug137_5 @@ -0,0 +1,54 @@ +puts "========================" +puts "OCC137" +puts "========================" +############################################################### +#Patch description: +# +#MIT010717 : 3D selection management +#>>> MIT010717 : Selection management +# +# * Package OpenGl (OpenGl_execstruct.c) +# +# @ Avoid drawing quality problem on selected face, +# enable/disable Z offset on highlighted faces. +# +#>>> MIT010717 : drawing management +# +# * Package OpenGl (OpenGl_indexpolygon.c, ...) +# +# @ Avoid to undraw faces with confused points +############################################################### +puts "========================" + +vinit +box b 10 10 10 +vdisplay b +vfit +vsetdispmode 1 + +puts "Only bottom face should be highlighted." + +OCC137 1 +OCC137_z + +vselmode 4 1 + +set x_coord 105 +set y_coord 350 + +QAMoveTo $x_coord $y_coord +QAMoveTo $x_coord $y_coord +QAUpdateLights + +set x_coord 105 +set y_coord 340 + +checkcolor $x_coord $y_coord 0 1 1 + +QASetViewCharac 60.6309 7.07107 4.08248 0.592163 -0.60038 -0.537482 0.369921 -0.390032 0.843228 -3.28175 3.38875 3.0464 +set x_coord 105 +set y_coord 340 + +checkcolor $x_coord $y_coord 0.78 0.54 0.09 + +set only_screen 1 diff --git a/tests/bugs/vis/bug172 b/tests/bugs/vis/bug172 new file mode 100755 index 0000000000..f9ae2e5983 --- /dev/null +++ b/tests/bugs/vis/bug172 @@ -0,0 +1,26 @@ +puts "========" +puts "OCC172" +puts "========" + +pload XDE + +vinit +restore [locate_data_file OCC162.brep] s +vdisplay s + +set listmem {} +set i_max 10 +for {set i 1} {${i} <= ${i_max}} {incr i} { + # select shape + OCC172 + # deselect shape + OCC172 + + lappend listmem [expr [meminfo w] / 1024] + if { [checktrend $listmem 0 1 "Memory leak detected"] } { + puts "No memory leak, $i iterations" + break + } +} + + diff --git a/tests/bugs/vis/bug5682 b/tests/bugs/vis/bug5682 new file mode 100755 index 0000000000..608a8a001c --- /dev/null +++ b/tests/bugs/vis/bug5682 @@ -0,0 +1,25 @@ +puts "============" +puts "OCC5682" +puts "============" +puts "" +###################################################### +# AIS_InteractiveContext::Remove does not remove the object from memory +###################################################### + +set BugNumber OCC5682 +set listmem {} + +box b 100 100 100 + +vinit +vdisplay b +vfit + +catch {vselmode 4 1} +vclear + +lappend listmem [expr [meminfo w] / 1024] +if { [checktrend $listmem 0 1 "Memory leak detected"] } { + puts "No memory leak" + break +} diff --git a/tests/bugs/vis/bug6145 b/tests/bugs/vis/bug6145 new file mode 100755 index 0000000000..c60a6112e8 --- /dev/null +++ b/tests/bugs/vis/bug6145 @@ -0,0 +1,49 @@ +puts "============" +puts "OCC6145" +puts "============" +puts "" +################################################################## +# Incorrect rendering of a transparent object +################################################################## + +set BugNumber OCC6145 + +box b 200 100 100 + +plane p 20 20 50 +pcylinder c1 p 10 80 + +tcopy c1 c2 +ttranslate c2 40 0 0 +tcopy c2 c3 +ttranslate c3 40 0 0 +tcopy c3 c4 +ttranslate c4 40 0 0 +tcopy c4 c5 +ttranslate c5 40 0 0 + +compound c1 c2 c3 c4 c5 co +cut r b co + +vinit +vsetdispmode 1 +vdisplay r +vfit +QAUpdateLights + +set x_coord 270 +set y_coord 230 + +checkcolor $x_coord $y_coord 0.78 0.55 0.09 + +vsettransparency r 0.5 +QAUpdateLights + +checkcolor $x_coord $y_coord 0.8 0.56 0.1 + +set RED_3 0.86274498701095581 +set GREEN_3 0.61176401376724243 +set BLUE_3 0.10196000337600708 + +set only_screen 1 + diff --git a/tests/bugs/vis/bug6652 b/tests/bugs/vis/bug6652 new file mode 100755 index 0000000000..b573011a71 --- /dev/null +++ b/tests/bugs/vis/bug6652 @@ -0,0 +1,26 @@ +puts "============" +puts "OCC6652" +puts "============" +puts "" +###################################################### +# Problem of mesh selection +###################################################### + +pload XDE +set BugNumber OCC6652 + +meshfromstl result [locate_data_file OCC6652.stl] + +meshdispmode result 3 +meshselmode result 8 + +QASelectRectangle 5 5 400 400 + +if {[QANbSelected] != 26966} { + puts "Faulty ${BugNumber}" +} + +set only_screen 1 + + + diff --git a/tests/bugs/vis/bug672_1 b/tests/bugs/vis/bug672_1 new file mode 100755 index 0000000000..6ee1b16955 --- /dev/null +++ b/tests/bugs/vis/bug672_1 @@ -0,0 +1,40 @@ +puts "===========" +puts "OCC672 " +puts "===========" +######################################################################################## +# Wrong visualization of 2d dimentions +# The following list of problems: +# 1) The length dimension value should always be aligned to the middle of +# the dimension line +# 2) The angular dimension value should always be aligned to the middle of +# the dimension line +# 3) All dimension values (text) must be aligned horizontally or vertically only. +# 4) All dimension lines must be bound with properly sized arrows. +######################################################################################## +puts "Test Length" +puts "===========" + +set x1 0 +set y1 -50 +set x2 400 +set y2 0 +set x3 400 +set y3 200 +set x4 0 +set y4 200 +set str "(center)" +set scale_text 4.0 +set length_dist -21.0 +set angle 30.0 +set length 5.0 +set txtAngle 0. +set txtPosH 0. +set txtPosV 3. + +v2dinit + +OCC672_Length $x1 $y1 $x2 $y2 $str $scale_text $length_dist $angle $length $x3 $y3 $x4 $y4 $txtAngle $txtPosH $txtPosV + +v2dfit + +set only_screen2d 1 diff --git a/tests/bugs/vis/bug672_2 b/tests/bugs/vis/bug672_2 new file mode 100755 index 0000000000..ff19cb0d3c --- /dev/null +++ b/tests/bugs/vis/bug672_2 @@ -0,0 +1,40 @@ +puts "===========" +puts "OCC672 " +puts "===========" +######################################################################################## +# Wrong visualization of 2d dimentions +# The following list of problems: +# 1) The length dimension value should always be aligned to the middle of +# the dimension line +# 2) The angular dimension value should always be aligned to the middle of +# the dimension line +# 3) All dimension values (text) must be aligned horizontally or vertically only. +# 4) All dimension lines must be bound with properly sized arrows. +######################################################################################## +puts "Test Angle " +puts "===========" + +set x1 0 +set y1 0 +set x2 -200 +set y2 100 +set x3 -200 +set y3 0 + +set TH -7. +set TV 35. +set txtAngle 0. + +set aText "ANGLE" +set aTxtScale 4.0 +set aRadius 150 +set anArrAngle 30 +set anArrLength 10.0 + +v2dinit + +OCC672_Angle $x1 $y1 $x2 $y2 $x3 $y3 $aRadius $aText $aTxtScale $anArrAngle $anArrLength $txtAngle $TH $TV + +v2dfit + +set only_screen2d 1 diff --git a/tests/bugs/vis/bug672_3 b/tests/bugs/vis/bug672_3 new file mode 100755 index 0000000000..27f5fb136b --- /dev/null +++ b/tests/bugs/vis/bug672_3 @@ -0,0 +1,37 @@ +puts "===========" +puts "OCC672 " +puts "===========" +######################################################################################## +# Wrong visualization of 2d dimentions +# The following list of problems: +# 1) The length dimension value should always be aligned to the middle of +# the dimension line +# 2) The angular dimension value should always be aligned to the middle of +# the dimension line +# 3) All dimension values (text) must be aligned horizontally or vertically only. +# 4) All dimension lines must be bound with properly sized arrows. +######################################################################################## +puts "Test Diameter " +puts "===========" + +set x1 -100 +set y1 -100 +set cx 0 +set cy 0 +set radius 50 +set aText "10-E6" +set aTxtScale 4.0 +set anArrAngle 30 +set anArrLength 20.0 +set txtAngle 0. +set txtPosH 5. +set txtPosV 3. + + +v2dinit + +OCC672_Diameter $x1 $y1 $cx $cy $radius $aText $aTxtScale $anArrAngle $anArrLength $txtAngle $txtPosH $txtPosV + +v2dfit + +set only_screen2d 1 diff --git a/tests/bugs/vis/bug672_4 b/tests/bugs/vis/bug672_4 new file mode 100755 index 0000000000..1146b54a95 --- /dev/null +++ b/tests/bugs/vis/bug672_4 @@ -0,0 +1,40 @@ +puts "===========" +puts "OCC672 " +puts "===========" +######################################################################################## +# Wrong visualization of 2d dimentions +# The following list of problems: +# 1) The length dimension value should always be aligned to the middle of +# the dimension line +# 2) The angular dimension value should always be aligned to the middle of +# the dimension line +# 3) All dimension values (text) must be aligned horizontally or vertically only. +# 4) All dimension lines must be bound with properly sized arrows. +######################################################################################## +puts "Test Short_Length" +puts "===========" + +set x1 330 +set y1 -30 +set x2 100 +set y2 100 +set x3 200 +set y3 -100 +set x4 330 +set y4 -30 +set str "(center)" +set scale_text 4. +set length_dist -10.0 +set angle 30.0 +set length 5.0 +set txtAngle 0. +set txtPosH 0. +set txtPosV 3. + +v2dinit + +OCC672_ShortLength $x1 $y1 $x2 $y2 $str $scale_text $length_dist $angle $length $x3 $y3 $x4 $y4 $txtAngle $txtPosH $txtPosV + +v2dfit + +set only_screen2d 1 diff --git a/tests/bugs/vis/bug7186 b/tests/bugs/vis/bug7186 new file mode 100755 index 0000000000..bf51b3d83b --- /dev/null +++ b/tests/bugs/vis/bug7186 @@ -0,0 +1,60 @@ +puts "============" +puts "OCC7186" +puts "============" +puts "" +###################################################### +# Selecting an empty space with rectangle doesn't clear +# the current selection, when there is an opened local context +###################################################### + +set BugNumber OCC7186 + +set mistake 0 + +box b 10 10 10 +vinit +vdisplay b +vfit +QAUpdateLights +vselmode 2 1 + +QASelectRectangle 1 1 407 407 + +set NbSelected1 [QANbSelected] +if { ${NbSelected1} != 12 } { + puts "Bad number of selected edges after rectangle selection all edges" + set mistake 1 +} + +QASelectRectangle 10 10 20 20 + +set NbSelected2 [QANbSelected] +if { ${NbSelected2} != 0 } { + puts "Error : Bad number of selected edges after rectangle selection an empty space" + set mistake 1 + +} + +set x [list 125 204 283 29 111 298 379 125 204 283 125 283] +set y [list 47 100 47 200 150 150 200 250 300 250 361 361] + + +QAUpdateLights +puts "" +for {set i 0} {$i < 12} {incr i} { + set x_coord [lindex ${x} $i] + set y_coord [lindex ${y} $i] + checkcolor $x_coord $y_coord 1 1 0 + if { ${stat} != 1 } { + set mistake 1 + } +} + +puts "" +if { ${mistake} == 1 } { + puts "${BugNumber}: Faulty" +} else { + puts "${BugNumber}: OK" +} + +set only_screen 1 diff --git a/tests/bugs/vis/bug9517 b/tests/bugs/vis/bug9517 new file mode 100755 index 0000000000..326b996bb5 --- /dev/null +++ b/tests/bugs/vis/bug9517 @@ -0,0 +1,20 @@ +puts "============" +puts "OCC9517" +puts "============" +puts "" +####################################################################### +# Wrong use of the method glTexCoordPointer() in OpenGl_PrimitiveArray.c +####################################################################### + +set BugNumber OCC9517 + +box b 10 10 10 + +vinit +vdisplay b +vtop +vfit + +vtexture b [locate_data_file OCC9517.bmp] + +set only_screen 1 diff --git a/tests/bugs/xde/begin b/tests/bugs/xde/begin index 548d4d3146..ded93e3e5d 100755 --- a/tests/bugs/xde/begin +++ b/tests/bugs/xde/begin @@ -1,9 +1,13 @@ pload XDE - - - - - - - +proc GetPercent {Value GoodValue} { + set Percent 0. + if {${GoodValue} != 0.} { + set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.] + } elseif {${Value} != 0.} { + set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.] + } else { + set Percent 0. + } + return ${Percent} +} diff --git a/tests/bugs/xde/bug4648 b/tests/bugs/xde/bug4648 new file mode 100755 index 0000000000..bf0274cdc9 --- /dev/null +++ b/tests/bugs/xde/bug4648 @@ -0,0 +1,65 @@ +puts "TODO OCC12345 ALL: Faulty OCC4648" + +puts "================" +puts "OCC4648" +puts "================" +puts "" +################################# +# Problems with writing to STEP +################################# + +set BugNumber OCC4648 + +igesbrep [locate_data_file annie_surf.igs] a * +set info [nbshapes a] +regexp {Mass +: +([-0-9.+eE]+)} [sprops a] full good_square +regexp {VERTEX +: +([-0-9.+eE]+)} $info full good_vertex +regexp {EDGE +: +([-0-9.+eE]+)} $info full good_edge +regexp {WIRE +: +([-0-9.+eE]+)} $info full good_wire +regexp {FACE +: +([-0-9.+eE]+)} $info full good_face +regexp {SHELL +: +([-0-9.+eE]+)} $info full good_shell +regexp {SOLID +: +([-0-9.+eE]+)} $info full good_solid +regexp {COMPSOLID +: +([-0-9.+eE]+)} $info full good_compsolid +regexp {COMPOUND +: +([-0-9.+eE]+)} $info full good_compound +regexp {SHAPE +: +([-0-9.+eE]+)} $info full good_shape + +file delete ${imagedir}/annie +stepwrite 0 a ${imagedir}/annie +if { ![file exists ${imagedir}/annie] } { + puts "Faulty ${BugNumber} : There is not file" +} +catch {exec chmod 777 ${imagedir}/annie} + +if [catch { stepread ${imagedir}/annie b *} res] { + puts "Faulty ${BugNumber} : stepread is wrong" +} else { + renamevar b_1 res + set info1 [nbshapes res] + regexp {Mass +: +([-0-9.+eE]+)} [sprops res] full square + regexp {VERTEX +: +([-0-9.+eE]+)} $info1 full vertex + regexp {EDGE +: +([-0-9.+eE]+)} $info1 full edge + regexp {WIRE +: +([-0-9.+eE]+)} $info1 full wire + regexp {FACE +: +([-0-9.+eE]+)} $info1 full face + regexp {SHELL +: +([-0-9.+eE]+)} $info1 full shell + regexp {SOLID +: +([-0-9.+eE]+)} $info1 full solid + regexp {COMPSOLID +: +([-0-9.+eE]+)} $info1 full compsolid + regexp {COMPOUND +: +([-0-9.+eE]+)} $info1 full compound + regexp {SHAPE +: +([-0-9.+eE]+)} $info1 full shape + + if { $square != $good_square + || $vertex != $good_vertex + || $edge != $good_edge + || $wire != $good_wire + || $face != $good_face + || $shell != $good_shell + || $solid != $good_solid + || $compsolid != $good_compsolid + || $compound != $good_compound + || $shape != $good_shape } { + puts "Faulty ${BugNumber}" + } +} + +file delete ${imagedir}/annie + + diff --git a/tests/bugs/xde/bug4968 b/tests/bugs/xde/bug4968 new file mode 100755 index 0000000000..a0273404ef --- /dev/null +++ b/tests/bugs/xde/bug4968 @@ -0,0 +1,27 @@ +puts "=========" +puts " OCC4968 " +puts "=========" +puts "" +################################################## +# Improve FixShape to correct case of touching wires +################################################## + +set BugNumber OCC4968 + +restore [locate_data_file OCC4968.brep] r +regexp {WIRE +: +([-0-9.+eE]+)} [nbshapes r] full wire_number1 + +fixshape result r +regexp {WIRE +: +([-0-9.+eE]+)} [nbshapes result] full wire_number2 +checkshape result r + +puts "wire_number1 = ${wire_number1}" +puts "wire_number2 = ${wire_number2}" +if { ${wire_number2} > ${wire_number1}} { + puts "OK ${BugNumber}: wire number - OK" +} else { + puts "Faulty ${BugNumber}: wrong wire number" +} + +set 2dviewer 1 + diff --git a/tests/bugs/xde/bug533 b/tests/bugs/xde/bug533 new file mode 100755 index 0000000000..a370b06293 --- /dev/null +++ b/tests/bugs/xde/bug533 @@ -0,0 +1,19 @@ +puts "=========" +puts "OCC533" +puts "=========" +puts "" + +####################################################### +## XmlOcaf-Document is not stored in XDEDRAWEXE although stored in TCAF +####################################################### + +file delete ${imagedir}/A.xml + +set res 0 +catch { NewDocument A XmlOcaf } +if [catch {SaveAs A ${imagedir}/A.xml}] { + puts "OCC533 FAULTY" +} else { + puts "OCC533 OK" +} + diff --git a/tests/bugs/xde/bug6366 b/tests/bugs/xde/bug6366 new file mode 100755 index 0000000000..e3feb8ceb0 --- /dev/null +++ b/tests/bugs/xde/bug6366 @@ -0,0 +1,43 @@ +puts "============" +puts "OCC6366" +puts "============" +puts "" +###################################################### +# FixShape does not fix an edge with invalid SameRange flag +###################################################### + +set BugNumber OCC6366 + +restore [locate_data_file BUC60393.rle] a +decho off +if {[checkshape a] != "This shape seems to be valid"} { + puts "Info: we see that the initial shape is bad" +} +decho on + +puts "launching fixshape..." +fixshape result a +set err 0 + +decho off +if {[checkshape result] != "This shape seems to be valid"} { + puts "Info: we see that the fixed shape is bad too" + puts "launching fsameparameter..." + set err 1 + fsameparameter result + if {[checkshape result] == "This shape seems to be valid"} { + puts "Info: we see that fsameparameter fixed the shape completely" + } else { + puts "Info: we see that the fixed shape after fsameparameter is bad too" + } +} +decho on + +if { ${err} == 0 } { + puts "OK ${BugNumber}" +} else { + puts "Faulty ${BugNumber}" +} + +set 2dviewer 0 + diff --git a/tests/bugs/xde/bug6384 b/tests/bugs/xde/bug6384 new file mode 100755 index 0000000000..aa5bc90c7d --- /dev/null +++ b/tests/bugs/xde/bug6384 @@ -0,0 +1,15 @@ +puts "================" +puts "OCC6384" +puts "================" +puts "" +####################################################################################### +# StlAPI_Reader still use old Sewing algorithm +####################################################################################### + +## readstl command from XSDRAWSTLVRML.cxx file !!!!! + +set BugNumber OCC6384 + +readstl res_mesh [locate_data_file OMF6391_box.stl] + + diff --git a/tests/bugs/xde/bug6491 b/tests/bugs/xde/bug6491 new file mode 100755 index 0000000000..e7f67d9e4b --- /dev/null +++ b/tests/bugs/xde/bug6491 @@ -0,0 +1,25 @@ +puts "========" +puts "OCC6491" +puts "========" +puts "" +#################################################### +## Sewing in DRAW on attached the shape with tolerance 1000 adds duplicated faces +#################################################### + +set BugNumber OCC6491 + +restore [locate_data_file OCC6491.brep] a + +set tolerance 1000 + +sewing result ${tolerance} a +regexp {FACE +: +([-0-9.+eE]+)} [nbshapes result] full res_faces + +set good_faces 263 + +if { ${res_faces} != ${good_faces} } { + puts "Faulty ${BugNumber}" +} + +set 2dviewer 0 + diff --git a/tests/bugs/xde/bug6555 b/tests/bugs/xde/bug6555 new file mode 100755 index 0000000000..a48178d7f7 --- /dev/null +++ b/tests/bugs/xde/bug6555 @@ -0,0 +1,44 @@ +puts "========" +puts "OCC6555" +puts "========" +puts "" +#################################################### +## ShapeFix_Shape modifies valid shape and return wrong status DONE. +#################################################### + +set BugNumber OCC6555 + +box s1 10 10 10 + +set result [checkshape s1] +set index [lsearch ${result} Faulty] +if {$index > -1} { + puts "Faulty ${BugNumber} : checkshape is wrong for s1" +} else { + puts "checkshape is good for s1" +} + +set DumpList1 [dump s1] +set SOLID_Adress_1 [lindex ${DumpList1} 29] + +fixshape result s1 + +set res [checkshape result] +set index [lsearch ${res} Faulty] +if {$index > -1} { + puts "Faulty ${BugNumber} : checkshape is wrong for res" +} else { + puts "checkshape is good for res" +} + +set DumpList2 [dump result] +set SOLID_Adress_2 [lindex ${DumpList2} 29] + +if { ${SOLID_Adress_1} != ${SOLID_Adress_2} } { + puts "Faulty ${BugNumber}" +} else { + puts "OK ${BugNumber}" +} + +set 2dviewer 0 + diff --git a/tests/bugs/xde/bug6675 b/tests/bugs/xde/bug6675 new file mode 100755 index 0000000000..00d905c834 --- /dev/null +++ b/tests/bugs/xde/bug6675 @@ -0,0 +1,19 @@ +puts "========" +puts "OCC6675" +puts "========" +puts "" +#################################################### +## Sewing can not sewed attached shape for any tolerance.Followed bug for 6542. +#################################################### + +set BugNumber OCC6675 + +restore [locate_data_file OCC6675.brep] a + +set tolerance 1.00000e-07 + +sewing result ${tolerance} a +checkshape result + +set 2dviewer 0 + diff --git a/tests/bugs/xde/bug6805 b/tests/bugs/xde/bug6805 new file mode 100755 index 0000000000..897fc8aec7 --- /dev/null +++ b/tests/bugs/xde/bug6805 @@ -0,0 +1,17 @@ +puts "============" +puts "OCC6805" +puts "============" +puts "" +###################################################### +# Operation BSplineRestriction produced shape with null pcurves +###################################################### + +set BugNumber OCC6805 + +restore [locate_data_file OCC6805.brep] s1 +checkshape s1 + +DT_ApplySeq result s1 ${imagedir}/OCC6805.res +checkshape result + +set 2dviewer 0 diff --git a/tests/bugs/xde/bug7141 b/tests/bugs/xde/bug7141 new file mode 100755 index 0000000000..fa13b909ce --- /dev/null +++ b/tests/bugs/xde/bug7141 @@ -0,0 +1,19 @@ +puts "============" +puts "OCC7141" +puts "============" +puts "" +###################################################### +# STEP interface crashes exporting large assembly +###################################################### + +pload QAcommands + +set BugNumber OCC7141 + +set nCount 20 +if [catch { set List [OCC7141 ${nCount}] } result] { + puts "${BugNumber}: Faulty" +} else { + puts "${BugNumber}: OK" +} + diff --git a/tests/bugs/xde/bug945 b/tests/bugs/xde/bug945 new file mode 100755 index 0000000000..ec12e25a4c --- /dev/null +++ b/tests/bugs/xde/bug945 @@ -0,0 +1,33 @@ +puts "=========" +puts " OCC945 " +puts "=========" +puts "" +####################################### +## it is necessary to adapt ShapeFix_Face for correct work +####################################### + +restore [locate_data_file OCC945.brep] a + +decho off +set che [checkshape a] +decho on +if { [regexp "Faulty" $che] == 1 } { + puts "OCC945: Source shape is invalid." +} else { + puts "OCC945: Source shape is valid." +} + +if [catch {fixshape result a 29.9 } result] { + puts "Faulty OCC945: here is problem with FIXSHAPE function" +} else { + decho off + set che1 [checkshape result] + decho on + if { [regexp "Faulty" $che1] == 1 } { + puts "Faulty OCC945: function FIXSHAPE works WRONGLY." + } else { + puts "OCC945 OK: function FIXSHAPE works PROPERLY." + } +} + +set 2dviewer 1 diff --git a/tests/bugs/xde/bug9490 b/tests/bugs/xde/bug9490 new file mode 100755 index 0000000000..2b6c70241a --- /dev/null +++ b/tests/bugs/xde/bug9490 @@ -0,0 +1,108 @@ +puts "============" +puts "OCC9490" +puts "============" +puts "" +####################################################################### +# Increasing of tolerance in loop test for IGES +####################################################################### + +set BugNumber OCC9490 + +set IsOk 1 +if {[catch {igesread [locate_data_file support_bobine.igs] OCC9490a *}]} { + puts "Faulty ${BugNumber} : here is reading problem" + set IsOk 0 +} + +file delete ${imagedir}/OCC9490tmp.igs + +if {[catch {brepiges OCC9490a ${imagedir}/OCC9490tmp.igs}]} { + puts "Faulty ${BugNumber} : here is conversation to brep problem" + set IsOk 0 +} +catch {exec chmod 777 ${imagedir}/OCC9490tmp.igs} + +if {[catch {igesread ${imagedir}/OCC9490tmp.igs OCC9490b *}]} { + puts "Faulty ${BugNumber} : here is 2nd reading problem" + set IsOk 0 +} + +if { ${IsOk} == 1} { + set aTokList {= } + set Tol1 [lindex [split [tolerance OCC9490a] ${aTokList}] 2] + set Tol2 [lindex [split [tolerance OCC9490b] ${aTokList}] 2] + set percent_max 0.1 + set Tolerance_percent [GetPercent ${Tol1} ${Tol2}] + puts "Tolerance_percent = ${Tolerance_percent} %" + if { ${Tolerance_percent} > ${percent_max} } { + set IsOk 0 + } + + set good_square 36259 + set good_vertex 1770 + set good_edge 1237 + set good_wire 140 + set good_face 123 + set good_shell 0 + set good_solid 0 + set good_compsolid 0 + set good_compound 1 + set good_shape 3271 + + set nb_info [nbshapes OCC9490a] + regexp {Mass +: +([-0-9.+eE]+)} [sprops OCC9490a] full sq1 + regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v1 + regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e1 + regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w1 + regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f1 + regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh1 + regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol1 + regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol1 + regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound1 + regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape1 + if {$sq1 != $good_square + || $nb_v1 != $good_vertex + || $nb_e1 != $good_edge + || $nb_w1 != $good_wire + || $nb_f1 != $good_face + || $nb_sh1 != $good_shell + || $nb_sol1 != $good_solid + || $nb_compsol1 != $good_compsolid + || $nb_compound1 != $good_compound + || $nb_shape1 != $good_shape } { + set IsOk 0 + } + + set nb_info [nbshapes OCC9490b] + regexp {Mass +: +([-0-9.+eE]+)} [sprops OCC9490b] full sq2 + regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v2 + regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e2 + regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w2 + regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f2 + regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh2 + regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol2 + regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol2 + regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound2 + regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape2 + if {$sq2 != $good_square + || $nb_v2 != $good_vertex + || $nb_e2 != $good_edge + || $nb_w2 != $good_wire + || $nb_f2 != $good_face + || $nb_sh2 != $good_shell + || $nb_sol2 != $good_solid + || $nb_compsol2 != $good_compsolid + || $nb_compound2 != $good_compound + || $nb_shape2 != $good_shape } { + set IsOk 0 + } + + if { ${IsOk} == 0 } { + puts "${BugNumber}: Faulty" + } else { + puts "${BugNumber}: OK" + } +} + +renamevar OCC9490b result +set 2dviewer 0 diff --git a/tests/bugs/xde/bug952 b/tests/bugs/xde/bug952 new file mode 100755 index 0000000000..5b07f91bfd --- /dev/null +++ b/tests/bugs/xde/bug952 @@ -0,0 +1,27 @@ +puts "=========" +puts " OCC952 " +puts "=========" +puts "" +################################################## +## Reading STEP file produces invalid shape +################################################## + +stepread [locate_data_file OCC951.stp] a * +tpcompound rrr + +###################################################################### + +file delete ${imagedir}/OCC952.brep +save rrr ${imagedir}/OCC952.brep +catch {exec chmod 777 ${imagedir}/OCC952.brep} +###################################################################### + +restore ${imagedir}/OCC952.brep result +checkshape result + +###################################################################### +file delete ${imagedir}/OCC952.brep +###################################################################### + +set 2dviewer 0 + diff --git a/tests/bugs/xde/bug9531 b/tests/bugs/xde/bug9531 new file mode 100755 index 0000000000..ea976bca28 --- /dev/null +++ b/tests/bugs/xde/bug9531 @@ -0,0 +1,110 @@ +puts "TODO OCC12345 ALL: OCC9531: Faulty" + +puts "============" +puts "OCC9531" +puts "============" +puts "" +####################################################################### +# Regression after writing-reading operation +####################################################################### + +set BugNumber OCC9531 + +set IsOk 1 +if {[catch {igesread [locate_data_file 919-001-T02-04-CP-VL.igs] OCC9531a *}]} { + puts "Faulty ${BugNumber} : here is reading problem" + set IsOk 0 +} + +file delete ${imagedir}/OCC9531tmp.igs + +if {[catch {brepiges OCC9531a ${imagedir}/OCC9531tmp.igs}]} { + puts "Faulty ${BugNumber} : here is conversation to brep problem" + set IsOk 0 +} +catch {exec chmod 777 ${imagedir}/OCC9531tmp.igs} + +if {[catch {igesread ${imagedir}/OCC9531tmp.igs OCC9531b *}]} { + puts "Faulty ${BugNumber} : here is 2nd reading problem" + set IsOk 0 +} + +if { ${IsOk} == 1} { + set aTokList {= } + set Tol1 [lindex [split [tolerance OCC9531a] ${aTokList}] 2] + set Tol2 [lindex [split [tolerance OCC9531b] ${aTokList}] 2] + set percent_max 0.1 + set Tolerance_percent [GetPercent ${Tol1} ${Tol2}] + puts "Tolerance_percent = ${Tolerance_percent} %" + if { ${Tolerance_percent} > ${percent_max} } { + set IsOk 0 + } + + set good_square 5236.89 + set good_vertex 5748 + set good_edge 5680 + set good_wire 915 + set good_face 899 + set good_shell 0 + set good_solid 0 + set good_compsolid 0 + set good_compound 1 + set good_shape 13243 + + set nb_info [nbshapes OCC9531a] + regexp {Mass +: +([-0-9.+eE]+)} [sprops OCC9531a] full sq1 + regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v1 + regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e1 + regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w1 + regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f1 + regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh1 + regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol1 + regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol1 + regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound1 + regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape1 + if {$sq1 != $good_square + || $nb_v1 != $good_vertex + || $nb_e1 != $good_edge + || $nb_w1 != $good_wire + || $nb_f1 != $good_face + || $nb_sh1 != $good_shell + || $nb_sol1 != $good_solid + || $nb_compsol1 != $good_compsolid + || $compound1 != $good_compound + || $nb_shape1 != $good_shape } { + set IsOk 0 + } + + set nb_info [nbshapes OCC9531b] + regexp {Mass +: +([-0-9.+eE]+)} [sprops OCC9531b] full sq2 + regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v2 + regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e2 + regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w2 + regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f2 + regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh2 + regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol2 + regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol2 + regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound2 + regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape2 + if {$sq2 != $good_square + || $nb_v2 != $good_vertex + || $nb_e2 != $good_edge + || $nb_w2 != $good_wire + || $nb_f2 != $good_face + || $nb_sh2 != $good_shell + || $nb_sol2 != $good_solid + || $nb_compsol2 != $good_compsolid + || $compound2 != $good_compound + || $nb_shape2 != $good_shape } { + set IsOk 0 + } + + if { ${IsOk} == 0 } { + puts "${BugNumber}: Faulty" + } else { + puts "${BugNumber}: OK" + } +} + +renamevar OCC9531b result +set 2dviewer 0 diff --git a/tests/bugs/xde/bug966 b/tests/bugs/xde/bug966 new file mode 100755 index 0000000000..105209b1ce --- /dev/null +++ b/tests/bugs/xde/bug966 @@ -0,0 +1,26 @@ +puts "TODO OCC12345 ALL: Faulty OCC966 : Tolerance of shape is more than 0.000176" + +puts "=========" +puts " OCC966 " +puts "=========" +puts "" +############################################### +##file cylinders.brep. It is increasing tolerance from 0.000176 to 51.1 +############################################### + +restore [locate_data_file OCC966.brep] a + +DT_ShapeConvertRev result a 0 1 + +set tolerance [maxtolerance result] +regexp { +Face +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxFaceTolerance +regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxEdgeTolerance +regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxVertexTolerance + +if { $MaxFaceTolerance > 0.000176 || $MaxEdgeTolerance > 0.000176 || $MaxVertexTolerance > 0.000176 } { + puts "Faulty OCC966 : Tolerance of shape is more than 0.000176" +} + + +set 2dviewer 0 +