0024105: ShapeFix algorithm produces not correct result.
[occt.git] / tests / bugs / moddata_2 / bug23201
CommitLineData
3bea4c16 1puts "============"
2puts "OCC23201"
3puts "============"
4puts ""
5#######################################################################
6# Projection algorithm produces wrong results.
7#######################################################################
8
9set BugNumber OCC23201
10
11proc 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
23restore [locate_data_file bug23201_Tool_1.brep] b2
24restore [locate_data_file bug23201_Tool_2.brep] b3
25
26explode b2 f
27mksurface s2 b2_1
28
29explode b3 f
30mksurface s3 b3_1
31
32explode b2 e
33mkcurve c2 b2_2
34
35explode b3 e
36mkcurve c3 b3_2
37
38set BugStatus 0
39
40set percent_max 0.1
41set good_c23 3.1415926535897922
42set good_c32 3.1415926535897922
43
44if [catch { project c23 c2 s3 } ] {
45 set BugStatus 1
46} else {
47 set c23_length [lindex [length c23] end]
48 set length_percent [GetPercent ${c23_length} ${good_c23}]
49 puts "length_percent = ${length_percent}"
50 if {${length_percent} > ${percent_max}} {
51 puts "c23: Faulty"
52 set BugStatus 1
53 } else {
54 puts "c23: OK"
55 }
56}
57
58if [catch { project c32 c3 s2 } ] {
59 set BugStatus 1
60} else {
61 set c32_length [lindex [length c32] end]
62 set length_percent [GetPercent ${c32_length} ${good_c32}]
63 puts "length_percent = ${length_percent}"
64 if {${length_percent} > ${percent_max}} {
65 puts "c32: Faulty"
66 set BugStatus 1
67 } else {
68 puts "c32: OK"
69 }
70}
71
72# Resume
73puts ""
74if { ${BugStatus} != 0 } {
75 puts "Faulty ${BugNumber}"
76} else {
77 puts "OK ${BugNumber}"
78}
79