0026235: Command tolmax works wrong
[occt.git] / tests / bugs / moddata_3 / bug25223
1 puts "================"
2 puts "OCC25223"
3 puts "================"
4 puts ""
5 #######################################################################
6 # Wrong result done by projection algorithm
7 #######################################################################
8
9 restore [locate_data_file bug25223_surface] s
10 restore [locate_data_file bug25223_curve] c
11
12 project c2d c s
13
14 # I.
15 #Parameters : 2.50050886855066 2.71802559491834
16 regexp {Parameters : ([-0-9.+eE]+) ([-0-9.+eE]+)} [dump c] full a1 a2
17 set good_a1 2.50050886855066
18 set good_a2 2.71802559491834
19 set c_tol 1.e-13
20 if { [expr abs(${a1} - ${good_a1}) ] > ${c_tol} } {
21    puts "Error: invalid a1 parameter"
22 }
23 if { [expr abs(${a2} - ${good_a2}) ] > ${c_tol} } {
24    puts "Error: invalid a2 parameter"
25 }
26
27 # II.
28 set u1 2.6
29 cvalue c $u1 x y z
30 vertex v1 x y z
31 point p1 x y z
32
33 mkface f s
34 set proj_fp [projponf f p1]
35 #proj dist = 9.8455689542838467e-014
36
37 regexp {proj dist = ([-0-9.+eE]+) uvproj = \(([-0-9.+eE]+) ([-0-9.+eE]+)\); pproj = \(([-0-9.+eE]+) ([-0-9.+eE]+) ([-0-9.+eE]+)\)} ${proj_fp} full dist uproj vproj proj1 proj2
38
39 puts "dist=${dist}"
40 puts "uproj=${uproj}"
41 puts "vproj=${vproj}"
42 puts "proj1=${proj1}"
43 puts "proj2=${proj2}"
44
45 set CMP_TOL [checkmaxtol f]
46
47 puts "CMP_TOL=${CMP_TOL}"
48
49 set good_dist 9.8455689542838467e-14
50 set good_uproj 0.66864242394263962
51 set good_vproj 0.53857983853386682
52 set good_proj1 336.79267755053786
53 set good_proj2 -256.45869438720723
54
55 if { [expr abs(${dist} - ${good_dist}) ] > ${CMP_TOL} } {
56    puts "Error: invalid dist"
57 }
58 if { [expr abs(${uproj} - ${good_uproj}) ] > ${CMP_TOL} } {
59    puts "Error: invalid uproj"
60 }
61 if { [expr abs(${vproj} - ${good_vproj}) ] > ${CMP_TOL} } {
62    puts "Error: invalid vproj"
63 }
64 if { [expr abs(${proj1} - ${good_proj1}) ] > ${CMP_TOL} } {
65    puts "Error: invalid proj1"
66 }
67 if { [expr abs(${proj2} - ${good_proj2}) ] > ${CMP_TOL} } {
68    puts "Error: invalid proj2"
69 }
70
71 # III.
72 2dcvalue c2d $u1 u v
73 svalue s u v x y z
74 vertex v2 x y z
75 distmini d v1 v2
76 #the distance value is : 3.99072821948773e-08
77
78 regexp {([-0-9.+eE]+)$} [dump d_val] full dist
79 regexp { +Vertex +: +Min +[-0-9.+eE]+ +Max +([-0-9.+eE]+)} [ maxtolerance d ] full toler
80 set good_dist 3.99072821948773e-08
81 if { [expr abs( ${dist} - ${good_dist} )] > ${toler} } {
82     puts "Error : the distanse is ${dist}. It is bad value"
83 }
84
85 smallview
86 fit
87 set only_screen_axo 1