Adding test cases from chl grid
[occt.git] / tests / bugs / modalg / bug22804
1 puts "========================"
2 puts "OCC22804"
3 puts "========================"
4 puts ""
5 #######################################################################
6 # Sewing increases tolerance of vertices for redundant value.
7 #######################################################################
8
9 set BugNumber OCC22804
10
11 catch {pload XDE}
12
13 restore [locate_data_file OCC22804-sew_bug.brep] a 
14
15 set tol 200
16 sewing result ${tol} a
17
18 set ToleranceList [tolerance result]
19 regexp {Tolerance MAX=([-0-9.+eE]+)} $ToleranceList full oTolerance
20 regexp {FACE[ \t]*: MAX=([-0-9.+eE]+)} $ToleranceList full FaceTolerance
21 regexp {EDGE[ \t]*: MAX=([-0-9.+eE]+)} $ToleranceList full EdgeTolerance
22 regexp {VERTEX[ \t]*: MAX=([-0-9.+eE]+)} $ToleranceList full VertexTolerance
23
24 set percent_max 0.1
25
26 proc GetPercent {Value GoodValue} {
27     set Percent 0.
28     if {${GoodValue} != 0.} {
29         set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
30     } elseif {${Value} != 0.} {
31         set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
32     } else {
33         set Percent 0.
34     }
35     return ${Percent}
36 }
37 set IsOk 1
38
39 set minTolerance ${EdgeTolerance}
40 if { ${minTolerance}  > ${VertexTolerance} } {
41    set minTolerance $(VertexTolerance)
42 }
43
44 set minTolerance_percent [GetPercent ${minTolerance} ${oTolerance}]
45 puts "minTolerance_percent = ${minTolerance_percent} %"
46 if { ${minTolerance_percent}  > ${percent_max} } {
47    set IsOk 0
48 }
49
50 if { ${IsOk}  == 0 } {
51    puts "${BugNumber}: Faulty"
52 } else {
53    puts "${BugNumber}: OK"
54 }
55
56 set square 1.22542e+09
57 set 2dviewer 0
58