0025987: Integration part of modified unstable test cases
[occt.git] / tests / bugs / moddata_1 / bug22759
1 puts "============"
2 puts "OCC22759"
3 puts "============"
4 puts ""
5 #######################################################################
6 # Crash during shape visualization
7 #######################################################################
8
9 set BugNumber OCC22759
10
11 catch { pload XDE }
12
13 cpulimit 400
14
15 restore [locate_data_file OCC22759-weldt6.brep] result
16 checkshape result
17 tclean result
18
19 set Deflection 0.001
20 incmesh result ${Deflection}
21
22 set tri_info [trinfo result]
23 regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
24 regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
25
26 regexp {deflection +([-0-9.+eE]+)} $tri_info full defl
27
28 if { [array get env os_type] != "" } {
29    set os $env(os_type)
30 }
31 if { [string compare $os "windows"] != 0 } {
32    puts "OS = Linux"
33    set good_tri  524278
34    set good_nod  265870
35    set good_defl 0.0026800432954056617
36 } else {
37    puts "OS = Windows NT"
38    set good_tri  523436
39    set good_nod  265456
40    set good_defl 0.0028033497029316067
41 }
42
43 proc GetPercent {Value GoodValue} {
44     set Percent 0.
45     if {${GoodValue} != 0.} {
46         set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
47     } elseif {${Value} != 0.} {
48         set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
49     } else {
50         set Percent 0.
51     }
52     return ${Percent}
53 }
54
55 set percent_max 0.1
56 set status 0
57
58 set triangle_percent [GetPercent ${tri} ${good_tri}]
59 puts "triangle_percent = ${triangle_percent}"
60 if { ${triangle_percent} > ${percent_max} } {
61    puts "triangle: Faulty ${BugNumber}"
62    set status 1
63 } else {
64    puts "triangle: OK ${BugNumber}"
65 }
66
67 set node_percent [GetPercent ${nod} ${good_nod}]
68 puts "node_percent = ${node_percent}"
69 if { ${node_percent} > ${percent_max} } {
70    puts "node: Faulty ${BugNumber}"
71    set status 1
72 } else {
73    puts "node: OK ${BugNumber}"
74 }
75
76 set deflection_percent [GetPercent ${defl} ${good_defl}]
77 puts "deflection_percent = ${deflection_percent}"
78 if { ${deflection_percent} > ${percent_max} } {
79    puts "deflection: Faulty ${BugNumber}"
80    set status 1
81 } else {
82    puts "deflection: OK ${BugNumber}"
83 }
84
85 # Resume
86 puts ""
87 if { ${status} != 0 } {
88    puts "Faulty ${BugNumber}"
89 } else {
90    puts "OK ${BugNumber}"
91 }
92
93 vinit
94 vdisplay result
95 vfit
96
97 vsetdispmode 1
98
99 set only_screen 1
100 set square 9951.34