0014531: Boolean Operation Algorithm fails
[occt.git] / tests / bugs / end
index b0fd165..f0fdf2a 100755 (executable)
-if { [info exists square] } {
-    set prop "square"
-    set mass $square
-    if { [info exists tol_square] } {
-       regexp {Mass +: +([-0-9.+eE]+)} [sprops result $tol_square] full m
-    } else {
-       regexp {Mass +: +([-0-9.+eE]+)} [sprops result] full m
-    }
-}
-if { [info exists length] } {
-    set prop "length"
-    set mass $length
-    regexp {Mass +: +([-0-9.+eE]+)} [lprops result] full m      
-
-    puts "checksection"
-    puts [checksection result]
-}
-
-#if mass (length or square) is empty in test case then result should be an empty shape.
-if { [info exists mass] } {
-    if { [string compare $subgroup "moddata"] != 0 } {
-       puts "checkshape"
-       checkshape result
-    }
-      
-    if { [string compare "$mass" "empty"] != 0 } {
-       if { $m == 0 } {
-                   puts "Error : The command is not valid. The $prop is 0."
-       }
-       if { $mass > 0 } {
-                   puts "The expected $prop is $mass"
-       }
-       #check of change of square is < 1%
-       if { ($mass != 0 && [expr 1.*abs($mass - $m)/$mass] > 0.01) || ($mass == 0 && $m != 0) } {
-           puts "Error : The $prop of result shape is $m"
-       }
-    } else {
-       if { $m != 0 } {
-                   puts "Error : The command is not valid. The $prop is $m"
-       }
-    }
-}
-
-set glob_inf [info global nb_*_good]
-if { [regexp "nb_.*_good" $glob_inf] == 1 } {
-    if { [info exists nbsh_t] } {
-       set nb_info [nbshapes result -t]
-    } else {
-        set nb_info [nbshapes result]
-    }
-}
-
-if { [info exists nb_v_good] } {
-    regexp {VERTEX +: +([-0-9.+eE]+)} $nb_info full nb_v
-    if { ${nb_v} != ${nb_v_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_v_good} vertexes instead of ${nb_v}"
-    } else {
-        puts "Result shape contains ${nb_v} vertexes"
-    }
-}
-
-if { [info exists nb_e_good] } {
-    regexp {EDGE +: +([-0-9.+eE]+)} $nb_info full nb_e
-    if { ${nb_e} != ${nb_e_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_e_good} edges instead of ${nb_e}"
-    } else {
-        puts "Result shape contains ${nb_e} edges"
-    }
-}
-
-if { [info exists nb_w_good] } {
-    regexp {WIRE +: +([-0-9.+eE]+)} $nb_info full nb_w
-    if { ${nb_w} != ${nb_w_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_w_good} wires instead of ${nb_w}"
-    } else {
-        puts "Result shape contains ${nb_w} wires"
-    }
-}
-
-if { [info exists nb_f_good] } {
-    regexp {FACE +: +([-0-9.+eE]+)} $nb_info full nb_f
-    if { ${nb_f} != ${nb_f_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_f_good} faces instead of ${nb_f}"
-    } else {
-        puts "Result shape contains ${nb_f} faces"
-    }
-}
-
-if { [info exists nb_sh_good] } {
-    regexp {SHELL +: +([-0-9.+eE]+)} $nb_info full nb_sh
-    if { ${nb_sh} != ${nb_sh_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_sh_good} shells instead of ${nb_sh}"
-    } else {
-        puts "Result shape contains ${nb_sh} shells"
-    }
-}
-
-if { [info exists nb_sol_good] } {
-    regexp {SOLID +: +([-0-9.+eE]+)} $nb_info full nb_sol
-    if { ${nb_sol} != ${nb_sol_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_sol_good} solids instead of ${nb_sol}"
-    } else {
-        puts "Result shape contains ${nb_sol} solids"
-    }
-}
-
-if { [info exists nb_compsol_good] } {
-    regexp {COMPSOLID +: +([-0-9.+eE]+)} $nb_info full nb_compsol
-    if { ${nb_compsol} != ${nb_compsol_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_compsol_good} compsolids instead of ${nb_compsol}"
-    } else {
-        puts "Result shape contains ${nb_compsol} compsolids"
-    }
-}
-
-if { [info exists nb_compound_good] } {
-    regexp {COMPOUND +: +([-0-9.+eE]+)} $nb_info full nb_compound
-    if { ${nb_compound} != ${nb_compound_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_compound_good} compounds instead of ${nb_compound}"
-    } else {
-        puts "Result shape contains ${nb_compound} compounds"
-    }
-}
-
-if { [info exists nb_shape_good] } {
-    regexp {SHAPE +: +([-0-9.+eE]+)} $nb_info full nb_shape
-    if { ${nb_shape} != ${nb_shape_good} } {
-        puts "Error : Result shape is WRONG because it must contains ${nb_shape_good} shapes instead of ${nb_shape}"
-    } else {
-        puts "Result shape contains ${nb_shape} shapes"
-    }
-}
-
-if { [isdraw result] } {
-    if { [info exists 2dviewer] } {
-       clear
-       smallview
-       donly result
-       fit
-       xwd $imagedir/${test_image}.png
-    }
-    if { [info exists 3dviewer] } {
-       vinit
-       vclear
-       vdisplay result
-       vsetdispmode 1
-       vfit
-       vzfit
-       vdump $imagedir/${test_image}.png
-    }
-}
-
-if { [info exist only_screen] } {
-   vdump $imagedir/${test_image}.png
-}
-
-if { [info exist only_screen2d] } {
-   v2ddump $imagedir/${test_image}.png
+if { [info exists rel_tol] && $rel_tol > 0 } {
+   puts "\nChecking triangulation area (triarea command)..."
+   set rel_err [expr abs([CheckTriArea result $area_eps])]
+   if { $rel_err > $rel_tol } {
+      puts "Error   : area by triangles differs from the actual area by $rel_err %"
+   } else {
+      if { [info exists max_rel_tol_diff] && $max_rel_tol_diff > 0} {
+        checkreal "area difference" $rel_err $rel_tol $max_rel_tol_diff 0
+      } else {
+        if { $rel_tol > 1 && $rel_tol < 100 } {
+          puts "Error: Improvement: The current area difference is $rel_err instead of $rel_tol"
+        }
+      }
+   }
 }
 
 # to end a test script