1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-21 10:13:43 +03:00
occt/tests/bugs/modalg_5/bug24303
azv 5520ae9665 Extract of fixes from 0024682: Move out B-spline cache from curves and surfaces to dedicated classes BSplCLib_Cache and BSplSLib_Cache
4. Precised calculation of derivatives of surface of revolution is implemented for the points of surface placed on the axis of revolution (Geom_SurfaceOfRevolution.cxx)

5. Small modifications are made to adjust algorithms to new behavior of B-spline calculation.

6. Test cases were modified according to the modern behavior.

7. Changes in BRepLib_CheckCurveOnSurface to use adaptors instead of geometric entities

9. Added methods to access directly poles, knots, multiplicities of BSpline curves and surfaces
2015-08-23 23:21:30 +03:00

67 lines
1.7 KiB
Plaintext
Executable File

puts "============"
puts "OCC24303"
puts "============"
puts ""
###############################
## Precision degradation for Geom2dGcc_Circ2d2TanRad in OCCT6.6.0.
###############################
pload QAcommands
set status 0
set info1 [OCC24303 5]
regexp {Solutions +([-0-9.+eE]+)} ${info1} full Solution
regexp {Distance += +([-0-9.+eE]+)} ${info1} full Distance
if { [info exists Sol5] } {
set info2 [dump Sol5]
regexp {Center +:([-0-9.+eE]+), +([-0-9.+eE]+)} ${info2} full CenterX CenterY
regexp {XAxis +:([-0-9.+eE]+), +([-0-9.+eE]+)} ${info2} full XAxisX XAxisY
regexp {YAxis +:([-0-9.+eE]+), +([-0-9.+eE]+)} ${info2} full YAxisX YAxisY
regexp {Radius +:([-0-9.+eE]+)} ${info2} full Radius
set good_CenterX 5
set good_CenterY 0
set good_XAxisX 1
set good_XAxisY 0
set good_YAxisX 0
set good_YAxisY 1
set good_Radius 3
set SQDistCC [expr ($CenterX-$good_CenterX)*($CenterX-$good_CenterX)+($CenterY-$good_CenterY)*($CenterY-$good_CenterY)]
if { ${SQDistCC} > 1.0e-14 } {
puts "Faulty : Bad Center of the circle"
set status 1
}
if { ${XAxisX} != ${good_XAxisX} } {
puts "Faulty : Bad XAxisX"
set status 2
}
if { ${XAxisY} != ${good_XAxisY} } {
puts "Faulty : Bad XAxisY"
set status 3
}
if { ${YAxisX} != ${good_YAxisX} } {
puts "Faulty : Bad YAxisX"
set status 4
}
if { ${YAxisY} != ${good_YAxisY} } {
puts "Faulty : Bad YAxisY"
set status 5
}
if { ${Radius} != ${good_Radius} } {
puts "Faulty : Bad Radius"
set status 6
}
} else {
puts "Faulty : Bad solution"
set status 7
}
if { ${status} != 0 } {
puts "Faulty : solution is wrong. Status = ${status}"
} else {
puts "OK : solution is correct"
}