0024326: Get rid of confusing extension line
[occt.git] / tests / bugs / moddata_2 / bug9303
1 puts "============"
2 puts "OCC9303"
3 puts "============"
4 puts ""
5 ######################################################
6 # Intersection curve surface doesn't take account of bounds of the surface
7 ######################################################
8
9 set BugNumber OCC9303
10
11 proc GetPercent {Value GoodValue} {
12    set Percent 0.
13    if {${GoodValue} != 0.} {
14       set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
15    } elseif {${Value} != 0.} {
16       set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
17    } else {
18       set Percent 0.
19    }
20    return ${Percent}
21 }
22
23 cone c 0 0 0 30 0
24 trimv nc c 20 30
25
26 smallview +X+Z
27 donly nc
28 fit
29
30 line ll 0 0 20 1 0 0
31
32 if [catch {intersect res ll nc} result] {
33    set mistake 1
34 } else {
35    set  mistake 0
36 }
37                                                                                                 
38 if { $mistake == 0} {                                                                           
39    puts "${BugNumber} OK : intersection was finished"                 
40    puts ""
41    set nom 0
42    set j 1
43    repeat 2 {
44      set che [whatis res_$j]
45      set err [lindex $che [expr [llength $che] - 1]]
46      if { $err != "point"} {
47         break
48      } else {
49         set nom [expr $nom + 1]
50      }
51      incr j
52    }
53    if { $nom != 2 } {
54       puts [format "Faulty ${BugNumber}: Intersection was made WRONGLY: %s points" $nom]
55    } else {
56       puts [format "${BugNumber} OK : Intersection command works properly: %s points" $nom]
57
58       set dump1 [dump res_1]
59       set x1 [lindex ${dump1} 7]
60       set y1 [lindex ${dump1} 8]
61       set z1 [lindex ${dump1} 9]
62       set x1 [string range ${x1} 0 end-1]
63       set y1 [string range ${y1} 0 end-1]
64
65       set dump2 [dump res_2]
66       set x2 [lindex ${dump2} 7]
67       set y2 [lindex ${dump2} 8]
68       set z2 [lindex ${dump2} 9]
69       set x2 [string range ${x2} 0 end-1]
70       set y2 [string range ${y2} 0 end-1]
71
72       set percent_max 0.1
73       set GoodX1 1.154700538379251e+01
74       set GoodY1 0.000000000000000e+00
75       set GoodZ1 2.000000000000000e+01
76       set GoodX2 -1.154700538379251e+01
77       set GoodY2 0.000000000000000e+00
78       set GoodZ2 2.000000000000000e+01
79
80       set Percent_x1 [GetPercent ${x1} ${GoodX1}]
81       set Percent_y1 [GetPercent ${y1} ${GoodY1}]
82       set Percent_z1 [GetPercent ${z1} ${GoodZ1}]
83
84       set Percent_x2 [GetPercent ${x2} ${GoodX2}]
85       set Percent_y2 [GetPercent ${y2} ${GoodY2}]
86       set Percent_z2 [GetPercent ${z2} ${GoodZ2}]
87
88       if {${Percent_x1} > ${percent_max}} {
89         puts "Faulty ${BugNumber}: bad value of x1 = ${x1}"
90       } elseif {${Percent_y1} > ${percent_max}} {
91         puts "Faulty ${BugNumber}: bad value of y1 = ${y1}"
92       } elseif {${Percent_z1} > ${percent_max}} {
93         puts "Faulty ${BugNumber}: bad value of z1 = ${z1}"
94       } elseif {${Percent_x2} > ${percent_max}} {
95         puts "Faulty ${BugNumber}: bad value of x2 = ${x2}"
96      } elseif {${Percent_y2} > ${percent_max}} {
97         puts "Faulty ${BugNumber}: bad value of y2 = ${y2}"
98       } elseif {${Percent_z2} > ${percent_max}} {
99         puts "Faulty ${BugNumber}: bad value of z2 = ${z2}"
100       } else {
101         puts "${BugNumber}: OK"
102       }
103
104    }
105 } else {
106    puts "Faulty ${BugNumber} : intersection does not finished"
107 }