Added testing cases from grid CHL
[occt.git] / tests / bugs / vis / bug22502
diff --git a/tests/bugs/vis/bug22502 b/tests/bugs/vis/bug22502
new file mode 100755 (executable)
index 0000000..b896930
--- /dev/null
@@ -0,0 +1,88 @@
+puts "TODO OCC11111 ALL: Faulty OCC22502"
+
+puts "============"
+puts "OCC22502"
+puts "============"
+puts ""
+#######################################################################
+# Triangulation cannot be built on valid face
+#######################################################################
+
+set BugNumber OCC22502
+
+pload ALL
+
+restore [locate_data_file OCC22502-bug601_noshading.brep] result
+checkshape result
+tolerance result
+tclean result
+
+set Deflection 0.001
+incmesh result ${Deflection}
+
+set tri_info [trinfo result]
+regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
+regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
+regexp {Maximal deflection +([-0-9.+eE]+)} $tri_info full defl
+
+set good_tri  170
+set good_nod  172
+set good_defl 0.00061201255663038154
+
+proc GetPercent {Value GoodValue} {
+    set Percent 0.
+    if {${GoodValue} != 0.} {
+       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
+    } elseif {${Value} != 0.} {
+         set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
+    } else {
+       set Percent 0.
+    }
+    return ${Percent}
+}
+
+set percent_max 0.1
+set status 0
+
+set triangle_percent [GetPercent ${tri} ${good_tri}]
+puts "triangle_percent = ${triangle_percent}"
+if { ${triangle_percent} > ${percent_max} } {
+   puts "triangle: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "triangle: OK ${BugNumber}"
+}
+
+set node_percent [GetPercent ${nod} ${good_nod}]
+puts "node_percent = ${node_percent}"
+if { ${node_percent} > ${percent_max} } {
+   puts "node: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "node: OK ${BugNumber}"
+}
+
+set deflection_percent [GetPercent ${defl} ${good_defl}]
+puts "deflection_percent = ${deflection_percent}"
+if { ${deflection_percent} > ${percent_max} } {
+   puts "deflection: Faulty ${BugNumber}"
+   set status 1
+} else {
+   puts "deflection: OK ${BugNumber}"
+}
+
+# Resume
+puts ""
+if { ${status} != 0 } {
+   puts "Faulty ${BugNumber}"
+} else {
+   puts "OK ${BugNumber}"
+}
+
+vinit
+vdisplay result
+vfit
+
+vsetdispmode 1
+
+set only_screen 1