Test for 0028196: Algorithm 'Extrema_GenLocateExtPS' failed to find the extremum...
[occt.git] / tests / bugs / moddata_2 / bug2755
1 puts "============"
2 puts "OCC2755"
3 puts "============"
4 puts ""
5 ######################################################
6 # Boolean Bug in OCC5.0 with the shape having a ellipse curve
7 ######################################################
8
9 restore [locate_data_file OCC2755.brep] a 
10
11 checkshape a
12
13 explode a f
14 mksurface gs a_1
15 set list [proj gs 0 10 50]
16 set list [lmatch $list ext_*]
17 set ll 4
18
19 set good_Parameter1List [list 0 0 0 0]
20 set good_Parameter2List [list 40.4616826479819 211.944716681974 64.3186164305428 81.0582330575794]
21 set good_OriginXList [list 0 0 0 0]
22 set good_OriginYList [list 10 10 10 10]
23 set good_OriginZList [list 50 50 50 50]
24 set good_AxisXList [list -0.0300865818651084 -0.941236271764613 0.534306660761684 0.998573938898137]
25 set good_AxisYList [list 0.999547296325529 -0.337748842654791 -0.845290714645381 0.0533862206328518]
26 set good_AxisZList [list 0 0 0 0]
27
28 if {[llength ${list}] != ${ll}} {
29     puts "Faulty OCC2755"
30 } else {
31     set IsGood 1
32     for {set i 0} {$i < ${ll}} {incr i} {
33         set dump_list [dump [lindex ${list} $i]]
34         regexp { *Parameters *: *([-0-9.+eE]+) *([-0-9.+eE]+)} $dump_list full Parameter1 Parameter2
35         regexp { *Origin *:([-0-9.+eE]+), *([-0-9.+eE]+), *([-0-9.+eE]+)} $dump_list full OriginX OriginY OriginZ
36         regexp { *Axis *:([-0-9.+eE]+), *([-0-9.+eE]+), *([-0-9.+eE]+)} $dump_list full AxisX AxisY AxisZ
37
38         set good_Parameter1 [lindex ${good_Parameter1List} $i]
39         set good_Parameter2 [lindex ${good_Parameter2List} $i]
40         set good_OriginX [lindex ${good_OriginXList} $i]
41         set good_OriginY [lindex ${good_OriginYList} $i]
42         set good_OriginZ [lindex ${good_OriginZList} $i]
43         set good_AxisX [lindex ${good_AxisXList} $i]
44         set good_AxisY [lindex ${good_AxisYList} $i]
45         set good_AxisZ [lindex ${good_AxisZList} $i]
46
47         checkreal "Parameter1 / case 3 / $i" ${Parameter1} ${good_Parameter1} 0 0.001
48         checkreal "Parameter2 / case 3 / $i" ${Parameter2} ${good_Parameter2} 0 0.001
49         checkreal "OriginX / case 3 / $i" ${OriginX} ${good_OriginX} 0 0.001
50         checkreal "OriginY / case 3 / $i" ${OriginY} ${good_OriginY} 0 0.001
51         checkreal "OriginZ / case 3 / $i" ${OriginZ} ${good_OriginZ} 0 0.001
52         checkreal "AxisX / case 3 / $i" ${AxisX} ${good_AxisX} 0 0.001
53         checkreal "AxisY / case 3 / $i" ${AxisY} ${good_AxisY} 0 0.001
54         checkreal "AxisZ / case 3 / $i" ${AxisZ} ${good_AxisZ} 0 0.001
55     }
56 }