0026742: Update test cases for using checknbshapes procedure instead of global variables
[occt.git] / tests / bugs / moddata_2 / bug6278
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 checknbshapes result -vertex 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