File: bug2755

package info (click to toggle)
oce 0.15-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 302,472 kB
  • ctags: 210,903
  • sloc: cpp: 1,165,052; ansic: 75,256; sh: 11,901; tcl: 4,488; python: 2,867; makefile: 337; perl: 37; csh: 12
file content (139 lines) | stat: -rwxr-xr-x 4,887 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
puts "============"
puts "OCC2755"
puts "============"
puts ""
######################################################
# Boolean Bug in OCC5.0 with the shape having a ellipse curve
######################################################

restore [locate_data_file OCC2755.brep] a 

checkshape a

explode a f
mksurface gs a_1
set list [proj gs 0 10 50]
set ll 4

set good_Parameter1List [list 0 0 0 0]
set good_Parameter2List [list 40.4616826479819 211.944716681974 64.3186164305428 81.0582330575794]
set good_OriginXList [list 0 0 0 0]
set good_OriginYList [list 10 10 10 10]
set good_OriginZList [list 50 50 50 50]
set good_AxisXList [list -0.0300865818651084 -0.941236271764613 0.534306660761684 0.998573938898137]
set good_AxisYList [list 0.999547296325529 -0.337748842654791 -0.845290714645381 0.0533862206328518]
set good_AxisZList [list 0 0 0 0]

proc CalculatePercent {value good_value} {
    if {${good_value} == 0. && ${value} == 0.} {
        set percent 0.
    } else {
        set percent [expr abs(${value} - ${good_value}) / double(${good_value}) * 100.]
    }
    return ${percent}
}

if {[llength ${list}] != ${ll}} {
    puts "Faulty OCC2755"
} else {
    set percent_max 0.1
    set IsGood 1
    for {set i 0} {$i < ${ll}} {incr i} {
        set dump_list [dump [lindex ${list} $i]]
	regexp { *Parameters *: *([-0-9.+eE]+) *([-0-9.+eE]+)} $dump_list full Parameter1 Parameter2
	regexp { *Origin *:([-0-9.+eE]+), *([-0-9.+eE]+), *([-0-9.+eE]+)} $dump_list full OriginX OriginY OriginZ
	regexp { *Axis *:([-0-9.+eE]+), *([-0-9.+eE]+), *([-0-9.+eE]+)} $dump_list full AxisX AxisY AxisZ

        set good_Parameter1 [lindex ${good_Parameter1List} $i]
        set good_Parameter2 [lindex ${good_Parameter2List} $i]
        set good_OriginX [lindex ${good_OriginXList} $i]
        set good_OriginY [lindex ${good_OriginYList} $i]
        set good_OriginZ [lindex ${good_OriginZList} $i]
        set good_AxisX [lindex ${good_AxisXList} $i]
        set good_AxisY [lindex ${good_AxisYList} $i]
        set good_AxisZ [lindex ${good_AxisZList} $i]

        set Parameter1_percent [CalculatePercent ${Parameter1} ${good_Parameter1}]
        set Parameter2_percent [CalculatePercent ${Parameter2} ${good_Parameter2}]
        set OriginX_percent [CalculatePercent ${OriginX} ${good_OriginX}]
        set OriginY_percent [CalculatePercent ${OriginY} ${good_OriginY}]
        set OriginZ_percent [CalculatePercent ${OriginZ} ${good_OriginZ}]
        set AxisX_percent [CalculatePercent ${AxisX} ${good_AxisX}]
        set AxisY_percent [CalculatePercent ${AxisY} ${good_AxisY}]
        set AxisZ_percent [CalculatePercent ${AxisZ} ${good_AxisZ}]

        puts "good_Parameter1 = ${good_Parameter1}"
        puts "Parameter1 = ${Parameter1}"
        puts "Parameter1_percent = ${Parameter1_percent}\n"

        puts "good_Parameter2 = ${good_Parameter2}"
        puts "Parameter2 = ${Parameter2}"
        puts "Parameter2_percent = ${Parameter2_percent}\n"

        puts "good_OriginX = ${good_OriginX}"
        puts "OriginX = ${OriginX}"
        puts "OriginX_percent = ${OriginX_percent}\n"

        puts "good_OriginY = ${good_OriginY}"
        puts "OriginY = ${OriginY}"
        puts "OriginY_percent = ${OriginY_percent}\n"

        puts "good_OriginZ = ${good_OriginZ}"
        puts "OriginZ = ${OriginZ}"
        puts "OriginZ_percent = ${OriginZ_percent}\n"

        puts "good_AxisX = ${good_AxisX}"
        puts "AxisX = ${AxisX}"
        puts "AxisX_percent = ${AxisX_percent}\n"

        puts "good_AxisY = ${good_AxisY}"
        puts "AxisY = ${AxisY}"
        puts "AxisY_percent = ${AxisY_percent}\n"

        puts "good_AxisZ = ${good_AxisZ}"
        puts "AxisZ = ${AxisZ}"
        puts "AxisZ_percent = ${AxisZ_percent}\n"

        if {${Parameter1_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }
        if {${Parameter2_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }
        if {${OriginX_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }
        if {${OriginY_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }
        if {${OriginZ_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }
        if {${AxisX_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }
        if {${AxisY_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }
        if {${AxisZ_percent} > ${percent_max}} {
           puts "OCC2755 Faulty (case 3 / $i)"
           set IsGood 0
        }

    }

    if {${IsGood} == 1} {
       puts "OCC2755 OK"
    }

}

set 3dviewer 0