Correction of testing case for issue 24374
[occt.git] / tests / bugs / moddata_2 / bug2755
CommitLineData
61c421bf 1puts "============"
2puts "OCC2755"
3puts "============"
4puts ""
5######################################################
6# Boolean Bug in OCC5.0 with the shape having a ellipse curve
7######################################################
8
9restore [locate_data_file OCC2755.brep] a
10
11checkshape a
12
13explode a f
14mksurface gs a_1
15set list [proj gs 0 10 50]
16set ll 4
17
18set good_Parameter1List [list 0 0 0 0]
19set good_Parameter2List [list 40.4616826479819 211.944716681974 64.3186164305428 81.0582330575794]
20set good_OriginXList [list 0 0 0 0]
21set good_OriginYList [list 10 10 10 10]
22set good_OriginZList [list 50 50 50 50]
23set good_AxisXList [list -0.0300865818651084 -0.941236271764613 0.534306660761684 0.998573938898137]
24set good_AxisYList [list 0.999547296325529 -0.337748842654791 -0.845290714645381 0.0533862206328518]
25set good_AxisZList [list 0 0 0 0]
26
27proc CalculatePercent {value good_value} {
28 if {${good_value} == 0. && ${value} == 0.} {
29 set percent 0.
30 } else {
31 set percent [expr abs(${value} - ${good_value}) / double(${good_value}) * 100.]
32 }
33 return ${percent}
34}
35
36if {[llength ${list}] != ${ll}} {
37 puts "Faulty OCC2755"
38} else {
39 set percent_max 0.1
40 set IsGood 1
41 for {set i 0} {$i < ${ll}} {incr i} {
42 set dump_list [dump [lindex ${list} $i]]
43 regexp { *Parameters *: *([-0-9.+eE]+) *([-0-9.+eE]+)} $dump_list full Parameter1 Parameter2
44 regexp { *Origin *:([-0-9.+eE]+), *([-0-9.+eE]+), *([-0-9.+eE]+)} $dump_list full OriginX OriginY OriginZ
45 regexp { *Axis *:([-0-9.+eE]+), *([-0-9.+eE]+), *([-0-9.+eE]+)} $dump_list full AxisX AxisY AxisZ
46
47 set good_Parameter1 [lindex ${good_Parameter1List} $i]
48 set good_Parameter2 [lindex ${good_Parameter2List} $i]
49 set good_OriginX [lindex ${good_OriginXList} $i]
50 set good_OriginY [lindex ${good_OriginYList} $i]
51 set good_OriginZ [lindex ${good_OriginZList} $i]
52 set good_AxisX [lindex ${good_AxisXList} $i]
53 set good_AxisY [lindex ${good_AxisYList} $i]
54 set good_AxisZ [lindex ${good_AxisZList} $i]
55
56 set Parameter1_percent [CalculatePercent ${Parameter1} ${good_Parameter1}]
57 set Parameter2_percent [CalculatePercent ${Parameter2} ${good_Parameter2}]
58 set OriginX_percent [CalculatePercent ${OriginX} ${good_OriginX}]
59 set OriginY_percent [CalculatePercent ${OriginY} ${good_OriginY}]
60 set OriginZ_percent [CalculatePercent ${OriginZ} ${good_OriginZ}]
61 set AxisX_percent [CalculatePercent ${AxisX} ${good_AxisX}]
62 set AxisY_percent [CalculatePercent ${AxisY} ${good_AxisY}]
63 set AxisZ_percent [CalculatePercent ${AxisZ} ${good_AxisZ}]
64
65 puts "good_Parameter1 = ${good_Parameter1}"
66 puts "Parameter1 = ${Parameter1}"
67 puts "Parameter1_percent = ${Parameter1_percent}\n"
68
69 puts "good_Parameter2 = ${good_Parameter2}"
70 puts "Parameter2 = ${Parameter2}"
71 puts "Parameter2_percent = ${Parameter2_percent}\n"
72
73 puts "good_OriginX = ${good_OriginX}"
74 puts "OriginX = ${OriginX}"
75 puts "OriginX_percent = ${OriginX_percent}\n"
76
77 puts "good_OriginY = ${good_OriginY}"
78 puts "OriginY = ${OriginY}"
79 puts "OriginY_percent = ${OriginY_percent}\n"
80
81 puts "good_OriginZ = ${good_OriginZ}"
82 puts "OriginZ = ${OriginZ}"
83 puts "OriginZ_percent = ${OriginZ_percent}\n"
84
85 puts "good_AxisX = ${good_AxisX}"
86 puts "AxisX = ${AxisX}"
87 puts "AxisX_percent = ${AxisX_percent}\n"
88
89 puts "good_AxisY = ${good_AxisY}"
90 puts "AxisY = ${AxisY}"
91 puts "AxisY_percent = ${AxisY_percent}\n"
92
93 puts "good_AxisZ = ${good_AxisZ}"
94 puts "AxisZ = ${AxisZ}"
95 puts "AxisZ_percent = ${AxisZ_percent}\n"
96
97 if {${Parameter1_percent} > ${percent_max}} {
98 puts "OCC2755 Faulty (case 3 / $i)"
99 set IsGood 0
100 }
101 if {${Parameter2_percent} > ${percent_max}} {
102 puts "OCC2755 Faulty (case 3 / $i)"
103 set IsGood 0
104 }
105 if {${OriginX_percent} > ${percent_max}} {
106 puts "OCC2755 Faulty (case 3 / $i)"
107 set IsGood 0
108 }
109 if {${OriginY_percent} > ${percent_max}} {
110 puts "OCC2755 Faulty (case 3 / $i)"
111 set IsGood 0
112 }
113 if {${OriginZ_percent} > ${percent_max}} {
114 puts "OCC2755 Faulty (case 3 / $i)"
115 set IsGood 0
116 }
117 if {${AxisX_percent} > ${percent_max}} {
118 puts "OCC2755 Faulty (case 3 / $i)"
119 set IsGood 0
120 }
121 if {${AxisY_percent} > ${percent_max}} {
122 puts "OCC2755 Faulty (case 3 / $i)"
123 set IsGood 0
124 }
125 if {${AxisZ_percent} > ${percent_max}} {
126 puts "OCC2755 Faulty (case 3 / $i)"
127 set IsGood 0
128 }
129
130 }
131
132 if {${IsGood} == 1} {
133 puts "OCC2755 OK"
134 }
135
136}
137
138set 3dviewer 0
139