0030645: Modeling Algorithms - B-spline segmentation produces wrong parametrization
[occt.git] / tests / bugs / modalg_7 / bug30645_3
1 puts "========"
2 puts "0030645: Modeling Algorithms - B-spline segmentation produces wrong parametrization"
3 puts "========"
4 puts ""
5
6 2dbsplinecurve result 3 4 \
7 2.0 4  2.5 2  2.9 2  3.0 4 \
8 117.9 11.6 1 \
9 116.7 11 1 \
10 115.8 10.5 1 \
11 114.4 9.7 1 \
12 113.9 9.4 1 \
13 113.3 9.1 1 \
14 113.1 9.0 1 \
15 113.0 8.9 1
16
17
18 set tolerance 1.e-9
19 segment result 2.5 2.900000000001 $tolerance
20
21 set crv [dump result]
22
23 regexp {Knots +:\n(.*)} $crv full knots
24 set is_different_knots 1
25 set knots_list {}
26 while { "$knots" != "\n" && $is_different_knots } {
27   regexp { +([0-9]+) +: +([-0-9.+eE]+) *([0-9]+)\n(.*)} $knots full index knot weight rest
28 puts $knot
29 puts $rest
30   foreach k $knots_list {
31     if { [expr abs($k - $knot)] < $tolerance } {
32       set is_different_knots 0
33     }
34   }
35
36   lappend knots_list $knot
37   set knots $rest
38 }
39
40 if { $is_different_knots } {
41   puts "OK: all knots are different"
42 } else {
43   puts "ERROR: segment has knots too close"
44 }