3bea4c16 |
1 | puts "========================" |
2 | puts "OCC14782" |
3 | puts "========================" |
4 | puts "" |
5 | ####################################################################### |
6 | # Method segment works wrongly for periodical BSpline curve |
7 | ####################################################################### |
8 | |
9 | set BugNumber OCC14782 |
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 | |
24 | restore [locate_data_file OCC14782.draw] res |
25 | |
26 | bounds res t1 t2 |
27 | set bounds_list [dump res] |
28 | |
29 | puts "" |
30 | if { [llength ${bounds_list}] < 7 } { |
31 | puts "Bad bounds_list" |
32 | puts "Faulty ${BugNumber}" |
33 | } else { |
34 | set periodic_type [lindex ${bounds_list} 6] |
35 | puts "periodic_type=${periodic_type}" |
36 | if { ${periodic_type} != "periodic" } { |
37 | puts "1. Faulty ${BugNumber}" |
38 | } else { |
39 | puts "1. OK ${BugNumber}" |
40 | } |
41 | } |
42 | |
43 | set ll1 [lindex [length res] end] |
44 | puts "length1=${ll1}" |
45 | |
46 | segment res t3 t4 |
47 | set segment_list [dump res] |
48 | |
49 | puts "" |
50 | if { [llength ${segment_list}] < 7 } { |
51 | puts "Bad segment_list" |
52 | puts "Faulty ${BugNumber}" |
53 | } else { |
54 | set periodic_type [lindex ${segment_list} 6] |
55 | puts "periodic_type=${periodic_type}" |
56 | if { ${periodic_type} != "periodic" } { |
57 | puts "2. OK ${BugNumber}" |
58 | } else { |
59 | puts "2. Faulty ${BugNumber}" |
60 | } |
61 | } |
62 | |
63 | set ll2 [lindex [length res] end] |
64 | puts "length2=${ll2}" |
65 | |
66 | set percent_max 0.1 |
67 | set length_percent [GetPercent ${ll1} ${ll2}] |
68 | puts "length_percent = ${length_percent}" |
69 | |
70 | puts "" |
71 | if { ${length_percent} > ${percent_max} } { |
72 | puts "3. Faulty ${BugNumber}" |
73 | } else { |
74 | puts "3. OK ${BugNumber}" |
75 | } |
76 | |