0030315: Data Exchange - Crash reading views during STEP import.
[occt.git] / tests / lowalgos / intss / bug24612
1 puts "========="
2 puts "OCC24612"
3 puts "========="
4 puts ""
5 ###########################################################
6 # Wrong pcurve of the section curve
7 ###########################################################
8
9 set MaxTol 7.0e-5
10 set NbCurv_OK 1
11 restore [locate_data_file bug24612_b1.brep] b1
12 restore [locate_data_file bug24612_b2.brep] b2
13
14 mksurface s1 b1
15 bounds s1 U1f_exp U1l_exp V1f_exp V1l_exp
16
17 dval U1f_exp
18 dval U1l_exp
19 dval V1f_exp
20 dval V1l_exp
21
22 set log [bopcurves b1 b2 -2d]
23
24 regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv
25
26 if {${NbCurv} != ${NbCurv_OK}} {
27   puts "Error: ${NbCurv_OK} curve(s) expected, but ${NbCurv} found."
28 }
29
30 if {${Toler} > ${MaxTol}} {
31   puts "Error: Tolerance is too big!"
32 }
33
34 #Theoretically, c2d1_1 must cover V-diapason of surface s1 fully.
35
36 set log [dump c2d1_1]
37
38 regexp {Degree +([-0-9.+eE]+), +([-0-9.+eE]+) Poles, +([-0-9.+eE]+)} ${log} full Degree Poles KnotsPoles
39 puts "Degree=${Degree}"
40 puts "Poles=${Poles}"
41 puts "KnotsPoles=${KnotsPoles}"
42 puts ""
43
44 set Pole 1
45 set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)"
46 regexp ${exp_string} ${log} full U_begin V_begin
47
48 puts "Pole=${Pole}"
49 puts "U_begin=${U_begin}"
50 puts "V_begin=${V_begin}"
51 dset V_begin ${V_begin}
52 puts ""
53
54 set Pole ${Poles}
55 set exp_string " +${Pole} : +(\[-0-9.+eE\]+), +(\[-0-9.+eE\]+)"
56 regexp ${exp_string} ${log} full U_end V_end
57
58 puts "Pole=${Pole}"
59 puts "U_end=${U_end}"
60 puts "V_end=${V_end}"
61 dset V_end ${V_end}
62 puts ""
63
64 set delta_f [dval V1l_exp-V_begin]
65
66 #ATTENTION!!! V_begin must be strictly equal V1l_exp (without any tolerance)
67 if {${delta_f} != 0} {
68   puts "Error: Bad value. V_begin = [dval V_begin], Vlast = [dval V1l_exp]."
69 } else {
70   puts "OK: Good value. V_begin matches with Vlast of surface."
71 }
72
73 puts ""
74
75 set delta_l [dval V1f_exp-V_end]
76
77 #ATTENTION!!! V_end must be strictly equal V1f_exp (without any tolerance)
78 if {${delta_l} != 0} {
79   puts "Error: Bad value. V_end = [dval V_end], Vfirst = [dval V1f_exp]."
80 } else {
81   puts "OK: Good value. V_end matches with Vfirst of surface."
82 }