0023748: Bad monitoring of intermediate results in offset commands
[occt.git] / tests / bugs / modalg_2 / bug22967
1 puts "============"
2 puts "OCC22967"
3 puts "============"
4 puts ""
5 ############################################################################################################
6 # Boolean operations between two cylinders with orthogonal axis generate a shape with big vertex tolerance
7 ###########################################################################################################
8
9 set BugNumber OCC22967
10 set check_value 1.04742e-05
11
12 restore [locate_data_file bug22967_Cylinder_1.brep] b1 
13 restore [locate_data_file bug22967_Scale_1.brep] b2 
14 bop b1 b2
15 bopfuse result
16 set info [ maxtolerance result ]
17
18 regexp {Edge[ \t]*:.*Max[ \t]*([-0-9.+eE]+)} $info full last1
19 regexp {Vertex[ \t]*:.*Max[ \t]*([-0-9.+eE]+)} $info full last
20
21 proc GetPercent {Value GoodValue} {
22     set Percent 0.
23     if {${GoodValue} != 0.} {
24         set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
25     } elseif {${Value} != 0.} {
26         set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
27     } else {
28         set Percent 0.
29     }
30     return ${Percent}
31 }
32
33 set percent_max 5
34 set status 0
35
36 set Tolerance_percent [expr abs ( [GetPercent ${last} ${check_value}] ) ]
37 if {${Tolerance_percent} > ${percent_max}} {
38     set status 1
39 } else {
40     set status 0
41 }
42
43 set Tolerance_percent [expr abs ( [GetPercent ${last1} ${check_value}] ) ]
44 if {${Tolerance_percent} > ${percent_max}} {
45     set status 1
46 } else {
47     set status 0
48 }
49
50 # Resume
51 if {${status} > 0} {
52    puts "${BugNumber}: Faulty"
53 } else {
54    puts "OK ${BugNumber}"
55 }
56
57 set square 671262
58 set 2dviewer 0
59