61c421bf |
1 | puts "============" |
2 | puts "OCC6278" |
3 | puts "============" |
4 | puts "" |
5 | ###################################################### |
6 | # Fuse operation produces incorrect result |
7 | ###################################################### |
8 | |
9 | set BugNumber OCC6278 |
10 | |
11 | restore [locate_data_file OCC6278-A.brep] a |
12 | restore [locate_data_file OCC6278-B.brep] b |
13 | |
14 | bfuse result a b |
15 | explode result v |
16 | |
17 | set nb_v_good 4 |
18 | |
19 | set DumpList [dump result_2] |
20 | if {[llength ${DumpList}] < 40} { |
21 | puts "Faulty ${BugNumber}: bad format of dump" |
22 | } else { |
23 | regexp { *- *Point *3D *: *([-0-9.+eE]+), +([-0-9.+eE]+), +([-0-9.+eE]+)} ${DumpList} full x y z |
24 | puts $x |
25 | puts $y |
26 | puts $z |
27 | |
28 | set percent_max 0.1 |
29 | |
30 | set x [lindex ${DumpList} 37] |
31 | set y [lindex ${DumpList} 38] |
32 | set z [lindex ${DumpList} 39] |
33 | |
34 | set x [string range ${x} 0 end-1] |
35 | set y [string range ${y} 0 end-1] |
36 | |
37 | set good_x -32.3042674857046 |
38 | set good_y 20.0000000000001 |
39 | set good_z 0. |
40 | |
41 | set Percent_x [expr abs(${x} - ${good_x}) / abs(${good_x}) * 100.] |
42 | set Percent_y [expr abs(${y} - ${good_y}) / abs(${good_y}) * 100.] |
43 | if {${z} == 0.} { |
44 | set Percent_z 0. |
45 | } else { |
46 | set Percent_z [expr abs(${good_z} - ${z}) / abs(${z}) * 100.] |
47 | } |
48 | |
49 | if {${Percent_x} > ${percent_max}} { |
50 | puts "Faulty ${BugNumber}: bad value of x = ${x}" |
51 | } |
52 | if {${Percent_y} > ${percent_max}} { |
53 | puts "Faulty ${BugNumber}: bad value of y = ${y}" |
54 | } |
55 | if {${Percent_z} > ${percent_max}} { |
56 | puts "Faulty ${BugNumber}: bad value of z = ${z}" |
57 | } |
58 | } |
59 | |
60 | set length 278.725 |
61 | set 3dviewer 2 |