mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-08 18:40:55 +03:00
- Added function checkprops, set default tolerance parameter to 1.0e-4 - Using "area" instead of "square". - Options "-equal\notequal" isn't used together with "-s" in blend and offset test cases. - Correct regressions/differences/improvements and CPU problem (set props tolerance to 0.1) - Corrected test cases to use checkprops proc. - Correct image difference - Updated TODOs in test cases. - Updated test cases to get correct images of result shape
158 lines
4.1 KiB
Plaintext
Executable File
158 lines
4.1 KiB
Plaintext
Executable File
puts "================"
|
|
puts "OCC23165"
|
|
puts "================"
|
|
puts ""
|
|
###################################################################################################################
|
|
# BndLib_Add3dCurve::Add incorrectly segmented original B-Spline what resulting in wrong bounding box or exception.
|
|
###################################################################################################################
|
|
|
|
catch { pload XDE }
|
|
|
|
set BugNumber OCC23165
|
|
|
|
smallview
|
|
|
|
# 1 step
|
|
set exception_status 0
|
|
set e1_status 0
|
|
set status 0
|
|
|
|
set percent_max 0.1
|
|
|
|
proc GetPercent {Value GoodValue} {
|
|
set Percent 0.
|
|
if {${GoodValue} != 0.} {
|
|
set Percent [expr abs(${Value} - ${GoodValue}) / abs(double(${GoodValue})) * 100.]
|
|
} elseif {${Value} != 0.} {
|
|
set Percent [expr abs(${GoodValue} - ${Value}) / abs(double(${Value})) * 100.]
|
|
} else {
|
|
set Percent 0.
|
|
}
|
|
return ${Percent}
|
|
}
|
|
|
|
restore [locate_data_file OCC23165-edge1.brep] e1
|
|
|
|
donly e1
|
|
catch { bounding e1 } msg
|
|
fit
|
|
|
|
set index [lsearch $msg exception]
|
|
if {$index > -1} {
|
|
set exception_status 1
|
|
} else {
|
|
set e1_result [bounding e1]
|
|
|
|
set e1_x1 [lindex ${e1_result} 0]
|
|
set e1_y1 [lindex ${e1_result} 1]
|
|
set e1_z1 [lindex ${e1_result} 2]
|
|
set e1_x2 [lindex ${e1_result} 3]
|
|
set e1_y2 [lindex ${e1_result} 4]
|
|
set e1_z2 [lindex ${e1_result} 5]
|
|
|
|
set e1_good_x1 -17.610622244944413
|
|
set e1_good_y1 -0.010622244944394899
|
|
set e1_good_z1 -3.0106222449443973
|
|
set e1_good_x2 -17.589377755055537
|
|
set e1_good_y2 5.700038816113608
|
|
set e1_good_z2 -1.6251884728673096
|
|
|
|
set e1_x1_percent [GetPercent ${e1_x1} ${e1_good_x1}]
|
|
set e1_y1_percent [GetPercent ${e1_y1} ${e1_good_y1}]
|
|
set e1_z1_percent [GetPercent ${e1_z1} ${e1_good_z1}]
|
|
set e1_x2_percent [GetPercent ${e1_x2} ${e1_good_x2}]
|
|
set e1_y2_percent [GetPercent ${e1_y2} ${e1_good_y2}]
|
|
set e1_z2_percent [GetPercent ${e1_z2} ${e1_good_z2}]
|
|
|
|
if {${e1_x1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x1 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_y1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y1 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_z1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z1 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_x2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x2 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_y2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y2 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
if {${e1_z2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z2 for e1 is wrong"
|
|
set e1_status 1
|
|
}
|
|
|
|
}
|
|
|
|
# 2 step
|
|
restore [locate_data_file OCC23165-curve.rle] c
|
|
mkedge result c 20 36
|
|
|
|
donly result
|
|
set res [bounding result]
|
|
fit
|
|
|
|
set x1 [lindex ${res} 0]
|
|
set y1 [lindex ${res} 1]
|
|
set z1 [lindex ${res} 2]
|
|
set x2 [lindex ${res} 3]
|
|
set y2 [lindex ${res} 4]
|
|
set z2 [lindex ${res} 5]
|
|
|
|
set good_x1 -17.6105835090592
|
|
set good_y1 -4.7133570660117909
|
|
set good_z1 -4.3679100133425806
|
|
set good_x2 -17.589416490940806
|
|
set good_y2 5.7000000802283299
|
|
set good_z2 -1.6252272087525899
|
|
|
|
set x1_percent [GetPercent ${x1} ${good_x1}]
|
|
set y1_percent [GetPercent ${y1} ${good_y1}]
|
|
set z1_percent [GetPercent ${z1} ${good_z1}]
|
|
set x2_percent [GetPercent ${x2} ${good_x2}]
|
|
set y2_percent [GetPercent ${y2} ${good_y2}]
|
|
set z2_percent [GetPercent ${z2} ${good_z2}]
|
|
|
|
if {${x1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x1 is wrong"
|
|
set status 1
|
|
}
|
|
if {${y1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y1 is wrong"
|
|
set status 1
|
|
}
|
|
if {${z1_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z1 is wrong"
|
|
set status 1
|
|
}
|
|
if {${x2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : x2 is wrong"
|
|
set status 1
|
|
}
|
|
if {${y2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : y2 is wrong"
|
|
set status 1
|
|
}
|
|
if {${z2_percent} > ${percent_max}} {
|
|
puts "Faulty ${BugNumber} : z2 is wrong"
|
|
set status 1
|
|
}
|
|
|
|
if { ${status} == 0 && ${exception_status} == 0&& ${e1_status} == 0 } {
|
|
puts "${BugNumber}: OK"
|
|
} else {
|
|
puts "${BugNumber}: Faulty"
|
|
}
|
|
|
|
set 2dviewer 1
|
|
checkprops result -l 15.8888
|
|
checksection result
|
|
|