Adding testing cases from chl group
[occt.git] / tests / bugs / moddata / bug332
1 puts "================"
2 puts "OCC332"
3 puts "================"
4 puts ""
5
6 pload QAcommands
7
8 set wall_thickness 10
9 set dia1 30
10 set dia2 50
11 set ll 100
12 set major_radius 200
13
14 OCC332 ${wall_thickness} ${dia1} ${dia2} ${ll} ${major_radius}
15
16 checkshape wallSolid_
17 checkshape gasSolid_
18
19
20 vinit
21 vdisplay wallSolid_
22 vdisplay gasSolid_
23 QAvzfit
24
25
26 explode wallSolid_ w
27
28 vdisplay wallSolid__3
29 vdisplay wallSolid__4
30 vdisplay wallSolid__5
31 vdisplay wallSolid__6
32
33 set props_3 [lprops wallSolid__3]
34 set props_4 [lprops wallSolid__4]
35 set props_5 [lprops wallSolid__5]
36 set props_6 [lprops wallSolid__6]
37
38 #wire wallSolid__3
39 set list [split ${props_3} "\n\t"]
40 set listLength [llength ${list}]
41 if { ${listLength} < 20 } {
42    puts "OCC332 - Error : listLength= ${listLength}"
43 }
44
45 regexp {Mass +: +([-0-9.+eE]+)} $props_3 full CircleLength_3
46
47 #wire wallSolid__4
48 set list [split ${props_4} "\n\t"]
49 set listLength [llength ${list}]
50 if { ${listLength} < 20 } {
51    puts "OCC332 - Error : listLength= ${listLength}"
52 }
53
54 regexp {Mass +: +([-0-9.+eE]+)} $props_4 full CircleLength_4
55
56 #wire wallSolid__5
57 set list [split ${props_5} "\n\t"]
58 set listLength [llength ${list}]
59 if { ${listLength} < 20 } {
60    puts "OCC332 - Error : listLength= ${listLength}"
61 }
62
63 regexp {Mass +: +([-0-9.+eE]+)} $props_5 full CircleLength_5
64
65 #wire wallSolid__6
66 set list [split ${props_6} "\n\t"]
67 set listLength [llength ${list}]
68 if { ${listLength} < 20 } {
69    puts "OCC332 - Error : listLength= ${listLength}"
70 }
71
72 regexp {Mass +: +([-0-9.+eE]+)} $props_6 full CircleLength_6
73
74 # Calculation
75 set pi [expr 2. * asin(1.0)]
76 set TheoryCircleLength_4 [expr ${pi} * ${dia1}]
77 set TheoryCircleLength_3 [expr ${pi} * (${dia1} + 2 * ${wall_thickness}) ]
78 set TheoryCircleLength_6 [expr ${pi} * ${dia2}]
79 set TheoryCircleLength_5 [expr ${pi} * (${dia2} + 2 * ${wall_thickness}) ]
80
81 set delta_3 [expr abs(${CircleLength_3} - ${TheoryCircleLength_3}) / ${TheoryCircleLength_3} * 100]
82 set delta_4 [expr abs(${CircleLength_4} - ${TheoryCircleLength_4}) / ${TheoryCircleLength_4} * 100]
83 set delta_5 [expr abs(${CircleLength_5} - ${TheoryCircleLength_5}) / ${TheoryCircleLength_5} * 100]
84 set delta_6 [expr abs(${CircleLength_6} - ${TheoryCircleLength_6}) / ${TheoryCircleLength_6} * 100]
85
86 set maxdelta 0.1
87
88 if { ${delta_3} > ${maxdelta} } then {puts "OCC332 - Error : delta_3= ${delta_3}"}
89 if { ${delta_4} > ${maxdelta} } then {puts "OCC332 - Error : delta_4= ${delta_4}"}
90 if { ${delta_5} > ${maxdelta} } then {puts "OCC332 - Error : delta_5= ${delta_5}"}
91 if { ${delta_6} > ${maxdelta} } then {puts "OCC332 - Error : delta_6= ${delta_6}"}
92
93 if { ${delta_3} <= ${maxdelta} && ${delta_4} <= ${maxdelta} && ${delta_5} <= ${maxdelta} && ${delta_6} <= ${maxdelta} } then {
94    puts "OCC332: OK"
95 }
96 puts "CircleLength_3 = ${CircleLength_3}"
97 puts "CircleLength_4 = ${CircleLength_4}"
98 puts "CircleLength_5 = ${CircleLength_5}"
99 puts "CircleLength_6 = ${CircleLength_6}"
100
101 set only_screen 1
102
103
104