Adding new testing cases for chl grid
authorapn <apn@opencascade.com>
Fri, 14 Dec 2012 12:56:11 +0000 (16:56 +0400)
committerapn <apn@opencascade.com>
Fri, 14 Dec 2012 12:56:11 +0000 (16:56 +0400)
Adding procedures checkcolor and checkpoint.
Modified test cases which are used QAGetPixelColor or QAAISGetPixelColor2d
Allow using command QAAISGetPixelColor2d on WNT
Rename test case tests/bugs/vis/bug19619 to pro19619
Added test cases to modalg and moddata

162 files changed:
src/QADraw/QADraw.cxx
tests/bugs/begin
tests/bugs/demo/bug23410 [changed mode: 0644->0755]
tests/bugs/modalg/buc60663_2
tests/bugs/modalg/buc60690
tests/bugs/modalg/buc60827
tests/bugs/modalg/bug1013 [new file with mode: 0755]
tests/bugs/modalg/bug144
tests/bugs/modalg/bug238_1
tests/bugs/modalg/bug238_2
tests/bugs/modalg/bug322
tests/bugs/modalg/bug397
tests/bugs/modalg/bug398 [new file with mode: 0755]
tests/bugs/modalg/bug418_1 [new file with mode: 0755]
tests/bugs/modalg/bug418_2 [new file with mode: 0755]
tests/bugs/modalg/bug419 [new file with mode: 0755]
tests/bugs/modalg/bug420 [new file with mode: 0755]
tests/bugs/modalg/bug421 [new file with mode: 0755]
tests/bugs/modalg/bug422_1 [new file with mode: 0755]
tests/bugs/modalg/bug422_2 [new file with mode: 0755]
tests/bugs/modalg/bug423_1 [new file with mode: 0755]
tests/bugs/modalg/bug423_2 [new file with mode: 0755]
tests/bugs/modalg/bug424_1 [new file with mode: 0755]
tests/bugs/modalg/bug424_2 [new file with mode: 0755]
tests/bugs/modalg/bug427_1 [new file with mode: 0755]
tests/bugs/modalg/bug427_2 [new file with mode: 0755]
tests/bugs/modalg/bug427_3 [new file with mode: 0755]
tests/bugs/modalg/bug427_4 [new file with mode: 0755]
tests/bugs/modalg/bug427_5 [new file with mode: 0755]
tests/bugs/modalg/bug427_6 [new file with mode: 0755]
tests/bugs/modalg/bug516 [new file with mode: 0755]
tests/bugs/modalg/bug539_1 [new file with mode: 0755]
tests/bugs/modalg/bug539_2 [new file with mode: 0755]
tests/bugs/modalg/bug571_1 [new file with mode: 0755]
tests/bugs/modalg/bug571_2 [new file with mode: 0755]
tests/bugs/modalg/bug594 [new file with mode: 0755]
tests/bugs/modalg/bug600 [new file with mode: 0755]
tests/bugs/modalg/bug602 [new file with mode: 0755]
tests/bugs/modalg/bug605 [new file with mode: 0755]
tests/bugs/modalg/bug615 [new file with mode: 0755]
tests/bugs/modalg/bug616 [new file with mode: 0755]
tests/bugs/modalg/bug620_1 [new file with mode: 0755]
tests/bugs/modalg/bug620_2 [new file with mode: 0755]
tests/bugs/modalg/bug625 [new file with mode: 0755]
tests/bugs/modalg/bug629 [new file with mode: 0755]
tests/bugs/modalg/bug636 [new file with mode: 0755]
tests/bugs/modalg/bug637_1 [new file with mode: 0755]
tests/bugs/modalg/bug637_2 [new file with mode: 0755]
tests/bugs/modalg/bug673 [new file with mode: 0755]
tests/bugs/modalg/bug693 [new file with mode: 0755]
tests/bugs/modalg/bug697_1 [new file with mode: 0755]
tests/bugs/modalg/bug697_2 [new file with mode: 0755]
tests/bugs/modalg/bug698 [new file with mode: 0755]
tests/bugs/modalg/bug702 [new file with mode: 0755]
tests/bugs/modalg/bug712_1 [new file with mode: 0755]
tests/bugs/modalg/bug714 [new file with mode: 0755]
tests/bugs/modalg/bug715 [new file with mode: 0755]
tests/bugs/modalg/bug726_1 [new file with mode: 0755]
tests/bugs/modalg/bug726_2 [new file with mode: 0755]
tests/bugs/modalg/bug743 [new file with mode: 0755]
tests/bugs/modalg/bug745_1 [new file with mode: 0755]
tests/bugs/modalg/bug745_10 [new file with mode: 0755]
tests/bugs/modalg/bug745_11 [new file with mode: 0755]
tests/bugs/modalg/bug745_12 [new file with mode: 0755]
tests/bugs/modalg/bug745_2 [new file with mode: 0755]
tests/bugs/modalg/bug745_4 [new file with mode: 0755]
tests/bugs/modalg/bug745_6 [new file with mode: 0755]
tests/bugs/modalg/bug745_7 [new file with mode: 0755]
tests/bugs/modalg/bug745_8 [new file with mode: 0755]
tests/bugs/modalg/bug745_9 [new file with mode: 0755]
tests/bugs/modalg/bug748 [new file with mode: 0755]
tests/bugs/modalg/bug755_1 [new file with mode: 0755]
tests/bugs/modalg/bug758 [new file with mode: 0755]
tests/bugs/modalg/bug763 [new file with mode: 0755]
tests/bugs/modalg/bug767 [new file with mode: 0755]
tests/bugs/modalg/bug770 [new file with mode: 0755]
tests/bugs/modalg/bug771 [new file with mode: 0755]
tests/bugs/modalg/bug772 [new file with mode: 0755]
tests/bugs/modalg/bug774_1 [new file with mode: 0755]
tests/bugs/modalg/bug774_2 [new file with mode: 0755]
tests/bugs/modalg/bug775 [new file with mode: 0755]
tests/bugs/modalg/bug776_1 [new file with mode: 0755]
tests/bugs/modalg/bug776_2 [new file with mode: 0755]
tests/bugs/modalg/bug778_1 [new file with mode: 0755]
tests/bugs/modalg/bug778_2 [new file with mode: 0755]
tests/bugs/modalg/bug779 [new file with mode: 0755]
tests/bugs/modalg/bug780_1 [new file with mode: 0755]
tests/bugs/modalg/bug780_2 [new file with mode: 0755]
tests/bugs/modalg/bug788_1 [new file with mode: 0755]
tests/bugs/modalg/bug788_2 [new file with mode: 0755]
tests/bugs/modalg/bug789 [new file with mode: 0755]
tests/bugs/modalg/bug794 [new file with mode: 0755]
tests/bugs/modalg/bug822_1 [new file with mode: 0755]
tests/bugs/modalg/bug822_2 [new file with mode: 0755]
tests/bugs/modalg/bug823 [new file with mode: 0755]
tests/bugs/modalg/bug823_1 [new file with mode: 0755]
tests/bugs/modalg/bug824 [new file with mode: 0755]
tests/bugs/modalg/bug824_1 [new file with mode: 0755]
tests/bugs/modalg/bug825 [new file with mode: 0755]
tests/bugs/modalg/bug825_1 [new file with mode: 0755]
tests/bugs/modalg/bug825_2 [new file with mode: 0755]
tests/bugs/modalg/bug826 [new file with mode: 0755]
tests/bugs/modalg/bug826_1 [new file with mode: 0755]
tests/bugs/modalg/bug827 [new file with mode: 0755]
tests/bugs/modalg/bug827_1 [new file with mode: 0755]
tests/bugs/modalg/bug827_2 [new file with mode: 0755]
tests/bugs/modalg/bug828 [new file with mode: 0755]
tests/bugs/modalg/bug829_1 [new file with mode: 0755]
tests/bugs/modalg/bug829_2 [new file with mode: 0755]
tests/bugs/modalg/bug890 [new file with mode: 0755]
tests/bugs/modalg/bug895 [new file with mode: 0755]
tests/bugs/modalg/bug910 [new file with mode: 0755]
tests/bugs/modalg/bug919 [new file with mode: 0755]
tests/bugs/modalg/bug957 [new file with mode: 0755]
tests/bugs/modalg/dxf906 [new file with mode: 0755]
tests/bugs/modalg/pro18892 [changed mode: 0644->0755]
tests/bugs/moddata/bug566 [new file with mode: 0755]
tests/bugs/moddata/bug592 [new file with mode: 0755]
tests/bugs/moddata/bug618 [new file with mode: 0755]
tests/bugs/moddata/bug705 [new file with mode: 0755]
tests/bugs/moddata/bug712_2 [new file with mode: 0755]
tests/bugs/vis/bug112
tests/bugs/vis/bug112_1
tests/bugs/vis/bug128
tests/bugs/vis/bug136
tests/bugs/vis/bug138_1
tests/bugs/vis/bug146
tests/bugs/vis/bug153
tests/bugs/vis/bug154_1
tests/bugs/vis/bug154_2
tests/bugs/vis/bug155_1
tests/bugs/vis/bug155_2
tests/bugs/vis/bug155_3
tests/bugs/vis/bug173_1
tests/bugs/vis/bug185
tests/bugs/vis/bug193
tests/bugs/vis/bug194_1
tests/bugs/vis/bug194_2
tests/bugs/vis/bug195
tests/bugs/vis/bug196
tests/bugs/vis/bug197_1
tests/bugs/vis/bug197_2
tests/bugs/vis/bug204_1
tests/bugs/vis/bug204_2
tests/bugs/vis/bug215
tests/bugs/vis/bug218
tests/bugs/vis/bug224
tests/bugs/vis/bug225
tests/bugs/vis/bug23120
tests/bugs/vis/bug23407_1 [changed mode: 0644->0755]
tests/bugs/vis/bug23407_2 [changed mode: 0644->0755]
tests/bugs/vis/bug23425 [changed mode: 0644->0755]
tests/bugs/vis/bug280_2
tests/bugs/vis/bug280_3
tests/bugs/vis/bug288_1
tests/bugs/vis/bug288_2
tests/bugs/vis/bug344
tests/bugs/vis/bug64
tests/bugs/vis/bug85_1
tests/bugs/vis/bug85_2
tests/bugs/vis/pro19619 [moved from tests/bugs/vis/bug19619 with 100% similarity]
tests/bugs/xde/bug23193

index dd2f4c5..9a8b6a2 100755 (executable)
@@ -851,7 +851,7 @@ static int V2dSetHighlightMode (Draw_Interpretor& di, Standard_Integer argc, con
   return 0;
 }
 
-#ifndef WNT
+//#ifndef WNT
 //==============================================================================
 //function : QAAISGetPixelColor2d
 //purpose  : QAAISGetPixelColor2d coord_X coord_Y Red Green Blue
@@ -935,7 +935,7 @@ static int QAAISGetPixelColor2d (Draw_Interpretor& di, Standard_Integer argc, co
   }
   return 0;
 }
-#endif // !WNT
+//#endif // !WNT
 
 //==============================================================================
 //function : QAMoveTo2d
@@ -2240,11 +2240,11 @@ void QADraw::CommonCommands(Draw_Interpretor& theCommands)
   theCommands.Add("QAGetViewCharac", "QAGetViewCharac", __FILE__,QAAISGetViewCharac, group);
   theCommands.Add("QASetViewCharac", "QASetViewCharac scale center_X center_Y proj_X proj_Y proj_Z up_X up_Y up_Z at_X at_Y at_Z", __FILE__,QAAISSetViewCharac, group);
   theCommands.Add("QAGetColorCoord", "QAGetColorCoord [3d|2d]", __FILE__,QAAISGetColorCoord, group);
-#ifndef WNT
+//#ifndef WNT
   theCommands.Add("QAAISGetPixelColor2d",
                   "QAAISGetPixelColor2d coord_X coord_Y [Red Green Blue] : Check a color of pixel",
                   __FILE__, QAAISGetPixelColor2d, group);
