7faaccfd |
1 | puts "========" |
2 | puts "OCC22735" |
3 | puts "========" |
4 | puts "" |
5 | ########################################################### |
6 | # Data races in BRepMesh working in parallel mode |
7 | ########################################################### |
8 | |
9 | set BugNumber OCC22735 |
10 | |
11 | vinit |
12 | vsetdispmode 1 |
13 | mpparallel 1 |
14 | |
15 | restore [locate_data_file OCC22735-march_cube.brep] result |
16 | |
17 | vdisplay result |
18 | |
19 | set tri_info [trinfo result] |
20 | regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri |
21 | regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod |
22 | regexp {Maximal deflection +([-0-9.+eE]+)} $tri_info full defl |
23 | |
24 | set good_tri 48 |
25 | set good_nod 96 |
26 | set good_defl 0 |
27 | |
28 | proc GetPercent {Value GoodValue} { |
29 | set Percent 0. |
30 | if {${GoodValue} != 0.} { |
31 | set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.] |
32 | } elseif {${Value} != 0.} { |
33 | set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.] |
34 | } else { |
35 | set Percent 0. |
36 | } |
37 | return ${Percent} |
38 | } |
39 | set percent_max 0.1 |
40 | set status 0 |
41 | |
42 | set triangle_percent [GetPercent ${tri} ${good_tri}] |
43 | puts "triangle_percent = ${triangle_percent}" |
44 | if { ${triangle_percent} > ${percent_max} } { |
45 | puts "triangle: Faulty ${BugNumber}" |
46 | set status 1 |
47 | } else { |
48 | puts "triangle: OK ${BugNumber}" |
49 | } |
50 | |
51 | set node_percent [GetPercent ${nod} ${good_nod}] |
52 | puts "node_percent = ${node_percent}" |
53 | if { ${node_percent} > ${percent_max} } { |
54 | puts "node: Faulty ${BugNumber}" |
55 | set status 1 |
56 | } else { |
57 | puts "node: OK ${BugNumber}" |
58 | } |
59 | |
60 | set deflection_percent [GetPercent ${defl} ${good_defl}] |
61 | puts "deflection_percent = ${deflection_percent}" |
62 | if { ${deflection_percent} > ${percent_max} } { |
63 | puts "deflection: Faulty ${BugNumber}" |
64 | set status 1 |
65 | } else { |
66 | puts "deflection: OK ${BugNumber}" |
67 | } |
68 | |
69 | # Resume |
70 | puts "" |
71 | if { ${status} != 0 } { |
72 | puts "Faulty ${BugNumber}" |
73 | } else { |
74 | puts "OK ${BugNumber}" |
75 | } |
76 | |
77 | vfit |
78 | set only_screen 1 |