puts "=========="
puts "OCC23972: Excep-tion thrown when intersecting two cones"
puts "=========="
puts ""

pload QAcommands

set GoodNbCurv 2

OCC23972 s1 s2

intersect res s1 s2

set che [whatis res]
set ind [string first "3d curve" $che]
if {${ind} >= 0} {
  #Only variable "res" exists
  renamevar res res_1
}

set ic 1
set AllowRepeat 1
while { $AllowRepeat != 0 } {
  set che [whatis res_$ic]
  set ind [string first "3d curve" $che]
  if {${ind} < 0} {
    set AllowRepeat 0
  } else {
   
    bounds res_$ic U1 U2
    
    # Hyperbola is expected as intersection result.
    # So, all bounds are adjusted to allow correct computation.
    if { [dval U1] < -20.0 } { dset U1 -20.0 }
    if { [dval U2] > 20.0 }  { dset U2 20.0 }
    
    if {[dval U2-U1] < 1.0e-20} {
      puts "Error: Wrong curve's range!"
    }
    
    xdistcs res_$ic s1 U1 U2 10 3.0e-7
    xdistcs res_$ic s2 U1 U2 10 3.0e-7
    
    incr ic
  }
}

if {[expr {$ic - 1}] == $GoodNbCurv} {
  puts "OK: Number of curves is good!"
} else {
  puts "Error: Number of curves is bad!"
}