-#endif
+//#endif
 
   theCommands.Add("v2dgetgrid",
                  "v2dgetgrid coord_X coord_Y [grid_X grid_Y] : Get/print coordinates of a grid point near to (coord_X, coord_Y)",
index aac6c0d..c9605c5 100755 (executable)
@@ -35,6 +35,143 @@ proc checkreal {name value expected tol_abs tol_rel} {
     return
 }
 
+
+
+# Procedure to check color in the point near default coordinate
+
+proc checkpoint {coord_x coord_y rd_ch gr_ch bl_ch} {
+    set x_start [expr ${coord_x} - 2]
+    set y_start [expr ${coord_y} - 2]
+    set mistake 0
+    set i 0
+    while { $mistake != 1 && $i <= 5 } {
+       set j 0
+       while { $mistake != 1 && $j <= 5 } {
+           set position_x [expr ${x_start} + $j]
+           set position_y [expr ${y_start} + $i]
+           puts $position_x
+           puts $position_y
+           global color2d
+           if { [info exists color2d] } {
+               set color [ QAAISGetPixelColor2d ${position_x} ${position_y} ]
+           } else {
+               set color [ QAGetPixelColor ${position_x} ${position_y} ]
+           }
+           regexp {RED +: +([-0-9.+eE]+)} $color full rd
+           regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
+           regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+           set rd_int [expr int($rd * 1.e+05)]
+           set gr_int [expr int($gr * 1.e+05)]
+           set bl_int [expr int($bl * 1.e+05)]
+           
+           if { $rd_ch != 0 } {
+               set tol_rd [expr abs($rd_ch - $rd_int)/$rd_ch]
+           } else {
+               set tol_rd $rd_int
+           }
+           if { $gr_ch != 0 } {
+               set tol_gr [expr abs($gr_ch - $gr_int)/$gr_ch]
+           } else {
+               set tol_gr $gr_int
+           }
+           if { $bl_ch != 0 } {
+               set tol_bl [expr abs($bl_ch - $bl_int)/$bl_ch]
+           } else {
+               set tol_bl $bl_int
+           }
+
+           if { $tol_rd > 0.2 || $tol_gr > 0.2 || $tol_bl > 0.2 } {
+               puts "Warning : Point with true color was not found near default coordinates"
+               set mistake 0
+           } else {
+               set mistake 1
+           }
+           incr j
+       }
+       incr i
+    }
+    return $mistake
+}
+
+# Procedure to check color using command QAgetPixelColor with tolerance
+proc checkcolor { coord_x coord_y rd_get gr_get bl_get } {
+    puts "Coordinate x = $coord_x"
+    puts "Coordinate y = $coord_y"
+    puts "RED color of RGB is $rd_get"
+    puts "GREEN color of RGB is $gr_get"
+    puts "BLUE color of RGB is $bl_get"
+    
+    if { $coord_x <= 1 || $coord_y <= 1 } {
+       puts "Error : minimal coordinate is x = 2, y = 2. But we have x = $coord_x y = $coord_y"
+       return -1
+    }
+    global color2d
+       if { [info exists color2d] } {
+           set color [ QAAISGetPixelColor2d ${coord_x} ${coord_y} ]
+       } else {
+           set color [ QAGetPixelColor ${coord_x} ${coord_y} ]
+       }
+
+    regexp {RED +: +([-0-9.+eE]+)} $color full rd
+    regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
+    regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+    set rd_int [expr int($rd * 1.e+05)]
+    set gr_int [expr int($gr * 1.e+05)]
+    set bl_int [expr int($bl * 1.e+05)]
+    set rd_ch [expr int($rd_get * 1.e+05)]
+    set gr_ch [expr int($gr_get * 1.e+05)]
+    set bl_ch [expr int($bl_get * 1.e+05)]
+    
+    if { $rd_ch != 0 } {
+       set tol_rd [expr abs($rd_ch - $rd_int)/$rd_ch]
+    } else {
+       set tol_rd $rd_int
+    }
+    if { $gr_ch != 0 } {
+       set tol_gr [expr abs($gr_ch - $gr_int)/$gr_ch]
+    } else {
+       set tol_gr $gr_int
+    }
+    if { $bl_ch != 0 } {
+       set tol_bl [expr abs($bl_ch - $bl_int)/$bl_ch]
+    } else {
+       set tol_bl $bl_int
+    }
+    set status 0
+    if { $tol_rd > 0.2 } {
+       puts "Warning : RED light of additive color model RGB is invalid"
+       set status 1
+    }
+    if { $tol_gr > 0.2 } {
+       puts "Warning : GREEN light of additive color model RGB is invalid"
+       set status 1
+    }
+    if { $tol_bl > 0.2 } {
+       puts "Warning : BLUE light of additive color model RGB is invalid"
+       set status 1
+    }
+
+    if { $status != 0 } {
+       puts "Warning : Colors of default coordinate are not equal"
+    }
+
+    global stat
+    if { $tol_rd > 0.2 || $tol_gr > 0.2 || $tol_bl > 0.2 } {
+       set info [checkpoint $coord_x $coord_y $rd_ch $gr_ch $bl_ch]
+       set stat [lindex $info end]
+       if { ${stat} != 1 } {
+           puts "Error : Colors are not equal in default coordinate and in the near coordinates too"
+           return $stat
+       } else {
+           puts "Point with valid color was found"
+           return $stat
+       }
+    } else {
+       set stat 1
+    }
+}
+
+
 # Procedure to check if sequence of values in listval follows linear trend
 # adding the same delta on each step.
 #
old mode 100644 (file)
new mode 100755 (executable)
index 2a4b9ec..87393c8
@@ -7,52 +7,21 @@ puts ""
 #######################################################################
 pload QAcommands
 
-set r_1 0.4
-set r_2 0.5
-set g_1 0.9
-set g_2 1
-set b_1 0
-set b_2 0.1
-set x1 128
-set y1 235
+set x_coord 128
+set y_coord 235
+
 box result 100 100 100
 vdisplay result
 vsetdispmode 1
 vfit
 vsetcolor result GREEN
-set color [ QAGetPixelColor ${x1} ${y1} ]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-
-set red_status 0
-if { $rd < $r_1 || $rd > $r_2 } {
-    set red_status 1
-} else {
-    set red_status 0
-}
-
-set green_status 0
-if { $gr < $g_1 || $gr > $g_2 } {
-    set green_status 1
-} else {
-    set green_status 0
-}
-
-set blue_status 0
-if { $bl < $b_1 || $bl > $b_2 } {
-    set blue_status 1
-} else {
-    set blue_status 0
-}
-
-if { $red_status != 0 || $green_status != 0 || $blue_status != 0 } {
-    puts "Error : color are not equal"
-    puts "Error : QA command QAGetPixelColor doesn't work properly"
-}
+
+checkcolor $x_coord $y_coord 0.45 0.95 0.05
+
 set 3dviewer 1
 
 
 
 
 
+
index 1a075ed..e6a0c9c 100755 (executable)
@@ -23,7 +23,7 @@ explode b e
 explode b_4 v
 distmini d $ver b_5
 
-regexp {([-0-9.+eE]+)} [dump d_val] full dist
+regexp {([-0-9.+eE]+)$} [dump d_val] full dist
 regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [maxtolerance $ver] full toler
 
 if {$dist > $toler} {
index c14362b..66b2144 100755 (executable)
@@ -30,13 +30,13 @@ if { [regexp {Faulty} $che ] == 1 } {
        distmini d1 result_1 b
        distmini d2 [lindex $le [expr [llength $le] - 1]] b
        
-       regexp {([-0-9.+eE]+)} [dump d1_val] full du1
+       regexp {([-0-9.+eE]+)$} [dump d1_val] full du1
        
        if { [expr $du1 > 1e-7] } {
            puts "Faulty : The distance between first vertex and shellB is $du1. It is more then 1e-7."
        }
        
-       regexp {([-0-9.+eE]+)} [dump d2_val] full du2
+       regexp {([-0-9.+eE]+)$} [dump d2_val] full du2
        if { [expr $du2 > 1e-7] } {
            puts "Faulty : The distance between last vertex and shellB is $du2. It is more then 1e-7."
        }
index ac9e510..9776b36 100755 (executable)
@@ -34,12 +34,12 @@ if { [regexp {Faulty} $che ] == 1 } {
            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
+           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
+               regexp {([-0-9.+eE]+)$} [dump d2_val] full len2
                 if ([expr $len2 > 1e-7]) {
                    puts "Faulty :The section is incomplite."
                }
diff --git a/tests/bugs/modalg/bug1013 b/tests/bugs/modalg/bug1013
new file mode 100755 (executable)
index 0000000..2314bb5
--- /dev/null
@@ -0,0 +1,13 @@
+puts "================"
+puts "OCC1013"
+puts "OCC906"
+puts "================"
+puts ""
+
+restore [locate_data_file DXF906.rle] wire 
+puts [checkshape wire]
+
+mkplane result wire
+
+set square 92131.6
+set 2dviewer 0
index d58e863..0c52163 100755 (executable)
@@ -22,7 +22,7 @@ explode b e
 explode b_4 v
 distmini d $ver b_5
 
-regexp {([-0-9.+eE]+)} [dump d_val] full dist
+regexp {([-0-9.+eE]+)$} [dump d_val] full dist
 regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [ maxtolerance $ver ] full toler
 
 if { [expr $dist > $toler] } {
index a972612..fd49fe8 100755 (executable)
@@ -20,7 +20,7 @@ set nb_e_good 7
 explode result v
 explode a e
 distmini di result_1 a_3 
-regexp {([-0-9.+eE]+)} [dump $di_val] full dis
+regexp {([-0-9.+eE]+)$} [dump $di_val] full dis
 if { [expr $dis > 1.e-5] } {
     puts "Faulty : Result shape is WRONG !!!" 
 } else {
index 8118745..bb1f062 100755 (executable)
@@ -20,7 +20,7 @@ set nb_e_good 7
 explode result v
 explode a e
 distmini di result_2 a_3 
-regexp {([-0-9.+eE]+)} [dump $di_val] full dis
+regexp {([-0-9.+eE]+)$} [dump $di_val] full dis
 if { [expr $dis > 1.e-5] } {
     puts "Faulty : Result shape is WRONG !!!" 
 } else {
index acc4752..ac66c96 100755 (executable)
@@ -14,18 +14,15 @@ vinit
 vdisplay result
 vfit
 
-set Yellow_R 1
-set Yellow_G 1
-set Yellow_B 0
+set x_coord 204
+set y_coord 297
 
-set x1 204
-set y1 297
+checkcolor $x_coord $y_coord 1 1 0
 
-set x2 251
-set y2 232
+set x_coord 251
+set y_coord 232
 
-QAGetPixelColor $x1 $y1 $Yellow_R $Yellow_G $Yellow_B
-QAGetPixelColor $x2 $y2 $Yellow_R $Yellow_G $Yellow_B
+checkcolor $x_coord $y_coord 1 1 0
 
 set square 20000
 set only_screen 1
index 8328ceb..1e1f65b 100755 (executable)
@@ -4,19 +4,6 @@ puts "========================"
 
 pload QAcommands
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set rd_ch 50196
-   set gr_ch 34901
-   set bl_ch 5098
-} else {
-   set rd_ch 50588
-   set gr_ch 34901
-   set bl_ch 5098
-}
-
 restore [locate_data_file OCC397.brep] a 
 puts [checkshape a]
 
@@ -29,17 +16,12 @@ vdisplay result
 vfit
 vsetdispmode result 1
 
-set color [QAGetPixelColor 235 180]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 235
+set y_coord 180
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.5 0.35 0.05
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { ${stat} != 1 } {
     puts "Error : Shading is missing in 3D Viewer"
 }
 
diff --git a/tests/bugs/modalg/bug398 b/tests/bugs/modalg/bug398
new file mode 100755 (executable)
index 0000000..0378b70
--- /dev/null
@@ -0,0 +1,37 @@
+#INTERFACE IGES
+puts "========"
+puts "OCC398"
+puts "========"
+puts ""
+#############################################################
+## ShapeHealing modification 1:1 increases number of unique shapes in compound structure.
+#############################################################
+
+pload XDE
+catch { source $env(CSF_DrawPluginQADefaults)/QARebuildCommands }
+
+restore [locate_data_file OCC398.brep] a 
+#statsh a
+#nbshapes a
+#Statshape should give 3 solids
+#Nbshape should return 1 solid
+
+scaleshape result a 10
+
+#statsh res
+
+
+set nb_info [nbshapes result]
+set nb_sol_good 1
+
+#if { $sol == 1 } {
+#    puts  " OCC398 : scaleshape operation was made properly"
+#} else {
+#    puts "Faulty OCC398: scaleshape operation was made wrongly"
+#}
+
+#Statshape should give 3 solids
+#Nbshape should return 1 solid (3 solids is returned if bug not fixed)
+
+set square 180000.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug418_1 b/tests/bugs/modalg/bug418_1
new file mode 100755 (executable)
index 0000000..f9aef02
--- /dev/null
@@ -0,0 +1,22 @@
+
+puts "========================"
+puts " OCC418 "
+puts "CTS20370"
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO904_cts20370-part.rle] part 
+puts [checkshape part]
+
+restore [locate_data_file cts20370-tool.rle] tool 
+puts [checkshape tool]
+
+bsection sec part tool
+puts [checkshape -top sec]
+
+bcut result part tool
+puts [checkshape -top result]
+
+set square 273365.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug418_2 b/tests/bugs/modalg/bug418_2
new file mode 100755 (executable)
index 0000000..67c9b34
--- /dev/null
@@ -0,0 +1,22 @@
+
+puts "========================"
+puts " OCC418 "
+puts "CTS20370"
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO904_cts20370-part.rle] a 
+puts [checkshape a]
+
+restore [locate_data_file cts20370-tool.rle] b 
+puts [checkshape b]
+
+bsection sec a b
+
+bfuse result a b
+puts [checkshape -top result]
+
+set square 261265.
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug419 b/tests/bugs/modalg/bug419
new file mode 100755 (executable)
index 0000000..6952e27
--- /dev/null
@@ -0,0 +1,22 @@
+# Original bug : 
+
+puts "========================"
+puts " OCC419 "
+puts "FRA50047"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO904_fra50047a.rle] a 
+puts [checkshape a]
+
+restore [locate_data_file fra50047b.rle] b 
+puts [checkshape b]
+
+bsection sec a b
+puts [checkshape -top sec]
+
+bfuse result a b
+puts [checkshape -top result]
+
+set square 508496.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug420 b/tests/bugs/modalg/bug420
new file mode 100755 (executable)
index 0000000..de8f7e5
--- /dev/null
@@ -0,0 +1,25 @@
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========================"
+puts " OCC420 "
+puts "PRO12473"
+puts "========================"
+puts ""
+
+restore [locate_data_file CTO909_objects.brep] a 
+puts [checkshape a]
+
+restore [locate_data_file CTO909_tool_4.brep] b 
+puts [checkshape b]
+
+bsection sec a b
+puts [checksection sec]
+puts [checkshape sec]
+explode a so
+renamevar a_1 a
+
+bcut result a b
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug421 b/tests/bugs/modalg/bug421
new file mode 100755 (executable)
index 0000000..b8be0ec
--- /dev/null
@@ -0,0 +1,18 @@
+
+puts "========================"
+puts " OCC421 "
+puts "========================"
+puts ""
+
+profile p c 5 180 l 5 t 0 5 d -1 0 c 5 180 l 5
+polyline w 0 0 0 0 0 10
+pipe p w p
+nexplode p f
+
+depouille result p 0 0 1 p_1 5 0 0 0 0 0 1 \
+p_7 1 0 0 0 0 0 1 \
+p_8 5 0 0 0 0 0 1 \
+p_2 1 0 0 0 0 0 1
+
+set square 659.647
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug422_1 b/tests/bugs/modalg/bug422_1
new file mode 100755 (executable)
index 0000000..e7cb936
--- /dev/null
@@ -0,0 +1,19 @@
+
+puts "========================"
+puts " OCC422 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+plane p 0 0 0 0 0 1 -1 0 0
+psphere p p 20 0 90
+#profile pf o -4 -4 1 l 8 d 0 1 l 8 d -1 0 l 8
+profile pf o -4 -4 1 l 8 c 2 90 l 8 d -1 0 l 8
+prism p2 pf 0 0 40
+bfuse f p p2
+nexplode f f
+
+depouille result f 0 0 1 f_7 5 0 0 40 0 0 1
+
+set square 4630.78
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug422_2 b/tests/bugs/modalg/bug422_2
new file mode 100755 (executable)
index 0000000..f5a2308
--- /dev/null
@@ -0,0 +1,19 @@
+
+puts "========================"
+puts " OCC422 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+plane ps 10 -3 0  1 0 0  0 .2 1
+psphere ps ps 20
+profile pf o 5 1 5 l 10 c 2 90 l 5 d -1 0 \
+l 14 d 0 -1 l 5 c 2 90
+prism pr pf 0 0 30
+bfuse f ps pr
+nexplode f f
+
+depouille result f 0 0 1 f_4 4 0 0 30 0 0 1
+
+set square 5719.09
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug423_1 b/tests/bugs/modalg/bug423_1
new file mode 100755 (executable)
index 0000000..ff302a5
--- /dev/null
@@ -0,0 +1,27 @@
+
+puts "========================"
+puts " OCC423 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file cylindre.rle] cyl 
+puts [checkshape cyl]
+
+restore [locate_data_file contour.rle] cont 
+puts [checkshape cont]
+
+mkplane cont cont
+nexplode cyl F
+
+ttranslate cont 0 200 0
+featdprism cyl cont cont 10 1 1
+
+if [catch {featperformval dprism result 55 cyl_3 } catch_result] {
+    puts "Faulty OCC423 (case 1): function FEATPERFORMVAL works wrongly"
+} else {
+    puts "OCC423 OK (case 1): function FEATPERFORMVAL works properly"
+}
+
+set square 94944.4
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug423_2 b/tests/bugs/modalg/bug423_2
new file mode 100755 (executable)
index 0000000..a60ae42
--- /dev/null
@@ -0,0 +1,23 @@
+
+puts "========================"
+puts " OCC423 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file pro15515_base.rle] base 
+puts [checkshape base]
+
+restore [locate_data_file pro15515_face.rle] cont 
+puts [checkshape cont]
+
+explode base face
+copy base_4 ffrom
+copy base_3 funtil
+
+### From Until
+featrevol base cont cont 54.06494140625 70.2841796875 0 0 0 1 1 1
+featperform revol result funtil ffrom
+
+set square 560028.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug424_1 b/tests/bugs/modalg/bug424_1
new file mode 100755 (executable)
index 0000000..81ed440
--- /dev/null
@@ -0,0 +1,21 @@
+
+puts "========================"
+puts " OCC424 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CFE_e_lonfzx.rle] E 
+nexplode E f
+
+profile cont S E_10 F 50 -100 X 50 Y -100 X -50
+featdprism E cont E_10 10 1 1
+
+if [catch {featperform dprism result E_5 E_6 } catch_result] {
+    puts "Faulty OCC424 (case 1): function FEATPERFORM works wrongly"
+} else {
+    puts "OCC424 OK (case 1): function FEATPERFORM works properly"
+}
+
+set square 978236.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug424_2 b/tests/bugs/modalg/bug424_2
new file mode 100755 (executable)
index 0000000..4c46214
--- /dev/null
@@ -0,0 +1,21 @@
+
+puts "========================"
+puts " OCC424 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+restore [locate_data_file CFE_e_lonfzx.rle] E 
+nexplode E f
+
+profile cont S E_10 F 50 -100 X 50 Y -100 X -50
+featdprism E cont E_10 10 1 1
+
+if [catch {featperform dprism result } catch_result] {
+    puts "Faulty OCC424 (case 2): function FEATPERFORM works wrongly"
+} else {
+    puts "OCC424 OK (case 2): function FEATPERFORM works properly"
+}
+
+set square 978236.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug427_1 b/tests/bugs/modalg/bug427_1
new file mode 100755 (executable)
index 0000000..3366b36
--- /dev/null
@@ -0,0 +1,26 @@
+
+puts "========="
+puts " OCC427 "
+puts "(case 1)"
+puts "========="
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces  calcul type} {
+        uplevel #0 explode s f
+        uplevel #0 offsetparameter 1e-7 $calcul $type
+        uplevel #0 offsetload s $distance $faces
+        uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+pcone s 9 4 15 90
+trotate s 0 0 0 0 0 1 90
+
+OFFSETSHAPE 1 {} $calcul $type
+
+set square 671.382
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug427_2 b/tests/bugs/modalg/bug427_2
new file mode 100755 (executable)
index 0000000..785a8dd
--- /dev/null
@@ -0,0 +1,26 @@
+
+puts "========================"
+puts " OCC427 "
+puts "(case 2)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces  calcul type} {
+        uplevel #0 explode s f
+        uplevel #0 offsetparameter 1e-7 $calcul $type
+        uplevel #0 offsetload s $distance $faces
+        uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+pcone s 9 4 15 90
+trotate s 0 0 0 0 0 1 90
+
+OFFSETSHAPE 1 {s_5} $calcul $type
+
+set square 858.167
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug427_3 b/tests/bugs/modalg/bug427_3
new file mode 100755 (executable)
index 0000000..e260fb5
--- /dev/null
@@ -0,0 +1,26 @@
+
+puts "========================"
+puts " OCC427 "
+puts "(case 3)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces  calcul type} {
+        uplevel #0 explode s f
+        uplevel #0 offsetparameter 1e-7 $calcul $type
+        uplevel #0 offsetload s $distance $faces
+        uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+pcone s 9 4 15 90
+trotate s 0 0 0 0 0 1 90
+
+OFFSETSHAPE 1 {s_2 s_3} $calcul $type
+
+set square 885.688
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug427_4 b/tests/bugs/modalg/bug427_4
new file mode 100755 (executable)
index 0000000..010e2aa
--- /dev/null
@@ -0,0 +1,30 @@
+
+puts "========================"
+puts " OCC427 "
+puts "(case 4)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces  calcul type} {
+        uplevel #0 explode s f
+        uplevel #0 offsetparameter 1e-7 $calcul $type
+        uplevel #0 offsetload s $distance $faces
+        uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+circle w -20 0 0 20
+mkedge w w 0 pi*2/5
+wire w w
+polyline profile 0 0 0  10 0 0  5 0 5  0 0 0
+mkplane profile profile
+pipe s w profile
+
+OFFSETSHAPE 1 {} $calcul $type
+
+set square 1306.3
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug427_5 b/tests/bugs/modalg/bug427_5
new file mode 100755 (executable)
index 0000000..d469afa
--- /dev/null
@@ -0,0 +1,30 @@
+
+puts "========================"
+puts " OCC427 "
+puts "(case 5)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces  calcul type} {
+        uplevel #0 explode s f
+        uplevel #0 offsetparameter 1e-7 $calcul $type
+        uplevel #0 offsetload s $distance $faces
+        uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+circle w -20 0 0 20
+mkedge w w 0 pi*2/5
+wire w w
+polyline profile 0 0 0  10 0 0  5 0 5  0 0 0
+mkplane profile profile
+pipe s w profile
+
+OFFSETSHAPE 1 {s_2} $calcul $type
+
+set square 1297.39
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug427_6 b/tests/bugs/modalg/bug427_6
new file mode 100755 (executable)
index 0000000..5065de9
--- /dev/null
@@ -0,0 +1,30 @@
+
+puts "========================"
+puts " OCC427 "
+puts "(case 6)"
+puts "========================"
+puts ""
+cpulimit 1200
+proc OFFSETSHAPE {distance faces  calcul type} {
+        uplevel #0 explode s f
+        uplevel #0 offsetparameter 1e-7 $calcul $type
+        uplevel #0 offsetload s $distance $faces
+        uplevel #0 offsetperform result
+}
+
+#Shell no rough and rounded mode
+
+set calcul "c"
+set type "i"
+
+circle w -20 0 0 20
+mkedge w w 0 pi*2/5
+wire w w
+polyline profile 0 0 0  10 0 0  5 0 5  0 0 0
+mkplane profile profile
+pipe s w profile
+
+OFFSETSHAPE 1 {s_4 s_5} $calcul $type
+
+set square 808.448
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug516 b/tests/bugs/modalg/bug516
new file mode 100755 (executable)
index 0000000..a260ef0
--- /dev/null
@@ -0,0 +1,23 @@
+
+puts "========"
+puts "OCC516"
+puts "========"
+puts ""
+#########################################
+## Wrong classification of the 3D-point with the Solid .
+#########################################
+
+point  p 14.99999878745701 5.52319672860377e-07 7.78393041
+vertex v 14.99999878745701 5.52319672860377e-07 7.78393041
+restore [locate_data_file OCC516.brep] result
+
+set cls [bclassify result p]
+
+if { [regexp {OUT} $cls] } {
+    puts "Faulty : Wrong classification of the 3D-point with the Solid"
+} else {
+    puts "CORRECT classification of the 3D-point with the Solid"
+}
+
+set square 7752.98
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug539_1 b/tests/bugs/modalg/bug539_1
new file mode 100755 (executable)
index 0000000..17d2f24
--- /dev/null
@@ -0,0 +1,21 @@
+
+puts "========================"
+puts " OCC539 "
+puts "(case 1)"
+puts "========================"
+puts ""
+
+ puts "==========================================="
+ puts "  BOPCOMMON   case_4_shell.brep and case_4_wire3.brep"
+ puts "==========================================="
+ puts " " 
+ puts [restore [locate_data_file case_4_shell.brep] a] 
+ puts [restore [locate_data_file case_4_wire3.brep] b] 
+ puts [bop a b]
+ puts [bopcommon result]
+set nb_info [nbshapes result]
+set nb_v_good 15
+set nb_e_good 10
+
+set length 1150.78
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug539_2 b/tests/bugs/modalg/bug539_2
new file mode 100755 (executable)
index 0000000..abdaf6a
--- /dev/null
@@ -0,0 +1,23 @@
+
+puts "========================"
+puts " OCC539 "
+puts "(case 2)"
+puts "========================"
+puts ""
+
+  puts "============================================"
+ puts "  BOPTUC      case_4_shell.brep and case_4_wire3.brep"
+ puts "============================================"
+ puts " " 
+ puts [restore [locate_data_file case_4_shell.brep] a] 
+ puts [restore [locate_data_file case_4_wire3.brep] b] 
+ puts [bop a b]
+ puts [boptuc result]
+
+set nb_info [nbshapes result]
+set nb_v_good 16
+set nb_e_good 11
+
+set length 929.278
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug571_1 b/tests/bugs/modalg/bug571_1
new file mode 100755 (executable)
index 0000000..f53d376
--- /dev/null
@@ -0,0 +1,22 @@
+puts "========"
+puts "OCC571"
+puts "========"
+puts ""
+##########################
+## Fillet operation fails on given shape
+##########################
+## LIMITATION: Builds fillet with 0.03<=r<=1.2
+##########################
+
+restore [locate_data_file OCC571.brep] a 
+puts [checkshape a]
+explode a
+
+if [catch {fillet result a_1 1.2 a_2 } catch_result] {
+    puts "Faulty OCC571 exception (case 1): Fillet operation fails on given shape "
+} else {
+    puts " OCC571 (case 1) OK: Fillet operation was made"
+}
+
+set square 21118.1
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug571_2 b/tests/bugs/modalg/bug571_2
new file mode 100755 (executable)
index 0000000..6d4add6
--- /dev/null
@@ -0,0 +1,22 @@
+puts "========"
+puts "OCC571"
+puts "========"
+puts ""
+##########################
+## Fillet operation fails on given shape
+##########################
+## LIMITATION: Builds fillet with 0.03<=r<=1.2
+##########################
+
+restore [locate_data_file OCC571.brep] a 
+puts [checkshape a]
+explode a
+
+if [catch {fillet result a_1 0.03 a_2 } catch_result] {
+    puts "Faulty OCC571 exception (case 2): Fillet operation fails on given shape "
+} else {
+    puts " OCC571 (case 2) OK: Fillet operation was made"
+}
+
+set square 21209.9
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug594 b/tests/bugs/modalg/bug594
new file mode 100755 (executable)
index 0000000..625301e
--- /dev/null
@@ -0,0 +1,26 @@
+
+puts "========================"
+puts " SAL594 "
+puts "========================"
+puts ""
+###################################
+## It is impossible to put correct fillets on the shape
+###################################
+
+restore [locate_data_file SAL594.brep] a 
+explode a e
+
+if [catch {blend result1 a 20 a_23 20 a_25 20 a_26 20 a_28} catch_result] {
+    puts "Faulty SAL594 (case 1): function BLEND works wrongly"
+} else {
+    puts "SAL594  OK (case 1):  function BLEND works OK"
+}
+
+if [catch {blend result result1 2.5 a_15 2.5 a_12 2.5 a_4} catch_result] {
+    puts "Faulty SAL594 (case 2): function BLEND works wrongly."
+} else {
+    puts "SAL594  OK (case 2):  function BLEND works OK"
+}
+
+set square 60513.1
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug600 b/tests/bugs/modalg/bug600
new file mode 100755 (executable)
index 0000000..0444f1f
--- /dev/null
@@ -0,0 +1,19 @@
+puts "TODO ?OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?OCC12345 ALL: Error : The square of result shape is"
+
+puts "========================"
+puts " OCC600"
+puts "========================"
+## Result of BOPCOMMON operation is unclosed shape inspite of source solids are valid
+############################################################
+cpulimit 5000
+restore [locate_data_file OCC600_1.brep] a 
+puts [checkshape a]
+restore [locate_data_file OCC600_2.brep] b 
+puts [checkshape b]
+bop b a
+
+bopcommon result
+
+set square 41970.8
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug602 b/tests/bugs/modalg/bug602
new file mode 100755 (executable)
index 0000000..a1666fb
--- /dev/null
@@ -0,0 +1,24 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========================"
+puts " OCC602 "
+puts "========================"
+puts ""
+###########################################
+## Exception during filet creation if it cross samedge of cylinder.
+###########################################
+
+restore [locate_data_file OCC602.brep] a 
+puts [checkshape a]
+
+explode a e
+
+if [catch {blend result a 20 a_9 } catch_result] {
+    puts "Faulty OCC602: function BLEND works wrongly"
+} else {
+    puts "OCC602 OK: function BLEND works OK"
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug605 b/tests/bugs/modalg/bug605
new file mode 100755 (executable)
index 0000000..03af86b
--- /dev/null
@@ -0,0 +1,37 @@
+
+puts "========================"
+puts " OCC605"
+puts "========================"
+puts ""
+##############################
+## No any faces in result of pipe command.
+##############################
+
+restore [locate_data_file OCC605a.brep] w1 
+puts [checkshape w1]
+restore [locate_data_file OCC605b.brep] w2 
+puts [checkshape w2]
+
+if { [catch {pipe result w2 w1 } catch_result] } {
+    puts "Faulty OCC605: function PIPE works with exception."
+} else {
+    explode result f
+    set nom 0
+    set j 1
+    repeat 20 {
+       if { [regexp {FACE} [whatis result_$j]] != 1 } {
+           break
+        } else {
+           set nom [expr $nom + 1]
+        }
+       incr j
+    }
+    if { $nom == 0 } {
+       puts " Faulty OCC605: Result of PIPE operation is incorrect !!! "
+    } else {
+       puts "OCC605 OK : Result of PIPE operation is NOT empty shell!!! "
+   }
+}
+
+set square 20.6253
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug615 b/tests/bugs/modalg/bug615
new file mode 100755 (executable)
index 0000000..62099e0
--- /dev/null
@@ -0,0 +1,22 @@
+puts "TODO ?OCC12345 ALL: Error : The square of result shape is"
+
+puts "========================"
+puts " OCC615"
+puts "========================"
+puts ""
+#############################
+## Wrong resultat of BLEND operation
+#############################
+
+restore [locate_data_file OCC615.brep] a 
+puts [checkshape a]
+explode a e
+
+if [catch {blend result a 9 a_15 } catch_result] {
+    puts "Faulty OCC615: function BLEND works with exception"
+} else {
+    puts "OCC615 OK: function CHAMF works OK"
+}
+
+set square 197055.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug616 b/tests/bugs/modalg/bug616
new file mode 100755 (executable)
index 0000000..f5bfc88
--- /dev/null
@@ -0,0 +1,22 @@
+
+puts "========================"
+puts " OCC616"
+puts "========================"
+puts ""
+########################################
+## Function MKOFFSET gives exception for attached face
+########################################
+
+restore [locate_data_file OCC616.brep] a 
+puts [checkshape a]
+
+if { [catch {mkoffset result a 5 -2} catch_result] } {
+    puts "Faulty OCC616: function MKOFFSET works with exception"
+} else {
+    renamevar result_1 result
+    puts [checkshape result]
+    puts "OCC616 OK: function MKOFFSET works OK"
+}
+
+set length 1062.78
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug620_1 b/tests/bugs/modalg/bug620_1
new file mode 100755 (executable)
index 0000000..e29df95
--- /dev/null
@@ -0,0 +1,24 @@
+
+puts "========================"
+puts "OCC620"
+puts "========================"
+puts ""
+############################
+## No possibility to cut the shapes. 
+############################
+
+restore [locate_data_file OCC620a.brep] a 
+puts [checkshape a]
+restore [locate_data_file OCC620b.brep] b 
+puts [checkshape b]
+
+bop a b
+
+if [catch { bopcut result } catch_result] {
+    puts "Faulty OCC620 : BOPCUT operation was made wrongly"
+} else {
+  puts "OCC620 OK: BOPCUT operation works OK"
+}
+
+set square 314742.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug620_2 b/tests/bugs/modalg/bug620_2
new file mode 100755 (executable)
index 0000000..c6e6ad1
--- /dev/null
@@ -0,0 +1,24 @@
+
+puts "========================"
+puts "OCC620"
+puts "========================"
+puts ""
+############################
+## No possibility to cut the shapes. 
+############################
+
+restore [locate_data_file OCC620a.brep] a 
+puts [checkshape a]
+restore [locate_data_file OCC620b.brep] b 
+puts [checkshape b]
+
+bop a b
+
+if [catch { boptuc result } catch_result] {
+    puts "Faulty OCC620 : BOPTUC operation was made wrongly"
+} else {
+    puts "OCC620 OK: BOPTUC operation works OK"
+}
+
+set square 1.15562e+06
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug625 b/tests/bugs/modalg/bug625
new file mode 100755 (executable)
index 0000000..703c38d
--- /dev/null
@@ -0,0 +1,35 @@
+puts "========================"
+puts "OCC625"
+puts "========================"
+puts ""
+###############################################################################
+## Created filler looks strange (see attached picture) inspite of checkshapes told about correct source and result shapes.
+###############################################################################
+
+pload QAcommands
+
+restore [locate_data_file OCC625.brep] a 
+puts [checkshape a]
+
+vinit
+tclean a
+explode a e
+
+blend res1 a 10 a_22 10 a_14
+blend result res1 10 a_17 10 a_4
+puts [checkshape result]
+
+vinit
+vdisplay result
+vfit
+vsetdispmode result 1
+
+QAUpdateLights
+
+set x_coord 116
+set y_coord 252
+
+checkcolor $x_coord $y_coord 0.82 0.58 0.09
+
+set square 19977
+set 3dviewer 1
\ No newline at end of file
diff --git a/tests/bugs/modalg/bug629 b/tests/bugs/modalg/bug629
new file mode 100755 (executable)
index 0000000..90b1da5
--- /dev/null
@@ -0,0 +1,25 @@
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "================"
+puts "OCC629"
+puts "================"
+puts ""
+##########################################
+## Exception during attempt to create solid by command PIPE
+##########################################
+
+restore [locate_data_file OCC629a.brep] a 
+puts [checkshape a]
+
+restore [locate_data_file OCC629b.brep] b 
+puts [checkshape b]
+
+if [catch {pipe result a b } catch_result] {
+    puts "Faulty OCC629: function PIPE works wrongly"
+} else {
+    puts "OCC629 OK: function PIPE works properly"
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug636 b/tests/bugs/modalg/bug636
new file mode 100755 (executable)
index 0000000..b1f4979
--- /dev/null
@@ -0,0 +1,31 @@
+
+puts "================"
+puts "OCC636"
+puts "================"
+puts ""
+#####################################
+## BRepOffsetAPI_MakePipeShell builds twisted pipe
+#####################################
+
+restore [locate_data_file OCC636a.brep] s 
+puts [checkshape s]
+
+restore [locate_data_file OCC636b.brep] s1 
+puts [checkshape s1]
+
+restore [locate_data_file OCC636c.brep] s2 
+puts [checkshape s2]
+
+mksweep s
+addsweep s1
+addsweep s2
+
+if [catch { buildsweep result } catch_result] {
+    puts "Faulty OCC636: function buildsweep works wrongly"
+} else {
+    puts "OCC636 OK: function buildsweep works properly"
+}
+
+set square 3836.92
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug637_1 b/tests/bugs/modalg/bug637_1
new file mode 100755 (executable)
index 0000000..4082fa1
--- /dev/null
@@ -0,0 +1,29 @@
+
+puts "================"
+puts "OCC637"
+puts "(case 1)"
+puts "================"
+puts ""
+##########################################
+## BRepOffsetAPI_MakePipeShell crashes with fatal exception
+##########################################
+
+restore [locate_data_file OCC637a.brep] s 
+puts [checkshape s]
+
+restore [locate_data_file OCC636c.brep] s1 
+puts [checkshape s1]
+
+restore [locate_data_file OCC637c.brep] s2 
+puts [checkshape s2]
+
+mksweep s
+addsweep s1
+addsweep s2
+
+if [catch { buildsweep result } catch_result] {
+    puts "Faulty OCC637 (case 1): function buildsweep works wrongly"
+} 
+
+set square 1675.58
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug637_2 b/tests/bugs/modalg/bug637_2
new file mode 100755 (executable)
index 0000000..f1b3e33
--- /dev/null
@@ -0,0 +1,30 @@
+
+puts "================"
+puts "OCC637"
+puts "(case 2)"
+puts "================"
+puts ""
+##########################################
+## BRepOffsetAPI_MakePipeShell crashes with fatal exception
+##########################################
+
+restore [locate_data_file OCC637d.brep] s 
+puts [checkshape s]
+
+restore [locate_data_file OCC637c.brep] s1 
+puts [checkshape s1]
+
+restore [locate_data_file OCC637f.brep] s2 
+puts [checkshape s2]
+
+mksweep s
+addsweep s1
+addsweep s2
+
+if [catch {buildsweep result } catch_result] {
+    puts "Faulty OCC637 (case 2): function buildsweep works wrongly"
+}
+
+set square 1090.91
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug673 b/tests/bugs/modalg/bug673
new file mode 100755 (executable)
index 0000000..d0a23b1
--- /dev/null
@@ -0,0 +1,25 @@
+puts "TODO OCC12345 ALL: Error : The command can not be build"
+puts "TODO OCC12345 ALL: Faulty OCC673: function SPLITSHAPE works wrongly"
+
+puts "================"
+puts "OCC673"
+puts "================"
+puts ""
+#######################################################
+## Exception is raised during splitting face by a wire laying on the face boundary.
+#######################################################
+
+restore [locate_data_file OCC673a.brep] a 
+puts [checkshape a]
+
+restore [locate_data_file OCC673b.brep] b 
+puts [checkshape b]
+
+if [catch {spliteshape result a a b} catch_result] {
+    puts "Faulty OCC673: function SPLITSHAPE works wrongly"
+} else {
+    puts "OCC673 OK : function SPLITSHAPE works OK"
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug693 b/tests/bugs/modalg/bug693
new file mode 100755 (executable)
index 0000000..fa9b714
--- /dev/null
@@ -0,0 +1,79 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is "
+
+puts "================"
+puts "OCC693"
+puts "================"
+puts ""
+###################################################
+## The boolean operations give incorrect result if one of shapes is compound 
+## consisting of several adjoint solids
+####################################################
+
+box h1 234 52 0 41 98 40
+box v1 241 136 20 31 31 15
+box h3 215 120 20 78 15 15
+
+#mu4
+#fit
+
+compound h1 c1
+compound v1 c2
+
+tcopy c1 cc1
+tcopy c2 cc2
+bcommon int1 cc1 cc2
+##########checkshape -top int1
+puts [checkshape -top int1]
+
+tcopy c1 cc1
+tcopy c2 cc2
+bcut cut1 cc1 cc2
+puts [checkshape -top cut1]
+
+tcopy c1 cc1
+tcopy c2 cc2
+bcut cut2 cc2 cc1
+##########checkshape -top cut2
+puts [checkshape -top cut2]
+
+compound int1 cut1 cut2 comp3
+##########checkshape -top comp3
+puts [checkshape -top comp3]
+#donly comp3
+
+tcopy comp3 ccomp3
+tcopy h3 ch3
+bcommon int2 ccomp3 ch3
+##########checkshape -top int2
+puts [checkshape -top int2]
+#donly int2
+
+tcopy comp3 ccomp3
+tcopy h3 ch3
+bcut cut3 ccomp3 ch3
+##########checkshape -top cut3
+puts [checkshape -top cut3]
+#donly cut3
+
+tcopy comp3 ccomp3
+tcopy h3 ch3
+bcut cut4 ch3 ccomp3
+##########checkshape -top cut4
+puts [checkshape -top cut4]
+
+compound int2 cut3 cut4 result
+##########checkshape -top res
+puts [checkshape -top result]
+
+##########set che [checkshape -top res]
+##########
+##########set err [lindex $che [expr [llength $che] - 7]]
+##########if { $err == "Faulty"} {
+##########    puts "Faulty OCC693"
+##########} else {
+##########  puts "OCC693 OK "
+##########}
+
+set square 33196
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug697_1 b/tests/bugs/modalg/bug697_1
new file mode 100755 (executable)
index 0000000..6014e46
--- /dev/null
@@ -0,0 +1,25 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+restore [locate_data_file OCC697_1.brep] b1 
+restore [locate_data_file OCC697_2.brep] b2 
+
+puts [checkshape b1]
+puts [checkshape b2]
+##############################################
+if { [catch {bfuse result b1 b2} catch_result] } {
+##############################################
+    puts "Faulty : an exception was caught"
+}
+
+set square 8879.41
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug697_2 b/tests/bugs/modalg/bug697_2
new file mode 100755 (executable)
index 0000000..616e2e3
--- /dev/null
@@ -0,0 +1,29 @@
+puts "============"
+puts "OCC697"
+puts "============"
+puts ""
+######################################################
+# Fuse operation does not work
+######################################################
+## (old topology)
+## (fuse)
+######################################################
+
+puts "#"
+puts "Non stable test case on Linux. MKV. 28.04.2010"
+puts "#"
+
+restore [locate_data_file OCC697_2.brep] b2 
+restore [locate_data_file OCC697_3.brep] b3 
+
+puts [checkshape b2]
+puts [checkshape b3]
+##############################################
+if { [catch {bfuse result b2 b3} catch_result] } {
+##############################################
+   puts "Faulty : an exception was caught"
+}
+
+set square 25357.5
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug698 b/tests/bugs/modalg/bug698
new file mode 100755 (executable)
index 0000000..7c1e9d1
--- /dev/null
@@ -0,0 +1,16 @@
+
+puts "======= OCC698 ======="
+######################################
+## Cut operation produces bad result on attached shapes
+######################################
+cpulimit 10000
+restore [locate_data_file OCC698_1.brep] b4 
+puts [checkshape b4]
+restore [locate_data_file OCC698_2.brep] b5 
+puts [checkshape b5]
+
+bcut result b5 b4
+
+set square 19048.2
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug702 b/tests/bugs/modalg/bug702
new file mode 100755 (executable)
index 0000000..5339ae4
--- /dev/null
@@ -0,0 +1,25 @@
+
+puts "======="
+puts "OCC702"
+puts "SAM1541"
+puts "======="
+puts ""
+########################
+## No possibility to make a prism. 
+########################
+
+restore [locate_data_file OCC702.brep] a 
+
+if [ catch { prism result a 100 100 100 } catch_result ] {
+    puts "Faulty OCC702 (case 1)"
+} else {
+    regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full sq
+    if { $sq <= 0. } {
+       puts "Faulty OCC702 (case 2)"
+    } else {
+       puts "OCC702 OK"
+    }
+}
+
+set square 308957.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug712_1 b/tests/bugs/modalg/bug712_1
new file mode 100755 (executable)
index 0000000..30c82c5
--- /dev/null
@@ -0,0 +1,23 @@
+
+puts "========"
+puts "OCC712"
+puts "========"
+puts ""
+#########################################################
+## Exeption is raised in DRAW during building draft with help command "depouille"
+## on face in the attached shape.
+#########################################################
+
+restore [locate_data_file OCC712.brep] a 
+puts [checkshape a]
+
+explode a f
+
+if [catch {depouille result a 0 0 1 a_2 10 0 39.6875 0 0. 0. -1 } catch_result] {
+    puts "Faulty OCC712"
+} else {
+    puts "OCC712 OK"
+}
+
+set square 41956.4
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug714 b/tests/bugs/modalg/bug714
new file mode 100755 (executable)
index 0000000..dde4163
--- /dev/null
@@ -0,0 +1,34 @@
+#INTERFACE IGES
+puts "========"
+puts "OCC714"
+puts "========"
+puts ""
+####################################################
+## After command sew in DRAW on attached shape free wires are disappeared.
+####################################################
+
+restore [locate_data_file OCC714.brep] a 
+puts [checkshape a]
+
+set nb_info1 [nbshapes a]
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info1 full ve1
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info1 full ed1
+regexp {WIRE +: +([-0-9.+eE]+)} $nb_info1 full we1
+
+sewing result 0.1 a
+
+set nb_info2 [nbshapes a]
+regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info2 full ve2
+regexp {EDGE +: +([-0-9.+eE]+)} $nb_info2 full ed2
+regexp {WIRE +: +([-0-9.+eE]+)} $nb_info2 full we2
+
+if { $ve1 != $ve2 || $ed1 != $ed2 || $we1 != $we2} {
+    puts  [format "Faulty OCC714 : SEWING operation was made WRONGLY: vertexes before %s, edges before %s, wires before %s" $ve1 $ed1 $we1] 
+    puts  [format "                                                   vertexes after  %s, edges after  %s, wires after  %s" $ve1 $ed1 $we1] 
+} else {
+    puts "OK OCC714: SEWING operation was made PROPERLY"
+}
+
+set square 12917.1
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug715 b/tests/bugs/modalg/bug715
new file mode 100755 (executable)
index 0000000..fa53cc6
--- /dev/null
@@ -0,0 +1,28 @@
+
+puts "========"
+puts "OCC715"
+puts "SAM1582"
+puts "========"
+puts ""
+##########################################
+## section of two faces produces wrong number of section edges
+##########################################
+
+restore [locate_data_file OCC715_2.brep] f2 
+restore [locate_data_file OCC715_3.brep] f3 
+
+bsection result f2 f3
+
+set expl [explode result]
+
+set length [llength $expl]
+puts "Result is $length section edge"
+
+if {$length != 3} {
+    puts "Faulty OCC715"
+} else {
+    puts "OCC715 OK"
+}
+
+set length 100.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug726_1 b/tests/bugs/modalg/bug726_1
new file mode 100755 (executable)
index 0000000..6d1fa85
--- /dev/null
@@ -0,0 +1,21 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC726"
+puts "SAM1594"
+puts "========"
+puts ""
+######################################
+## Boolean operations are impossible on the attachment.
+######################################
+
+restore [locate_data_file OCC726.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug726_2 b/tests/bugs/modalg/bug726_2
new file mode 100755 (executable)
index 0000000..8381e68
--- /dev/null
@@ -0,0 +1,21 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC726"
+puts "SAM1594"
+puts "========"
+puts ""
+######################################
+## Boolean operations are impossible on the attachment.
+######################################
+
+restore [locate_data_file OCC726.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug743 b/tests/bugs/modalg/bug743
new file mode 100755 (executable)
index 0000000..b5a01dd
--- /dev/null
@@ -0,0 +1,42 @@
+
+puts "========"
+puts "OCC743"
+puts "========"
+puts ""
+#######################################
+## The result of offset operation on a planar wire is wrong
+#######################################
+
+restore [locate_data_file OCC743_corr2.brep] a 
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -15 } status] } {
+    puts "Faulty OCC743"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+       puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+       regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+           set ll [explode result w]
+           set num [llength $ll]
+           puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+           foreach {k} $ll {
+               puts [checkshape $k]
+               regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+               if { $cs != 0 } {
+                   puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+               } else {
+                   puts [format "OK: Result shape is CLOSED wire !!! "]
+               }
+           }
+        } 
+    }
+}
+
+set length 3533.52
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug745_1 b/tests/bugs/modalg/bug745_1
new file mode 100755 (executable)
index 0000000..339e27f
--- /dev/null
@@ -0,0 +1,44 @@
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#######################################################
+## There are several cases where the offset algo works wrong for various reasons
+## for wires containing only linear segments and arcs of circle.
+#######################################################
+
+restore [locate_data_file OCC745_1.brep] a 
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -10 } status] } {
+  puts "Faulty : an exception was caught"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 932.825
+set 2dviewer 0  
+
diff --git a/tests/bugs/modalg/bug745_10 b/tests/bugs/modalg/bug745_10
new file mode 100755 (executable)
index 0000000..95ac508
--- /dev/null
@@ -0,0 +1,27 @@
+puts "TODO OCC12345 ALL: Faulty OCC745"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#############################################
+# Negative offset parameter leads to positive offset and vise
+# versa. Result of the offset represent an edge instead of wire.
+#############################################
+
+restore [locate_data_file OCC745_nb1.brep] w 
+mkoffset result w 1 -1
+
+set list [whatis result_1]
+
+if { [regexp {WIRE} $list] == 0 } {
+    puts "Faulty OCC745"
+} else {
+    puts "OCC745 OK"
+}
+
+renamevar result_1 result
+
+set length 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug745_11 b/tests/bugs/modalg/bug745_11
new file mode 100755 (executable)
index 0000000..ba30664
--- /dev/null
@@ -0,0 +1,52 @@
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#########################
+# Not correct creation of bisector loci.
+#########################
+
+restore [locate_data_file OCC745_nb2.brep] w 
+mkplane f w
+topoload f
+drawcont
+
+mat
+result
+
+##################################################
+#Exception thrown: Standard_ConstructionError: Offset wire is not closed.
+##################################################
+
+if { [catch { mkoffset result w 10 -7 } status] } {
+    puts "Faulty OCC745"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 1930.99
+set 2dviewer 0  
+
diff --git a/tests/bugs/modalg/bug745_12 b/tests/bugs/modalg/bug745_12
new file mode 100755 (executable)
index 0000000..f87a6e1
--- /dev/null
@@ -0,0 +1,47 @@
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: Exception "
+puts "TODO OCC12345 ALL: Faulty OCC745"
+puts "TODO OCC12345 ALL: Error : The command can not be build."
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+##################################################
+# Exception thrown: Standard_ConstructionError: Offset wire is not closed.
+##################################################
+
+restore [locate_data_file OCC745_nb3.brep] w 
+puts [checkshape w]
+
+if { [catch { mkoffset result w 1 10 } status] } {
+    puts "Faulty OCC745"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 0
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug745_2 b/tests/bugs/modalg/bug745_2
new file mode 100755 (executable)
index 0000000..4b9021a
--- /dev/null
@@ -0,0 +1,26 @@
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+##################################################
+## This test does not terminate due to infinite loop in bissector calculation
+##################################################
+
+restore [locate_data_file OCC745_2.brep] a 
+puts [checkshape a]
+mkplane pl a
+topoload pl
+drawcont
+smallview -2D-
+2dfit
+
+set min 30
+cpulimit [expr 60 * $min]
+
+mat
+puts "OCC745 OK"
+
+renamevar pl result
+set square 5844.55
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug745_4 b/tests/bugs/modalg/bug745_4
new file mode 100755 (executable)
index 0000000..a29a0d8
--- /dev/null
@@ -0,0 +1,49 @@
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+puts "TODO OCC12345 ALL: Exception: result is not a topological shape!!!"
+puts "TODO OCC12345 ALL: TEST INCOMPLETE"
+
+pload QAcommands
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+###########################################
+# Exception Standard_NullValue while performing the offset:
+###########################################
+
+restore [locate_data_file OCC745_pocket1.brep] a 
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -10 } status] } {
+    puts "Faulty OCC745"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    set ve 0
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 0
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug745_6 b/tests/bugs/modalg/bug745_6
new file mode 100755 (executable)
index 0000000..e3dff58
--- /dev/null
@@ -0,0 +1,46 @@
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+puts "TODO OCC12345 ALL: Error : The command is not valid. The length is"
+
+puts "========"
+puts "OCC745"
+puts "BUC60878"
+puts "========"
+puts ""
+################################
+# There are discontinuities in offset contours:
+################################
+
+restore [locate_data_file BUC60878-wire3.brep] a 
+puts [checkshape a]
+
+if { [catch { mkoffset result a 1 -10 } status] } {
+    puts "Faulty OCC745"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 0
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug745_7 b/tests/bugs/modalg/bug745_7
new file mode 100755 (executable)
index 0000000..4d909b8
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+puts "TODO OCC12345 ALL: Error : The command is not valid. The length is"
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+######################################################
+## Exception thrown: Standard_ConstructionError: Offset wire is not closed:
+######################################################
+
+source [locate_data_file OCC745_cont1.dat]
+puts [checkshape pp]
+
+if { [catch { mkoffset result pp 1 -10 } status] } {
+    puts "Faulty OCC745"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 0
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug745_8 b/tests/bugs/modalg/bug745_8
new file mode 100755 (executable)
index 0000000..3dd5080
--- /dev/null
@@ -0,0 +1,43 @@
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+###################################################
+## Exception thrown: Standard_ConstructionError: Offset wire is not closed:
+###################################################
+
+restore [locate_data_file BUC60830-face2.brep] f 
+puts [checkshape f]
+
+if { [catch { mkoffset result f 45 -0.042225 } status] } {
+    puts "Faulty OCC745"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 72.1851
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug745_9 b/tests/bugs/modalg/bug745_9
new file mode 100755 (executable)
index 0000000..d56e2b8
--- /dev/null
@@ -0,0 +1,45 @@
+puts "TODO OCC12345 ALL: Error : The command is not valid. The length is"
+puts "TODO OCC12345 ALL: Faulty : Result shape is NULL shape"
+
+puts "========"
+puts "OCC745"
+puts "========"
+puts ""
+#####################################################
+# The latter command enters an endless loop: it was not completed in 30 min:
+#####################################################
+
+source [locate_data_file OCC745_cont2.dat]
+puts [checkshape pq]
+
+if { [catch { mkoffset result pq 1 -10 } status] } {
+    puts "Faulty OCC745"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 0
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug748 b/tests/bugs/modalg/bug748
new file mode 100755 (executable)
index 0000000..f94d388
--- /dev/null
@@ -0,0 +1,18 @@
+
+puts "========"
+puts "OCC748"
+puts "========"
+puts ""
+##################################
+## Incorrect work of DRAW-command "common"
+##################################
+
+restore [locate_data_file OCC748_1.brep] s1 
+puts [checkshape s1]
+restore [locate_data_file OCC748_2.brep] s2 
+puts [checkshape s2]
+
+bcommon result s1 s2
+
+set square 628.319
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug755_1 b/tests/bugs/modalg/bug755_1
new file mode 100755 (executable)
index 0000000..becea23
--- /dev/null
@@ -0,0 +1,34 @@
+
+puts "========"
+puts "OCC755"
+puts "SAM1607"
+puts "(case 1)"
+puts "========"
+puts ""
+####################################################################
+##Result of cut of capteur2 from capteur1 is a solid. It must be a compound, as it consists of 2 bodies.
+####################################################################
+
+restore [locate_data_file OCC755_1.brep] a1 
+puts [checkshape a1]
+restore [locate_data_file OCC755_2.brep] a2 
+puts [checkshape a2]
+
+bcut result a1 a2
+
+set wt_is [whatis result]
+
+set lth [llength $wt_is]
+
+if {$lth < 5} {
+    puts "Faulty OCC755 (case 1)"
+} else {
+    if {[regexp {COMPOUND} $wt_is] == 1} {
+       puts "OCC755 OK (case 2)"
+    } else {
+       puts "Faulty OCC755 (case 2)"
+    }
+}
+
+set square 1.57358e+06
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug758 b/tests/bugs/modalg/bug758
new file mode 100755 (executable)
index 0000000..ef4099a
--- /dev/null
@@ -0,0 +1,26 @@
+
+puts "========"
+puts "OCC758"
+puts "SAM1613"
+puts "========"
+puts ""
+###################################################
+##It's impossible to cut two little shapes from the big one in the attached file.
+###################################################
+
+restore [locate_data_file OCC758.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+puts [checkshape a_3]
+
+bcut res1 a_1 a_2
+
+puts [checkshape res1]
+
+bcut result res1 a_3
+
+set square 49473.6
+set 2dviewer 0
+
+
diff --git a/tests/bugs/modalg/bug763 b/tests/bugs/modalg/bug763
new file mode 100755 (executable)
index 0000000..6eaaa72
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========"
+puts "OCC763"
+puts "========"
+puts ""
+####################################
+## Bad result of fuse operation between two cylinders
+####################################
+
+restore [locate_data_file OCC763_c1.brep] c1 
+puts [checkshape c1]
+restore [locate_data_file OCC763_c2.brep] c2 
+puts [checkshape c2]
+
+bop c1 c2
+bopfuse result
+
+set square 23189.4
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug767 b/tests/bugs/modalg/bug767
new file mode 100755 (executable)
index 0000000..d53e007
--- /dev/null
@@ -0,0 +1,15 @@
+
+puts "======="
+puts "OCC767"
+puts "======="
+puts ""
+############################################
+## Command sameparametr in DRAW hangs  on attached edge.
+############################################
+
+restore [locate_data_file OCC767.brep] result
+
+sameparameter result
+
+set length 7.6901
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug770 b/tests/bugs/modalg/bug770
new file mode 100755 (executable)
index 0000000..edb86e4
--- /dev/null
@@ -0,0 +1,26 @@
+puts "TODO ?OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC770"
+puts "SAM1636"
+puts "========"
+puts ""
+############################
+## Impossible fusing 3 attached shapes
+############################
+
+restore [locate_data_file OCC770.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+puts [checkshape a_3]
+
+bfuse res1 a_1 a_2
+
+puts [checkshape res1]
+
+bfuse result res1 a_3
+
+set square 962546.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug771 b/tests/bugs/modalg/bug771
new file mode 100755 (executable)
index 0000000..0e48e6f
--- /dev/null
@@ -0,0 +1,25 @@
+
+puts "========"
+puts "OCC771"
+puts "SAM1639"
+puts "========"
+puts ""
+###########################
+## Impossible fusung 3 shapes attached
+###########################
+
+restore [locate_data_file OCC771.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+puts [checkshape a_3]
+
+bfuse res1 a_1 a_2
+
+puts [checkshape res1]
+
+bfuse result res1 a_3
+
+set square 1306.68
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug772 b/tests/bugs/modalg/bug772
new file mode 100755 (executable)
index 0000000..5e7ea72
--- /dev/null
@@ -0,0 +1,21 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC772"
+puts "SAM1643"
+puts "========"
+puts ""
+######################################
+## Impossible to make a common of the shapes attached.
+######################################
+
+restore [locate_data_file OCC772.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcommon result a_1 a_2
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug774_1 b/tests/bugs/modalg/bug774_1
new file mode 100755 (executable)
index 0000000..600684a
--- /dev/null
@@ -0,0 +1,22 @@
+
+puts "========"
+puts "OCC774"
+puts "SAM1647"
+puts "(case 1)"
+puts "========"
+puts ""
+#################################
+## It's impossible to cut one shape from another.
+#################################
+
+restore [locate_data_file OCC774.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [catch { bcut result a_1 a_2 } status] } {
+    puts "Faulty OCC774 (case 1)"
+} 
+
+set square 50704.6
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug774_2 b/tests/bugs/modalg/bug774_2
new file mode 100755 (executable)
index 0000000..44d9f22
--- /dev/null
@@ -0,0 +1,22 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+puts "========"
+puts "OCC774"
+puts "SAM1647"
+puts "(case 2)"
+puts "========"
+puts ""
+#################################
+##
+restore [locate_data_file OCC774.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [catch { bcut result a_2 a_1 } status] } {
+    puts "Faulty OCC774 (case 2)"
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug775 b/tests/bugs/modalg/bug775
new file mode 100755 (executable)
index 0000000..83e11e5
--- /dev/null
@@ -0,0 +1,19 @@
+
+puts "========"
+puts "OCC775"
+puts "SAM1650"
+puts "========"
+puts ""
+#############################
+## Impossible to fuse two attached shapes.
+#############################
+
+restore [locate_data_file OCC775.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bfuse result a_1 a_2
+
+set square 61146.4
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug776_1 b/tests/bugs/modalg/bug776_1
new file mode 100755 (executable)
index 0000000..557fc43
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========"
+puts "OCC776"
+puts "SAM1654"
+puts "(case 1)"
+puts "========"
+puts ""
+##########################################
+## Impossible to cut one shape from another in the attachment
+##########################################
+
+restore [locate_data_file OCC776.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+
+set square 112637.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug776_2 b/tests/bugs/modalg/bug776_2
new file mode 100755 (executable)
index 0000000..2f267bb
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========"
+puts "OCC776"
+puts "SAM1654"
+puts "(case 2)"
+puts "========"
+puts ""
+##########################################
+## Impossible to cut one shape from another in the attachment
+##########################################
+
+restore [locate_data_file OCC776.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_2 a_1
+
+set square 40403.2
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug778_1 b/tests/bugs/modalg/bug778_1
new file mode 100755 (executable)
index 0000000..5462cd6
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========"
+puts "OCC778"
+puts "SAM1656"
+puts "(case 1)"
+puts "========"
+puts ""
+######################################
+## Incorrect result of cut of the cylinder from the shape.
+######################################
+
+restore [locate_data_file OCC778.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_1 a_2
+
+set square 13633.6
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug778_2 b/tests/bugs/modalg/bug778_2
new file mode 100755 (executable)
index 0000000..ce42192
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========"
+puts "OCC778"
+puts "SAM1656"
+puts "(case 2)"
+puts "========"
+puts ""
+#####################################
+## Incorrect result of cut of the cylinder from the shape
+#####################################
+
+restore [locate_data_file OCC778.brep] a 
+explode a
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+bcut result a_2 a_1
+
+set square 678.584
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug779 b/tests/bugs/modalg/bug779
new file mode 100755 (executable)
index 0000000..c53e3ca
--- /dev/null
@@ -0,0 +1,22 @@
+
+puts "========"
+puts "OCC779"
+puts "========"
+puts ""
+################################
+## Common operation produces invalid shape
+################################
+
+restore [locate_data_file OCC779_s1.brep] s1 
+puts [checkshape s1]
+restore [locate_data_file OCC779_s2.brep] s2 
+puts [checkshape s2]
+
+ttranslate s1 0 0 -30
+prism s1p s1 0 0 70
+puts [checkshape s1p]
+
+bcommon result s1p s2
+
+set square 64191.2
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug780_1 b/tests/bugs/modalg/bug780_1
new file mode 100755 (executable)
index 0000000..81dc7fd
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========"
+puts "OCC780"
+puts "SAM1239"
+puts "(case 1)"
+puts "========"
+puts ""
+#########################################
+## Fuse and common between two faces are wrong (SAM1239)
+#########################################
+
+restore [locate_data_file OCC780.brep] f 
+explode f f
+puts [checkshape f_1]
+puts [checkshape f_2]
+
+bcommon result f_1 f_2
+
+set square 6283.19
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug780_2 b/tests/bugs/modalg/bug780_2
new file mode 100755 (executable)
index 0000000..4b72b48
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========"
+puts "OCC780"
+puts "SAM1239"
+puts "(case 2)"
+puts "========"
+puts ""
+#########################################
+## Fuse and common between two faces are wrong (SAM1239)
+#########################################
+
+restore [locate_data_file OCC780.brep] f 
+explode f f
+puts [checkshape f_1]
+puts [checkshape f_2]
+                    
+bfuse result f_1 f_2
+
+set square 12566.4
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug788_1 b/tests/bugs/modalg/bug788_1
new file mode 100755 (executable)
index 0000000..7bf800c
--- /dev/null
@@ -0,0 +1,20 @@
+
+puts "========="
+puts " OCC788 "
+puts "========="
+puts ""
+#################################################
+## ThruSection cannot determine correctly correspondence between wires
+#################################################
+restore [locate_data_file OCC788_s1w.brep] w1 
+explode w1
+wire ww1 w1_1
+
+restore [locate_data_file OCC788_s2w.brep] w2 
+explode w2
+wire ww2 w2_1
+
+thrusections result 0 0 ww1 ww2
+
+set 2dviewer 0
+set square 148608.
diff --git a/tests/bugs/modalg/bug788_2 b/tests/bugs/modalg/bug788_2
new file mode 100755 (executable)
index 0000000..cbb2023
--- /dev/null
@@ -0,0 +1,24 @@
+
+puts "========="
+puts " OCC788 "
+puts "========="
+puts ""
+##################################################
+## ThruSection cannot determine correctly correspondence between wires 
+##################################################
+
+restore [locate_data_file OCC788_s1w.brep] w1 
+explode w1
+wire ww1 w1_1
+
+restore [locate_data_file OCC788_s2w.brep] w2 
+explode w2
+wire ww2 w2_1
+
+
+thrusections result 0 0 ww1 ww2
+
+puts "It necessary to analyse the photo"
+
+set 2dviewer 0
+set square 148608.
diff --git a/tests/bugs/modalg/bug789 b/tests/bugs/modalg/bug789
new file mode 100755 (executable)
index 0000000..59e95ec
--- /dev/null
@@ -0,0 +1,25 @@
+
+puts "========="
+puts " OCC789 "
+puts "========="
+puts ""
+########################################################
+## When working on 2 closed wires (each of 1 edge), the thrusection algorithm creates
+## a surface with isolines which oscillate in longitudinal direction somewhere in the 
+## middle between end sections.
+########################################################
+
+restore [locate_data_file OCC789_s3.brep] w1 
+explode w1
+wire ww1 w1_1
+
+restore [locate_data_file OCC789_s4.brep] w2 
+explode w2
+wire ww2 w2_1
+
+thrusections result 0 0 ww1 ww2
+
+puts "It necessary to analyse the photo"
+
+set square 142424.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug794 b/tests/bugs/modalg/bug794
new file mode 100755 (executable)
index 0000000..dcbbebc
--- /dev/null
@@ -0,0 +1,28 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "========="
+puts " OCC794 "
+puts "========="
+puts ""
+#####################################################
+## The offset algorithm produced invalid result when offseting an attached face
+#####################################################
+
+pload QAcommands
+
+restore [locate_data_file OCC794.brep] a 
+
+offsetshape result a 10
+
+set x_coord 120
+set y_coord 150
+
+vinit
+vdisplay result
+vsetdispmode 1
+vfit
+QAUpdateLights
+
+checkcolor $x_coord $y_coord 0.77 0.54 0.09
+
+set square 206399
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug822_1 b/tests/bugs/modalg/bug822_1
new file mode 100755 (executable)
index 0000000..1369da3
--- /dev/null
@@ -0,0 +1,25 @@
+pload QAcommands
+
+puts "========"
+puts "OCC822"
+puts "========"
+puts ""
+#####################################
+## BRepMesh_IncrementalMesh fails on some faces
+#####################################
+
+if { [ catch { set info_result [OCC822_1 a1 a2 result] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    if { [lsearch ${info_result} FAILED] > -1 } {
+       puts "Faulty : command was FAILED"
+    }
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 133931
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug822_2 b/tests/bugs/modalg/bug822_2
new file mode 100755 (executable)
index 0000000..5157721
--- /dev/null
@@ -0,0 +1,25 @@
+pload QAcommands
+
+puts "======="
+puts "OCC822"
+puts "======="
+puts ""
+#####################################
+## BRepMesh_IncrementalMesh fails on some faces
+#####################################
+
+if { [ catch { set info_result [OCC822_2 a1 a2 result] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    if { [lsearch ${info_result} FAILED] > -1} {
+       puts "Faulty : commands was FAILED"
+    }
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 61963.5
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug823 b/tests/bugs/modalg/bug823
new file mode 100755 (executable)
index 0000000..e97833f
--- /dev/null
@@ -0,0 +1,26 @@
+pload QAcommands
+
+puts "======="
+puts "OCC823"
+puts "======="
+puts ""
+###############################
+## BRepAlgoAPI_Fuse fails on two cylinders
+###############################
+
+if { [ catch { set info_result [OCC823 a1 a2 result] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+
+    if { [lsearch ${info_result} FAILED] > -1} {
+       puts "Faulty : commands was FAILED"
+    }
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 23189.5
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug823_1 b/tests/bugs/modalg/bug823_1
new file mode 100755 (executable)
index 0000000..be10051
--- /dev/null
@@ -0,0 +1,30 @@
+pload QAcommands
+
+puts "============"
+puts "OCC823"
+puts "============"
+puts ""
+################################
+## BRepAlgoAPI_Fuse fails on two cylinders
+################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC823 a1 a2 a3] } ] } {
+    puts "Faulty : exception was caught"
+} else {
+    puts [checkshape a1]
+    puts [checkshape a2]
+    bfuse result a1 a2
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 23189.5
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug824 b/tests/bugs/modalg/bug824
new file mode 100755 (executable)
index 0000000..c49b28d
--- /dev/null
@@ -0,0 +1,25 @@
+pload QAcommands
+
+puts "============"
+puts "OCC824"
+puts "============"
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and sphere
+####################################
+
+if { [ catch { set info_result [OCC824 a1 a2 result] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    if { [lsearch ${result} FAILED] > -1} {
+       puts "Faulty : command was FAILED"
+    }
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 16336.3
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug824_1 b/tests/bugs/modalg/bug824_1
new file mode 100755 (executable)
index 0000000..bbe54e7
--- /dev/null
@@ -0,0 +1,30 @@
+pload QAcommands
+
+puts "======="
+puts "OCC824"
+puts "======="
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and sphere
+####################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC824 a1 a2 a3] } ] } {
+    puts "Faulty : exception was catch"
+} else {
+    puts [checkshape a1]
+    puts [checkshape a2]
+    bfuse result a1 a2
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+        puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 16336.3
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug825 b/tests/bugs/modalg/bug825
new file mode 100755 (executable)
index 0000000..bc45a42
--- /dev/null
@@ -0,0 +1,37 @@
+puts "TODO OCC12345 ALL: Faulty : command was FAILED"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "============"
+puts "OCC825"
+puts "============"
+puts ""
+######################################
+## BRepAlgoAPI_Cut fails on sphere and b-spline face
+######################################
+
+if { [ catch { set info_result [OCC825 a1 a2 a3 result1 result2] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    if { [lsearch ${info_result} FAILED] > -1} {
+       puts "Faulty : command was FAILED"
+    }
+    puts [checkshape result1]
+    puts [checkshape result2]
+    
+    set ExplodeList [explode result1]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+    set ExplodeList [explode result2]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+    
+    renamevar result1 result
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug825_1 b/tests/bugs/modalg/bug825_1
new file mode 100755 (executable)
index 0000000..acf250a
--- /dev/null
@@ -0,0 +1,31 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+
+pload QAcommands
+
+puts "======="
+puts "OCC825"
+puts "======="
+puts ""
+######################################
+## BRepAlgoAPI_Cut fails on sphere and b-spline face
+######################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC825 a1 a2 a3 a4 a5] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    puts [checkshape a1]
+    puts [checkshape a2]
+    bcut result a2 a1
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug825_2 b/tests/bugs/modalg/bug825_2
new file mode 100755 (executable)
index 0000000..cc425d1
--- /dev/null
@@ -0,0 +1,32 @@
+pload QAcommands
+puts "TODO OCC12345 ALL: Error : The square of result shape is"
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+
+puts "========"
+puts "OCC825"
+puts "========"
+puts ""
+######################################
+## BRepAlgoAPI_Cut fails on sphere and b-spline face
+######################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set info_result [OCC825 a1 a2 a3 a4 a5] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    puts [checkshape a1]
+    puts [checkshape a3]
+
+    bcut result a3 a1
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug826 b/tests/bugs/modalg/bug826
new file mode 100755 (executable)
index 0000000..4093fa3
--- /dev/null
@@ -0,0 +1,24 @@
+pload QAcommands
+
+puts "============"
+puts "OCC826"
+puts "============"
+puts ""
+###################################
+## BRepAlgoAPI_Fuse fails on revolved and sphere
+###################################
+
+if { [ catch { set info_result [OCC826 a1 a2 result] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    if { [lsearch ${info_result} FAILED] > -1} {
+       puts "Faulty : command was FAILED"
+    }
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 272939
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug826_1 b/tests/bugs/modalg/bug826_1
new file mode 100755 (executable)
index 0000000..d2bd7b0
--- /dev/null
@@ -0,0 +1,29 @@
+pload QAcommands
+
+puts "============"
+puts "OCC826"
+puts "============"
+puts ""
+###################################
+## BRepAlgoAPI_Fuse fails on revolved and sphere
+###################################
+##
+## Note: test for old topology
+##
+################################
+
+if { [ catch { set result [OCC826 a1 a2 a3] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    puts [checkshape a1]
+    puts [checkshape a2]
+    bfuse result a1 a2
+    
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 272939
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug827 b/tests/bugs/modalg/bug827
new file mode 100755 (executable)
index 0000000..1b779e6
--- /dev/null
@@ -0,0 +1,45 @@
+pload QAcommands
+
+puts "========"
+puts "OCC827"
+puts "========"
+puts ""
+###################################
+## BRepAlgoAPI_Fuse fails on cylinder and torus
+###################################
+
+#
+# a1 - Cylinder
+# a2 - Torus1
+# a3 - Torus1
+# res1 - Fuse(Torus1 & Cylinder)
+# res2 - Fuse(Torus2 & res1)
+#
+
+if { [ catch { set info_result [OCC827 a1 a2 a3 result1 result2] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    if { [lsearch ${info_result} FAILED] > -1} {
+       puts "Faulty OCC827 (case 1)"
+    }
+    puts [checkshape a1]
+    puts [checkshape a2]
+    puts [checkshape a3]
+    puts [checkshape result1]
+    puts [checkshape result2]
+
+    set ExplodeList [explode result1]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+
+    set ExplodeList [explode result2]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+
+    renamevar result2 result
+}
+
+set square 11847.7
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug827_1 b/tests/bugs/modalg/bug827_1
new file mode 100755 (executable)
index 0000000..ebfdefc
--- /dev/null
@@ -0,0 +1,50 @@
+pload QAcommands
+
+puts "======="
+puts "OCC827"
+puts "======="
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and torus
+####################################
+##
+## Note: test for old topology
+##
+################################
+
+set status 1
+
+#
+# a1 - Cylinder
+# a2 - Torus1
+# a3 - Torus1
+# res1 - Fuse(Torus1 & Cylinder)
+# res2 - Fuse(Torus2 & res1)
+#
+
+if [ catch { set info_result [OCC827 a1 a2 a3 a4 a5] } ] {
+  puts "Faulty OCC827 (case 0)"
+} else {
+    puts [checkshape a1]
+    puts [checkshape a2]
+    puts [checkshape a3]
+    bfuse result1 a1 a2
+    puts [checkshape result1]
+    
+    set ExplodeList [explode result1]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+    
+    bfuse result2 result1 a3
+    puts [checkshape result2]
+
+    set ExplodeList [explode result2]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+    renamevar result2 result
+}
+
+set square 11847.7
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug827_2 b/tests/bugs/modalg/bug827_2
new file mode 100755 (executable)
index 0000000..ce69873
--- /dev/null
@@ -0,0 +1,47 @@
+pload QAcommands
+
+puts "======="
+puts "OCC827"
+puts "======="
+puts ""
+####################################
+## BRepAlgoAPI_Fuse fails on cylinder and torus
+####################################
+##
+## Note: test for old topology
+##
+################################
+
+#
+# a1 - Cylinder
+# a2 - Torus1
+# a3 - Torus1
+# res1 - Fuse(Torus1 & Cylinder)
+# res2 - Fuse(Torus2 & res1)
+#
+
+if { [ catch { set info_result [OCC827 a1 a2 a3 a4 a5] } ] } {
+    puts "Faulty an exception was caught"
+} else {
+    puts [checkshape a1]
+    puts [checkshape a2]
+    puts [checkshape a3]
+    bfuse result1 a2 a1
+    puts [checkshape result1]
+    set ExplodeList [explode result1]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+    bfuse result2 a3 result1
+    puts [checkshape result2]
+
+    set ExplodeList [explode result2]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+    
+    renamevar result2 result
+}
+
+set square 11847.7
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug828 b/tests/bugs/modalg/bug828
new file mode 100755 (executable)
index 0000000..8f13851
--- /dev/null
@@ -0,0 +1,28 @@
+pload QAcommands
+
+puts "========"
+puts "OCC828"
+puts "========"
+puts ""
+###############################
+## BRepFilletAPI_MakeFillet fails on prism
+###############################
+
+if { [ catch { set info_result [OCC828 a1] } ] } {
+    puts "Faulty : an exception was caught"
+} else {
+    if { [lsearch ${info_result} FAILED] > -1} {
+       puts "Faulty : command was FAILED"
+    }
+    puts [checkshape a1]
+    explode a1 e
+    blend result a1 10 a1_7 10 a1_6
+
+    set ExplodeList [explode result]
+    if {[llength ${ExplodeList}] < 1} {
+       puts "Faulty : Resulting shape is empty COMPOUND"
+    }
+}
+
+set square 17816.2
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug829_1 b/tests/bugs/modalg/bug829_1
new file mode 100755 (executable)
index 0000000..213f77b
--- /dev/null
@@ -0,0 +1,49 @@
+puts "TODO OCC12345 ALL: An exception was caught"
+puts "TODO OCC12345 ALL: Exception"
+puts "TODO OCC12345 ALL: Error : The command can not be build."
+
+puts "========"
+puts "OCC829"
+puts "========"
+puts ""
+###################################
+## BRepOffsetAPI_MakeOffset fails on given wires
+###################################
+puts " This part -  LIMITATION for existed algorithms"
+###################################
+
+restore [locate_data_file OCC829_w1.brep] a 
+puts [checkshape a]
+explode a w
+
+if { [catch { mkoffset result a_1 1 5 } status] } {
+    puts "Faulty : An exception was caught"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 0
+set 2dviewer 0  
+
diff --git a/tests/bugs/modalg/bug829_2 b/tests/bugs/modalg/bug829_2
new file mode 100755 (executable)
index 0000000..c17d8c9
--- /dev/null
@@ -0,0 +1,43 @@
+
+puts "========"
+puts "OCC829"
+puts "========"
+puts ""
+###################################
+## BRepOffsetAPI_MakeOffset fails on given wires
+###################################
+restore [locate_data_file OCC829_w2.brep] a 
+puts [checkshape a]
+explode a w
+
+if { [catch { mkoffset result a_1 1 5 } status] } {
+    puts "Faulty OCC829 (case 1)"
+} else {
+    renamevar result_1 result
+    set nb_info [nbshapes result]
+    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full ve
+    puts [format "Result shape result contains %s vertexes" $ve]
+    if { $ve == 0 } {
+        puts [format "Faulty : Result shape is NULL shape"]
+    } else {
+        regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full wi
+        if {$wi > 1 } {
+            set ll [explode result w]
+            set num [llength $ll]
+            puts [format "Faulty : Result shape result is COMPOUND and contains %s wires" $num]
+            foreach {k} $ll {
+                puts [checkshape $k]
+                regexp {nb alone Vertices : ([-0-9.+eE]+)} [checksection $k] full cs
+                if { $cs != 0 } {
+                    puts [format "Faulty : Result shape is UNclosed wire !!! " $k]
+                } else {
+                    puts [format "OK: Result shape is CLOSED wire !!! "]
+                }
+            }
+        }
+    }
+}
+
+set length 3690.75
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug890 b/tests/bugs/modalg/bug890
new file mode 100755 (executable)
index 0000000..5ef128e
--- /dev/null
@@ -0,0 +1,22 @@
+
+puts "======="
+puts "OCC890"
+puts "SAM1681"
+puts "======="
+puts ""
+##############################
+## No possibility to fuse the attached prisms.
+##############################
+
+restore [locate_data_file OCC890.brep] a 
+explode a
+
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [ catch { bfuse result a_1 a_2 } catch_result ] } {
+   puts "Faulty OCC890 (case 3)"
+}
+
+set square 1.8276e+06
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug895 b/tests/bugs/modalg/bug895
new file mode 100755 (executable)
index 0000000..a015c8f
--- /dev/null
@@ -0,0 +1,58 @@
+puts "============"
+puts "OCC895"
+puts "============"
+puts ""
+#########################################################
+## In one case, twisted surface is created.
+## The problem is in incorrect computation of mutual orientations of wire segments.
+#########################################################
+
+pload QAcommands
+
+set scale    73.609
+set center_X 7.93702
+set center_Y 0.264503
+set proj_X   0.523995
+set proj_Y   0.359655
+set proj_Z   0.77206
+set up_X     -0.739036
+set up_Y     -0.258607
+set up_Z     0.622051
+set at_X     9.06773
+set at_Y     -1.93771
+set at_Z     1.45124
+
+set x_coord 210
+set y_coord 210
+
+set status 0
+
+set angle 5
+set reverse 0
+set order 0
+
+if { [ catch { OCC895 result ${angle} ${reverse} ${order} } ] } {
+    puts "Faulty : an exception was caught"
+}
+
+if { ${status} == 0} {
+  vinit
+  vsetdispmode 1
+  vdisplay result
+
+  QASetViewCharac ${scale} ${center_X} ${center_Y} \
+                 ${proj_X} ${proj_Y} ${proj_Z} \
+                 ${up_X} ${up_Y} ${up_Z} \
+                 ${at_X} ${at_Y} ${at_Z}
+
+  QAUpdateLights
+  
+  checkcolor $x_coord $y_coord 0.98 0.72 0.13
+  
+  if { ${stat} != 1 } {
+    puts "Faulty OCC895 (case 2)"
+  }
+}
+
+set square 18.1614
+set 3dviewer 1
diff --git a/tests/bugs/modalg/bug910 b/tests/bugs/modalg/bug910
new file mode 100755 (executable)
index 0000000..97f71ff
--- /dev/null
@@ -0,0 +1,50 @@
+#INTERFACE DXF
+puts "============"
+puts "OCC910"
+puts "============"
+puts ""
+#####################################################
+## The problem with sat files depends on problem of BRepTools_WireExplorer
+#####################################################
+
+pload XDE
+catch { source $env(CSF_DrawPluginQADefaults)/QARebuildCommands }
+
+restore [locate_data_file OCC910.rle] a 
+
+puts [checkshape a]
+explode a w
+puts [checkshape a_7]
+
+set list1 [expwire a_7]
+regexp {TopoDS_Iterator\(EDGE\)  donne ([-0-9.+eE]+) Edges} $list1 full TopoDS_Iterator1
+regexp {TopExp_Explorer\(EDGE\)  donne ([-0-9.+eE]+) Edges} $list1 full TopExp_Explorer1
+regexp {BRepTools_WireExplorer donne ([-0-9.+eE]+) Edges} $list1 full BRepTools_WireExplorer1
+
+
+set list2 [expwire a_7 a]
+regexp {TopoDS_Iterator\(EDGE\)  donne ([-0-9.+eE]+) Edges} $list1 full TopoDS_Iterator2
+regexp {TopExp_Explorer\(EDGE\)  donne ([-0-9.+eE]+) Edges} $list1 full TopExp_Explorer2
+regexp {BRepTools_WireExplorer donne ([-0-9.+eE]+) Edges} $list1 full BRepTools_WireExplorer2
+
+puts "TopoDS_Iterator1 = ${TopoDS_Iterator1}"
+puts "TopExp_Explorer1 = ${TopExp_Explorer1}"
+puts "BRepTools_WireExplorer1 = ${BRepTools_WireExplorer1}"
+
+puts "TopoDS_Iterator2 = ${TopoDS_Iterator2}"
+puts "TopExp_Explorer2 = ${TopExp_Explorer2}"
+puts "BRepTools_WireExplorer2 = ${BRepTools_WireExplorer2}"
+
+if { ${TopoDS_Iterator1} != ${TopoDS_Iterator2} || \
+     ${TopExp_Explorer1} != ${TopExp_Explorer2} || \
+     ${BRepTools_WireExplorer1} != ${BRepTools_WireExplorer2} } {
+    puts "Faulty OCC910"
+} else {
+    puts "OCC910 OK"
+}
+
+renamevar a_7 result
+
+set length 149.816
+set 2dviewer 0
+
diff --git a/tests/bugs/modalg/bug919 b/tests/bugs/modalg/bug919
new file mode 100755 (executable)
index 0000000..86dcfdd
--- /dev/null
@@ -0,0 +1,33 @@
+
+puts "======="
+puts "OCC919"
+puts "SAM1623"
+puts "======="
+puts ""
+#############################
+## Impossible to fuse the shapes. 
+##############################
+
+restore [locate_data_file OCC919.brep] a 
+
+explode a
+
+# See comment in CR23244:
+restore [locate_data_file OCC919-PROC.brep] a_1 
+#
+
+puts [checkshape a_1]
+puts [checkshape a_2]
+
+if { [ catch { bfuse result a_1 a_2} catch_result ] } {
+    puts "Faulty OCC919 (case 1)"
+} else {
+    if { [ catch { checkshape result } catch_result ] } {
+       puts "Faulty OCC919 (case 2)"
+    } else {
+       puts "OCC919 OK"
+    }
+}
+
+set square 272591.
+set 2dviewer 0
diff --git a/tests/bugs/modalg/bug957 b/tests/bugs/modalg/bug957
new file mode 100755 (executable)
index 0000000..58e157b
--- /dev/null
@@ -0,0 +1,15 @@
+puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO OCC12345 ALL: Error : The length of result shape is"
+
+puts "========"
+puts "OCC957"
+puts "========"
+puts ""
+##############################################################
+##Draw function PSPHERE creates incorrect shape (according to CHECKSHAPE function)
+##############################################################
+
+psphere result 10 10 10
+
+set length 0
+set 2dviewer 0
diff --git a/tests/bugs/modalg/dxf906 b/tests/bugs/modalg/dxf906
new file mode 100755 (executable)
index 0000000..5e04861
--- /dev/null
@@ -0,0 +1,19 @@
+
+puts "======="
+puts "DXF906"
+puts "OCC889"
+puts "OCC1013"
+puts "======="
+puts ""
+#########################################################
+## After fix OCC157 we have plane surface in face (instead bspline as in C40).
+## But now checkshape founds number of errors on new face. I think that face from
+## c40 is not better than in dev 
+#########################################################
+
+restore [locate_data_file DXF906.rle] a 
+
+mkplane result a
+
+set square 92131.6
+set 2dviewer 0
old mode 100644 (file)
new mode 100755 (executable)
index 89cbce0..c556689
@@ -26,7 +26,7 @@ distmini d v a_8
 set tol [ maxtolerance a_8 ]
 regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol full MaxEdgeTolerance
 regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tol full MaxVertexTolerance
-regexp {([-0-9.+eE]+)} [dump d_val] full d
+regexp {([-0-9.+eE]+)$} [dump d_val] full d
 
 if { [expr $d > $MaxEdgeTolerance] || [expr $d > $MaxVertexTolerance] } {
     puts "Faulty : Result is BAD. Distance is more than MaxTolerance"
diff --git a/tests/bugs/moddata/bug566 b/tests/bugs/moddata/bug566
new file mode 100755 (executable)
index 0000000..586f59c
--- /dev/null
@@ -0,0 +1,43 @@
+pload QAcommands
+
+puts "========"
+puts "OCC566"
+puts "========"
+puts ""
+###############################################
+##BRepBndLib::AddClose builds box larger than BRepBndLib::Add
+###############################################
+
+restore [locate_data_file OCC566.brep] a 
+
+set err1 [bounding a]
+set err2 [OCC566 a]
+
+regexp { *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+)} $err1 full v1_x v1_y v1_z v2_x v2_y v2_z
+regexp { *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+) *([-0-9.+eE]+)} $err2 full v3_x v3_y v3_z v4_x v4_y v4_z
+
+vertex v1 $v1_x $v1_y $v1_z
+vertex v2 $v2_x $v2_y $v2_z
+
+vertex v3 $v3_x $v3_y $v3_z
+vertex v4 $v4_x $v4_y $v4_z
+
+distmini d1 v1 v2
+distmini d2 v3 v4
+
+regexp {([-0-9.+eE]+)$} [dump d1_val] full dis1
+puts $dis1
+regexp {([-0-9.+eE]+)$} [dump d2_val] full dis2
+puts $dis2
+
+set err [expr 1.*abs((($dis1 - $dis2) / $dis2) * 100)]
+puts ""
+puts [format "Different is %s percents" $err]
+
+if {$err > 1.0} {
+    puts " Faulty OCC566: BRepBndLib::AddClose builds box larger than BRepBndLib::Add - this should not be so!"
+} else {
+    puts " OCC566 OK"
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug592 b/tests/bugs/moddata/bug592
new file mode 100755 (executable)
index 0000000..dd05d32
--- /dev/null
@@ -0,0 +1,43 @@
+puts "TODO OCC12345 ALL: Faulty OCC592 : Checkshape BRepCheck_Analyzer does not detect faulty shape"
+
+puts "========================"
+puts " OCC592 "
+puts "========================"
+puts ""
+###################################
+##BRepCheck_Analyzer does not detect faulty shape
+#####################################
+
+restore [locate_data_file OCC592.brep] ff114 
+
+explode ff114 e
+mkcurve cc ff114_8
+cvalue cc 0.95 x y z
+vertex vv x y z
+mksurface gs ff114
+mkface ff gs
+donl ff114 vv
+trim trcc cc
+set aa [distmini dd vv ff]
+
+puts "******* Result *******"
+regexp {([-0-9.+eE]+)$} [dump dd_val] full dis1
+puts "distance between the point on curve and the surface is $dis1"
+
+set tolerance [maxtolerance ff114_8]
+regexp { +Edge +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} $tolerance full MaxEdgeTolerance
+puts "the tolerance of the edge is $MaxEdgeTolerance"
+puts "the tolerance is less than distance between point and surface"
+puts "BUT"
+
+decho off
+set che [checkshape ff114]
+decho on
+
+if { [regexp {Faulty} $che] != 1 } {
+    puts "Faulty OCC592 : Checkshape BRepCheck_Analyzer does not detect faulty shape"
+} else {
+    puts "OCC592 OK: Checkshape (BRepCheck_Analyzer) detects bad shape"
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug618 b/tests/bugs/moddata/bug618
new file mode 100755 (executable)
index 0000000..f061aa6
--- /dev/null
@@ -0,0 +1,21 @@
+
+puts "========================"
+puts "OCC618"
+puts "========================"
+puts ""
+############################
+## Exception during bop
+############################
+
+restore [locate_data_file OCC618a.brep] a 
+puts [checkshape a]
+restore [locate_data_file OCC618b.brep] b 
+puts [checkshape b]
+
+if [catch {bop a b} catch_result] {
+    puts "Faulty OCC618 : BOP operation was made wrongly"
+} else {
+    puts "OCC618 OK: BOP operation works OK"
+}
+
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug705 b/tests/bugs/moddata/bug705
new file mode 100755 (executable)
index 0000000..a440a10
--- /dev/null
@@ -0,0 +1,31 @@
+
+puts "=========="
+puts "OCC705    "
+puts "=========="
+puts ""
+###########################################################
+## The matrix of inertia for sphere computed incorrectly.
+## In the secod case the not diagonal elements of the inertia matrix are not close to zero.
+###########################################################
+
+psphere result 10 10 10
+ttranslate result 10 10 10
+trotate result 0 0 0 0 1 1 34
+
+set list [vprops result]
+set inertia [regexp -all -inline { +[-0-9.+eE]+ +[-0-9.+eE]+ +[-0-9.+eE]+} $list]
+set matrix [regexp -all -inline {[-0-9.+eE]+} $inertia]
+
+set matrix12 [lindex $matrix 1]
+set matrix21 [lindex $matrix 3]
+set matrix23 [lindex $matrix 5]
+set matrix32 [lindex $matrix 7]
+
+if { ${matrix12} != 0. || ${matrix21} != 0. || ${matrix23} != 0. || ${matrix32} != 0. } {
+    puts "Faulty OCC705"
+} else {
+    puts "OCC705 OK"
+}
+
+set length 123.755
+set 2dviewer 0
diff --git a/tests/bugs/moddata/bug712_2 b/tests/bugs/moddata/bug712_2
new file mode 100755 (executable)
index 0000000..74870a8
--- /dev/null
@@ -0,0 +1,22 @@
+pload QAcommands
+
+puts "========"
+puts "OCC712"
+puts "========"
+puts ""
+############################################################
+## Exeption is raised in DRAW during building draft with help command "depouille"
+## on face in the attached shape.
+## The source code of application is also attached and should be checked.
+############################################################
+
+set draftAngle 15
+set slabThick 30
+
+if [catch {OCC712 ${draftAngle} ${slabThick} } catch_result] {
+    puts "Faulty OCC712"
+} else {
+    puts "OCC712 OK"
+}
+
+set 2dviewer 0
index f29345b..6ac758c 100755 (executable)
@@ -8,18 +8,8 @@ puts ""
 ##  meshing is computed again when displaying it. 
 ###############################################################
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set rd_ch 77647
-   set gr_ch 54901
-   set bl_ch 9019
-} else {
-  set rd_ch 78039
-  set gr_ch 55294
-  set bl_ch 9411
-}
+set x_coord 140
+set y_coord 115
 
 restore [locate_data_file OCC20.brep] result
 tclean result
@@ -29,18 +19,7 @@ vfit
 vsetdispmode result 1
 QAUpdateLights
 
-set color [QAGetPixelColor 140 115]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.77 0.54 0.9
 
 set only_screen 1
 
index 180858c..3fb9064 100755 (executable)
@@ -10,7 +10,7 @@ set first [trinfo res]
 tclean res
 
 ######################################################################
-catch {exec rm ${imagedir}/vrem.brep}
+catch {file delete ${imagedir}/vrem.brep}
 save res ${imagedir}/vrem.brep
 
 vinit 
index 5ce933b..801c7a7 100755 (executable)
@@ -5,34 +5,14 @@ puts "================"
 ## The shading is false: objects seem to be situated in front of the others while they are behind.
 ###############################################################
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set rd_ch 43137
-   set gr_ch 48235
-   set bl_ch 54117
-} else {
-   set rd_ch 43137
-   set gr_ch 48235
-   set bl_ch 54509
-}
+set x_coord 171
+set y_coord 171
 
 vinit
 OCC128
 QASetViewCharac 4.9487928 89.23589 4.1505 0.7329295 0.59461397 0.33052679 -0.536849 0.2071041 0.81786 71.971878 -17.250309 33.509651
 QAUpdateLights
-set color [QAGetPixelColor 171 171]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : The shading is false. Colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.43 0.48 0.54
 
 set only_screen 1
index 382a241..38ce586 100755 (executable)
@@ -1,26 +1,16 @@
-puts "TODO OCC12345 ALL: Error : colors are not equal"
-puts "TODO OCC12345 ALL: Error : 3D Viewer is empty"
-
+puts "TODO OCC12345 ALL: Error : Colors are not equal in default coordinate and in the near coordinates too"
 puts "================"
 puts "OCC136"
 puts "================"
 
+set x_coord 211
+set y_coord 215
+
 vinit
 OCC136
 vfit
-set rd_ch 0.8
-set gr_ch 0.8
-set bl_ch 0.8
-
-set color [QAGetPixelColor 211 215]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
 
-if { ${rd} != ${rd_ch} || ${gr} != ${gr_ch} || ${bl} != ${bl_ch} } {
-    puts "Error : colors are not equal"
-    puts "Error : 3D Viewer is empty"
-}
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
 
 set only_screen 1
 
index 8a5c655..e26ee4d 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========"
 puts "OCC138"
 puts "========"
index 5da598b..487f828 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "================"
 puts "OCC146"
 puts "================"
@@ -16,33 +15,15 @@ QASelect2d 155 180
 QASelect2d 155 180
 QASelect2d 155 180
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set x1 155
-   set y1 180
-} else {
-   set x1 155
-   set y1 177
-}
-
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
-
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set coord_x 155
+set coord_y 177
+set color2d 1
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $coord_x $coord_y 0.8 0.8 0.8
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : The second selection of selected object deselects it and the following clicks have no effect"
 }
 
 set only_screen2d 1
+
index d9dc7e4..1bd40ee 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========================"
 puts "OCC153"
 puts "========================"
@@ -13,6 +12,7 @@ repeat 23 {
         if [catch { v2dsetbg [locate_data_file OCC153.gif] } res] {
           puts [format "%s  ) Faulty OCC153: here is problem with v2dsetbg command" $j]
        } else {
-         puts [format "%s  )  : OCC153 OK" $j]
+          puts [format "%s  )  : OCC153 OK" $j]
        }
-        incr j}         
+        incr j
+       }        
index 1394b45..7446630 100755 (executable)
@@ -16,26 +16,24 @@ v2dfit
 
 v2deraseall
 
-set color1 [QAAISGetPixelColor2d 370 37]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
+set x_coord 370
+set y_coord 37
+set color2d 1
 
-if { ${rd1} != 0 || ${gr1} != 0 || ${bl1} != 0 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 0 0 0
+
+if { $stat != 1 } {
     puts "Error : Object was not erased"
 }
 
 v2ddisplayall
 
-set color2 [QAAISGetPixelColor2d 370 37]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
+checkcolor $x_coord $y_coord 1 1 0
 
-if { ${rd2} != 1 || ${gr2} != 1 || ${bl1} != 0 } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Object was not displayed"
 }
 
 set only_screen2d 1
+
+
index bdb1ec4..1f9b99f 100755 (executable)
@@ -17,15 +17,16 @@ v2dfit
 
 v2derase b1
 
-set color [QAAISGetPixelColor2d 370 37]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 370
+set y_coord 37
+set color2d 1
 
-if { ${rd} != 0 || ${gr} != 0 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 0 0 0
+
+if { $stat != 1 } {
     puts "Object was not erased"
 }
 
 set only_screen2d 1
 
+
index 9172176..731a0cb 100755 (executable)
@@ -15,14 +15,15 @@ v2ddisplay v_v
 v2ddisplay v_v1
 v2dfit
 
-set color [QAAISGetPixelColor2d 405 7]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 405
+set y_coord 7
+set color2d 1
 
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
     puts "Error : Vertexes 2D were NOT LOADED properly"
 }
 
 set only_screen2d 1
+
index 690ae29..0d7c9b1 100755 (executable)
@@ -14,13 +14,13 @@ pcone c_o 15 0 50 360
 v2ddisplay c_o
 v2dfit
 
-set color [QAAISGetPixelColor2d 338 77]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 338
+set y_coord 77
+set color2d 1
 
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
     puts "Error : pCone 2D was NOT LOADED properly into viewer"
 }
 
index a34b9d9..d39023f 100755 (executable)
@@ -13,14 +13,15 @@ pcylinder c_y 5 10
 v2ddisplay c_y
 v2dfit
 
-set color [QAAISGetPixelColor2d 338 75]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 338
+set y_coord 75
+set color2d 1
 
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
     puts "Error : pCylinder 2D was NOT LOADED properly into viewer"
 }
 
 set only_screen2d 1
+
index 8f7dd14..8e4b5b7 100755 (executable)
@@ -17,30 +17,14 @@ vdisplay result
 vfit
 vsetdispmode result 1
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set rd_ch 100000
-   set gr_ch 75294
-   set bl_ch 15294
-} else {
-   set rd_ch 100000
-   set gr_ch 75686
-   set bl_ch 15294
-}
+set x_coord 175
+set y_coord 195
+
 QAUpdateLights
-set color1 [QAGetPixelColor 175 195]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
 
-set rd_int [expr int($rd1 * 1.e+05)]
-set gr_int [expr int($gr1 * 1.e+05)]
-set bl_int [expr int($bl1 * 1.e+05)]
+checkcolor $x_coord $y_coord 1 0.75 0.15
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Shading is missing in 3D Viewer"
 }
 
@@ -48,13 +32,11 @@ if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
 vsetmaterial result COPPER
 
 QAUpdateLights
-set color2 [QAGetPixelColor 175 195]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
 
-if { ${rd2} == ${rd1} || ${gr2} == ${gr1} || ${bl2} == ${bl1} } {
-    puts "Error : material of shape was NOT changed"
+checkcolor $x_coord $y_coord 0.77 0.32 0.23
+
+if { $stat != 1 } {
+    puts "Error : material of shape is not COPPER"
 }
 
 set only_screen 1
index 00f1c52..1d72e5c 100755 (executable)
@@ -13,46 +13,27 @@ vinit
 vdisplay result
 vfit
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set rd_ch 77647
-   set gr_ch 54901
-   set bl_ch 9019
-} else {
-   set rd_ch 78039
-   set gr_ch 55294
-   set bl_ch 9411
-}
+set x_coord 235
+set y_coord 214
 
 vsetdispmode result 1
 QAUpdateLights
-set color [QAGetPixelColor 235 214]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Shading is OFF, but should be ON"
 }
 
 vsetdispmode result 0
 
 QAUpdateLights
-set color0 [QAGetPixelColor 235 214]
-regexp {RED +: +([-0-9.+eE]+)} $color0 full rd0
-regexp {GREEN +: +([-0-9.+eE]+)} $color0 full gr0
-regexp {BLUE +: +([-0-9.+eE]+)} $color0 full bl0
 
-if { ${rd0} != 0 || ${gr0} != 1 || ${bl0} != 0 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 0 1 0
+
+if { $stat != 1 } {
     puts "Error : Shading is ON, but should be OFF"
 }
 
 set only_screen 1
+
index 394452c..080dbb3 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========"
 puts "OCC193"
 puts "========"
@@ -14,37 +13,21 @@ v2dgrid Circ 500 500 250 12 30 Lines
 set Position_X -667.802
 set Position_Y -441.402
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set rd_ch 49411
-   set gr_ch 49411
-   set bl_ch 49411
-} else {
-   set rd_ch 49803
-   set gr_ch 49803
-   set bl_ch 49803
-}
+set x_coord 67
+set y_coord 295
+set color2d 1
 
-set color [QAAISGetPixelColor2d 67 295]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 0.49 0.49 0.49
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Objects was not displayed"
 }
 
-v2dpickgrid 67 295 x_coord y_coord
+v2dpickgrid 67 295 x_ch y_ch
 
-if { ${x_coord} != ${Position_X} || ${y_coord} != ${Position_Y} } {
+if { ${x_ch} != ${Position_X} || ${y_ch} != ${Position_Y} } {
    puts "Error : Function v2dpickgrid works wrongly"
 }
 
 set only_screen2d 1
+
index 2dd6a5f..505afeb 100755 (executable)
@@ -12,33 +12,13 @@ puts ""
 v2dinit
 v2dgrid Rect 500 500 200 200 45 Lines
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-    set x1 25
-    set y1 360
-    set rd_ch 49411
-    set gr_ch 49411
-    set bl_ch 49411
-} else {
-    set x1 25
-    set y1 361
-    set rd_ch 49803
-    set gr_ch 49803
-    set bl_ch 49803
-}
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 25
+set y_coord 361
+set color2d 1
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.49 0.49 0.49
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : 2D Rectangular ROTATED Grid WITH Lines was NOT CREATED properly"
 }
 
index 4915963..e5b0bd6 100755 (executable)
@@ -10,38 +10,16 @@ puts ""
 
 v2dinit
 v2dgrid Rect 500 500 200 200 45 Points
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-    set x1 20
-    set y1 20
-    set rd_ch 100000
-    set gr_ch 100000
-    set bl_ch 100000
-##    set rd_ch 49411
-##    set gr_ch 49411
-##    set bl_ch 49411
-} else {
-    set x1 20
-    set y1 21
-    set rd_ch 70196
-    set gr_ch 70196
-    set bl_ch 70196
-}
 
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 20
+set y_coord 21
+set color2d 1
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.7 0.7 0.7
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : 2D Rectangular ROTATED Grid WITHOUT Lines was NOT CREATED properly"
 }
 
 set only_screen2d 1
+
index eae1b71..a7327c1 100755 (executable)
@@ -25,13 +25,13 @@ repeat 5 {
        incr i
 }
 
-set color [QAAISGetPixelColor2d 190 105]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 190
+set y_coord 105
+set color2d 1
 
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 1 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 1
+
+if { $stat != 1 } {
     puts "Error : Scaling of text font number 23 was NOT MADE properly"
 }
 
index 3cbbc0a..6f24dc9 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========"
 puts "OCC196"
 puts "========"
@@ -25,25 +24,15 @@ repeat 10 {
        incr j
 }
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set x1 336
-   set y1 348
-} else {
-   set x1 336
-   set y1 347
-}
+set x_coord 336
+set y_coord 347
+set color2d 1
 
-set color [QAAISGetPixelColor2d ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 1 1 1
 
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 1 } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Rotation of text font number 23 was NOT MADE properly"
 }
 
 set only_screen2d 1
+
index 1e9ae21..0f9e740 100755 (executable)
@@ -15,54 +15,31 @@ v2dinit
 box b_b 10 15 20
 v2ddisplay b_b 0 0 0 1 1 1 1 0 0
 v2dfit
+set color2d 1
 
 QAv2dSetHighlightMode 1
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set Position_X1 184
-   set Position_Y1 181
-   set Position_X2 184
-   set Position_Y2 181
-} else {
-   set Position_X1 169
-   set Position_Y1 148
-   set Position_X2 184
-   set Position_Y2 180
-}
-
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
 
 QASelect2d 169 148
 QAMoveTo2d 0 0
 QAShiftSelect2d 184 180
 
-set j 1 
-repeat 2 {
-       set Position_X [set Position_X$j]
-       set Position_Y [set Position_Y$j]
-       puts " Position_X$j= $Position_X  Position_Y$j= $Position_Y"
-       
-       set color [QAAISGetPixelColor2d ${Position_X} ${Position_Y} ]
-       regexp {RED +: +([-0-9.+eE]+)} $color full rd
-       regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-       regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 169
+set y_coord 148
 
-       set rd_int [expr int($rd * 1.e+05)]
-       set gr_int [expr int($gr * 1.e+05)]
-       set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
+if { ${stat} != 1 } {
+    puts "Error : (PRIMITIVE number 1) Multiple Selection: Choosing of viewer MOD for selection of PRIMITIVE was NOT MADE properly"
+}
+
+set x_coord 184
+set y_coord 180
 
-       if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-                 puts "Error : colors are not equal"
-         puts "Error : (PRIMITIVE number $j) Multiple Selection: Choosing of viewer MOD for selection of PRIMITIVE was NOT MADE properly"
-       }
-       
-       incr j
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
+if { ${stat} != 1 } {
+    puts "Error : (PRIMITIVE number 2) Multiple Selection: Choosing of viewer MOD for selection of PRIMITIVE was NOT MADE properly"
 }
 
 set only_screen2d 1
 
 
+
index 9085d79..7234b57 100755 (executable)
@@ -15,49 +15,28 @@ box b_b 10 15 20
 v2ddisplay b_b 0 0 0 1 1 1 1 0 0
 v2dfit
 QAv2dSetHighlightMode 2
+set color2d 1
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set Position_X1 296
-   set Position_Y1 161
-   set Position_X2 76
-   set Position_Y2 290
-} else {
-  set Position_X1 296
-  set Position_Y1 160
-  set Position_X2 76
-  set Position_Y2 290
-}
+QASelect2d 296 160
+QAMoveTo2d 0 0
+QAShiftSelect2d 76 290
 
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
+set x_coord 296
+set y_coord 161
 
-QASelect2d $Position_X1 $Position_Y1
-QAMoveTo2d 0 0
-QAShiftSelect2d $Position_X2 $Position_Y2
-set j 1 
-repeat 2 {
-       set Position_X [set Position_X$j]
-       set Position_Y [set Position_Y$j]
-       puts " Position_X$j= $Position_X  Position_Y$j= $Position_Y"
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
+
+if { ${stat} != 1 } {
+    puts "Error : (ELEMENT number 1) Multiple Selection: Choosing of viewer MOD for selection of ELEMENT was NOT MADE properly"
+}
 
-       set color [QAAISGetPixelColor2d ${Position_X} ${Position_Y}]
-       regexp {RED +: +([-0-9.+eE]+)} $color full rd
-       regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-       regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 76
+set y_coord 290
 
-       set rd_int [expr int($rd * 1.e+05)]
-       set gr_int [expr int($gr * 1.e+05)]
-       set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
 
-       if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-           puts "Error : colors are not equal"
-          puts "Error : (ELEMENT number $j) Multiple Selection: Choosing of viewer MOD for selection of ELEMENT was NOT MADE properly"
-       }
-       incr j
+if { ${stat} != 1 } {
+    puts "Error : (ELEMENT number 2) Multiple Selection: Choosing of viewer MOD for selection of ELEMENT was NOT MADE properly"
 }
 
 set only_screen2d 1
index 1ee8bf7..8e46868 100755 (executable)
@@ -1,6 +1,5 @@
-puts "TODO OCC12345 ALL: Error : colors are not equal"
 puts "TODO OCC12345 ALL: Error : 3 boxes missing in the viewer!"
-
+puts "TODO OCC12345 ALL: Error : Colors are not equal in default coordinate and in the near coordinates too"
 puts "========"
 puts "OCC204"
 puts "========"
@@ -9,21 +8,12 @@ vinit
 OCC204 0
 vfit
 
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
-
-set color [QAGetPixelColor 150 200]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 150
+set y_coord 200
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.8 0.8 0.8
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { ${stat} != 1 } {
     puts "Error : 3 boxes missing in the viewer!"
 }
 
index e278b95..b7ed4d8 100755 (executable)
@@ -6,22 +6,14 @@ vinit
 OCC204 1
 vfit
 
-set rd_ch 80000
-set gr_ch 80000
-set bl_ch 80000
+set x_coord 150
+set y_coord 200
 
-set color [QAGetPixelColor 150 200]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 0 0 0
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} == ${rd_ch} || ${gr_int} == ${gr_ch} || ${bl_int} == ${bl_ch} } {
-    puts "Error : colors are not equal"
-    puts "Error : There are 3 boxes in the viewer!"
+if { ${stat} != 1 } {
+    puts "Error : There are 3 boxes in the viewer! (should be nothing)"
 }
 
 set only_screen 1
+
index 3997b81..04bec5b 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========"
 puts "OCC215"
 puts "========"
@@ -26,5 +25,10 @@ set at_Z     -12.5332689285278
 
 QASetViewCharac ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
 
-QAGetPixelColor 229 94 1 1 0
+set x_coord 229
+set y_coord 94
+
+checkcolor $x_coord $y_coord 1 1 0
+
 set only_screen 1
+
index 8e8ad5e..fd56661 100755 (executable)
@@ -1,7 +1,3 @@
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-
 puts "================"
 puts "OCC218"
 puts "================"
@@ -26,51 +22,25 @@ set at_X     1.04834496974945
 set at_Y     0.741619229316711
 set at_Z     -0.0881031528115273
 
-if { [string compare $os "windows"] == 0 } {
-    set rd_ch 90588
-    set gr_ch 90588
-    set bl_ch 0
-
-    set BLACK_R 0
-    set BLACK_G 0
-    set BLACK_B 0
-
-    set x1 376
-    set y1 24
-} else {
-    set rd_ch 65098
-    set gr_ch 65098
-    set bl_ch 0
-
-    set BLACK_R 0
-    set BLACK_G 0
-    set BLACK_B 0
-
-    set x1 388
-    set y1 28
-}
+set x_coord 388
+set y_coord 28
 
 QASetViewCharac ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
 
 OCC218 trihedron1 b_1 X Y
 QAUpdateLights
-QAGetPixelColor ${x1} ${y1} ${BLACK_R} ${BLACK_G} ${BLACK_B}
+
+checkcolor $x_coord $y_coord 0 0 0
 
 OCC218 trihedron1 b_1 my___axis___1 my___axis2
 QAUpdateLights
 
-set color [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
+checkcolor $x_coord $y_coord 0.85 0.85 0
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "There is no messages near axes"
 }
 
 set only_screen 1
 
+
index 02d2649..9a0f0df 100755 (executable)
@@ -14,31 +14,25 @@ set mistake1 0
 v2ddisplay s_p 0 0 0 1 1 1 1 0 0
 v2dfit
 v2dsetwidth s_p VERYTHICK
-set Color_R 1
-set Color_G 1
-set Color_B 0
 
-set color [QAAISGetPixelColor2d 393 210]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 393
+set y_coord 210
+set color2d 1
 
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
+checkcolor $x_coord $y_coord 1 1 0
+
+if { $stat != 1 } {
     puts "Error : New widht was NOT assigned"
 }
 
 v2dunsetwidth s_p
 
-set color [QAAISGetPixelColor2d 393 210]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+checkcolor $x_coord $y_coord 0 0 0
 
-if { ${rd} != 0 || ${gr} != 0 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Function V2DUNSETWIDTH for shapes does NOT WORK properly"
 }
 
 set only_screen2d 1
 
+
index 826a1f7..34cac28 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========================"
 puts " OCC225 "
 puts "========================"
@@ -17,14 +16,15 @@ v2dsetcolor b_b BLUE3
 wait 5
 v2dunsetcolor b_b
 
-set color [QAAISGetPixelColor2d 22 230]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 22
+set y_coord 230
+set color2d 1
+
+checkcolor $x_coord $y_coord 1 1 0
 
-if { ${rd} != 1 || ${gr} != 1 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : function V2DUNSETCOLOR for BOX 2D does NOT WORK properly"
 }
 
 set only_screen2d 1
+
index 146aac4..fc93feb 100755 (executable)
@@ -23,48 +23,14 @@ vsetdispmode 1
 vzoom 0.5
 vpan 100 0
 
-set x1 300
-set y1 130
-if { [string compare $tcl_platform(os) "Windows NT"] == 0 }  {
-  puts "STATION IS WNT"
-  set r_check 0.77646999999999999
-  set g_check 0.54901900000000003
-  set b_check 0.090195999999999998
-} else {
-  set r_check 0.78039199999999997
-  set g_check 0.55294100000000002
-  set b_check 0.094117000000000006
-}
-
-set r_check [expr int($r_check * 1.e5)]
-set g_check [expr int($g_check * 1.e5)]
-set b_check [expr int($b_check * 1.e5)]
-
-puts "r_check=$r_check"
-puts "g_check=$g_check"
-puts "b_check=$b_check"
-
-set color1 [ QAGetPixelColor ${x1} ${y1} ]
+set x_coord 300
+set y_coord 130
 
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
 
-set rd1 [expr int($rd1 * 1.e5)]
-set gr1 [expr int($gr1 * 1.e5)]
-set bl1 [expr int($bl1 * 1.e5)]
-
-puts "rd1=$rd1"
-puts "gr1=$gr1"
-puts "bl1=$bl1"
-
-set status1 0
-if { $rd1 != $r_check || $gr1 != $g_check || $bl1 != $b_check } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Transform persistence is not restored"
-} else {
-    puts "OK : colors are equal"
-    puts "OK : Transform persistence is restored"
 }
 
 set only_screen 1
+
old mode 100644 (file)
new mode 100755 (executable)
index 25e0d47..c5e7329
@@ -8,16 +8,6 @@ puts ""
 pload QAcommands
 pload XDEDRAW
 
-set r_check 1
-set g_check 0
-set b_check 0
-set x1 178
-set y1 36
-set x2 224
-set y2 39
-set x3 244
-set y3 89
-
 XNewDoc Doc1
 ReadStep Doc1 [locate_data_file screw.step]
 XShow Doc1 0:1:1:1
@@ -25,37 +15,24 @@ XShowFaceBoundary Doc1 0:1:1:1 1 255 0 0 10 1
 vfit
 vsetdispmode 1
 
-set color1 [ QAGetPixelColor ${x1} ${y1} ]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-set status1 0
-if { $rd1 != $r_check || $gr1 != $g_check || $bl1 != $b_check } {
-    set status1 1
-}
+set x_coord 178
+set y_coord 36
 
-set color2 [ QAGetPixelColor ${x2} ${y2} ]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
-set status2 0
-if { $rd2 != $r_check || $gr2 != $g_check || $bl2 != $b_check } {
-    set status2 1
-}
+checkcolor $x_coord $y_coord 1 0 0
 
-set color3 [ QAGetPixelColor ${x3} ${y3} ]
-regexp {RED +: +([-0-9.+eE]+)} $color3 full rd3
-regexp {GREEN +: +([-0-9.+eE]+)} $color3 full gr3
-regexp {BLUE +: +([-0-9.+eE]+)} $color3 full bl3
-set status3 0
-if { $rd3 != $r_check || $gr3 != $g_check || $bl3 != $b_check } {
-    set status3 1
+if { $stat != 1 } {
+   puts "Error : Boundary of face is not changed"
 }
 
-if { $status1 != 0 && $status2 != 0 && $status3 != 0 } {
-    puts "Error : color are not equal"
-    puts "Error : Boundary of face is not changed"
+set x_coord 244
+set y_coord 89
+
+checkcolor $x_coord $y_coord 1 0 0
+
+if { $stat != 01} {
+   puts "Error : Boundary of face is not changed"
 }
 
 set only_screen 1
 
+
old mode 100644 (file)
new mode 100755 (executable)
index c046963..471a138
@@ -8,16 +8,6 @@ puts ""
 pload QAcommands
 pload AISV MODELING
 
-set r_check 1
-set g_check 0
-set b_check 0
-set x1 183
-set y1 190
-set x2 292
-set y2 358
-set x3 26
-set y3 265
-
 box b 10 10 10
 vinit
 vdisplay b
@@ -25,35 +15,30 @@ vsetdispmode 1
 vshowfaceboundary b 1 255 0 0 10 1
 vfit
 
-set color1 [ QAGetPixelColor ${x1} ${y1} ]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-set status1 0
-if { $rd1 != $r_check || $gr1 != $g_check || $bl1 != $b_check } {
-    set status1 1
-}
+set x_coord 183
+set y_coord 190
+
+checkcolor $x_coord $y_coord 1 0 0
 
-set color2 [ QAGetPixelColor ${x2} ${y2} ]
-regexp {RED +: +([-0-9.+eE]+)} $color2 full rd2
-regexp {GREEN +: +([-0-9.+eE]+)} $color2 full gr2
-regexp {BLUE +: +([-0-9.+eE]+)} $color2 full bl2
-set status2 0
-if { $rd2 != $r_check || $gr2 != $g_check || $bl2 != $b_check } {
-    set status2 1
+if { $stat != 1 } {
+    puts "Error : Boundary of face is not changed"
 }
 
-set color3 [ QAGetPixelColor ${x3} ${y3} ]
-regexp {RED +: +([-0-9.+eE]+)} $color3 full rd3
-regexp {GREEN +: +([-0-9.+eE]+)} $color3 full gr3
-regexp {BLUE +: +([-0-9.+eE]+)} $color3 full bl3
-set status3 0
-if { $rd3 != $r_check || $gr3 != $g_check || $bl3 != $b_check } {
-    set status3 1
+set x_coord 292
+set y_coord 358
+
+checkcolor $x_coord $y_coord 1 0 0
+
+if { $stat != 1 } {
+    puts "Error : Boundary of face is not changed"
 }
 
-if { $status1 != 0 && $status2 != 0 && $status3 != 0 } {
-    puts "Error : color are not equal"
+set x_coord 26
+set y_coord 265
+
+checkcolor $x_coord $y_coord 1 0 0
+
+if { $stat != 1 } {
     puts "Error : Boundary of face is not changed"
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index 4e1ba32..e516ded 100755 (executable)
@@ -11,31 +11,25 @@ vfit
 OCC280 0 0
 
 # selected point
-set x1 218
-set y1 196
-
-set Cyan_R 0
-set Cyan_G 1
-set Cyan_B 1
-
-set Yellow_R 1
-set Yellow_G 1
-set Yellow_B 0
+set x_coord 218
+set y_coord 196
 
 # There is not selection
 puts "There is not selection"
-QAGetPixelColor $x1 $y1 $Yellow_R $Yellow_G $Yellow_B
+
+checkcolor $x_coord $y_coord 1 1 0
 
 # Move a mouse
 puts "Move a mouse"
-QAMoveTo $x1 $y1
-QAMoveTo $x1 $y1
+QAMoveTo $x_coord $y_coord
+QAMoveTo $x_coord $y_coord
 
 QAUpdateLights
 
 # There is a selection
 puts "There is a selection"
-QAGetPixelColor $x1 $y1 $Cyan_R $Cyan_G $Cyan_B
+
+checkcolor $x_coord $y_coord 0 1 1
 
 set only_screen 1
 
index 98fa0c1..390a184 100755 (executable)
@@ -10,45 +10,22 @@ vsetdispmode b 1
 
 OCC280 0 1
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-   set rd_ch 77647
-   set gr_ch 54901
-   set bl_ch 9019
-} else {
-   set rd_ch 78039
-   set gr_ch 55294
-   set bl_ch 9411
-}
+set x_coord 10
+set y_coord 240
 
 puts "Before View->FitAll()"
 QAUpdateLights
-set color0 [QAGetPixelColor 10 240]
-regexp {RED +: +([-0-9.+eE]+)} $color0 full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color0 full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color0 full bl
 
-if { ${rd} != 0 || ${gr} != 0 || ${bl} != 0 } {
-    puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0 0 0
 
 vfit
 
 puts "After View->FitAll()"
 QAUpdateLights
-set color1 [QAGetPixelColor 10 240]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
 
-set rd_int [expr int($rd1 * 1.e+05)]
-set gr_int [expr int($gr1 * 1.e+05)]
-set bl_int [expr int($bl1 * 1.e+05)]
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
 
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
+if { $stat != 1 } {
     puts "Error : Function vfit works wrongly"
 }
 
index 266cfe2..4c2029a 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========================"
 puts " OCC288 "
 puts "(case 1)"
index 42d3f15..8657c2c 100755 (executable)
@@ -1,4 +1,3 @@
-
 puts "========================"
 puts " OCC288 "
 puts "(case 2)"
index b44e8ca..d895859 100755 (executable)
@@ -30,6 +30,7 @@ if { $tri == 9 && $nod == 8 }  {
    puts "Shading of OCC344 looks like OK, but visual checking is required"
 }
 
-set only_screen 1
+set 3dviewer 1
+
 
 
index 575f667..88d62ff 100755 (executable)
@@ -4,20 +4,8 @@ puts "OCC64"
 puts "================"
 puts ""
 
-set rd_ch 0
-set gr_ch 1
-set bl_ch 1
-
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-    set x1 204
-    set y1 204
-} else {
-    set x1 205
-    set y1 205
-}
+set x_coord 205
+set y_coord 205
 
 vinit
 vtrihedron tri
@@ -26,13 +14,6 @@ vtri_orig tri
 QAMoveTo 205 205
 QAUpdateLights
 
-set color [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd_int
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr_int
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl_int
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0 1 1
 
 set only_screen 1
index 2e808e5..ae8e489 100755 (executable)
@@ -43,37 +43,14 @@ SetShape D 0:1:4 b
 AISSet D 0:1:4 NS
 AISDisplay D 0:1:4
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-    set x1 260
-    set y1 170
-    set rd_ch 77647
-    set gr_ch 54901
-    set bl_ch 9019
-} else {
-    set x1 255
-    set y1 105
-    set rd_ch 78039
-    set gr_ch 55294
-    set bl_ch 9411
-}
+set x_coord 273
+set y_coord 115
 
 QAUpdateLights
-set color [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
 
-set rd_int [expr int($rd * 1.e+05)]
-set gr_int [expr int($gr * 1.e+05)]
-set bl_int [expr int($bl * 1.e+05)]
-
-if { ${rd_int} != ${rd_ch} || ${gr_int} != ${gr_ch} || ${bl_int} != ${bl_ch} } {
-    puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.78 0.55 0.9
 
 set only_screen 1
 
 
+
index e353bd6..ce2dff3 100755 (executable)
@@ -42,37 +42,13 @@ AISSet D 0:1:4 NS
 AISDisplay D 0:1:4
 vfit
 
-if { [array get env os_type] != "" } {
-    set os $env(os_type)
-}
-if { [string compare $os "windows"] == 0 } {
-    set x1 231
-    set y1 170
-    set rd_ch1 76078
-    set gr_ch1 53725
-    set bl_ch1 8627
-} else {
-    set x1 263
-    set y1 140
-    set rd_ch1 76862
-    set gr_ch1 54117
-    set bl_ch1 9019
-}
+set x_coord 230
+set y_coord 160
 
-set color1 [QAGetPixelColor ${x1} ${y1}]
-regexp {RED +: +([-0-9.+eE]+)} $color1 full rd1
-regexp {GREEN +: +([-0-9.+eE]+)} $color1 full gr1
-regexp {BLUE +: +([-0-9.+eE]+)} $color1 full bl1
-
-set rd_int1 [expr int($rd1 * 1.e+05)]
-set gr_int1 [expr int($gr1 * 1.e+05)]
-set bl_int1 [expr int($bl1 * 1.e+05)]
-
-if { ${rd_int1} != ${rd_ch1} || ${gr_int1} != ${gr_ch1} || ${bl_int1} != ${bl_ch1} } {
-   puts "Error : colors are not equal"
-}
+checkcolor $x_coord $y_coord 0.76 0.54 0.9
 
 set only_screen 1
 
 
 
+
index 777be09..70c26b6 100755 (executable)
@@ -7,9 +7,6 @@ puts ""
 ###########################################################################
 pload QAcommands
 
-if {[array get env os_type] != ""} {
-    set os $env(os_type)
-}
 
 set aFile $imagedir/bug23193_sample.stl
 
@@ -22,16 +19,13 @@ meshcolors m1 elem2 1
 QARotateV3dView 4 0 0 1
 vfit
 
-set color [QAGetPixelColor 189 236]
-regexp {RED +: +([-0-9.+eE]+)} $color full rd
-regexp {GREEN +: +([-0-9.+eE]+)} $color full gr
-regexp {BLUE +: +([-0-9.+eE]+)} $color full bl
+set x_coord 189
+set y_coord 236
 
-set a [expr $bl*10]
-set bl_1 [expr round($a)]
+checkcolor $x_coord $y_coord 0 0 0.7
 
-if { $rd != 0 || $gr != 0 || $bl_1 != 7 } {
-    puts "Error : Color are not equal. There is missing triangle"
+if { ${stat} != 1 } {
+    puts "Error : There is missing triangle"
 }
 
 set only_screen 1