puts "========"
puts "0029994: Misprint in IntWalk_PWalking::Perform(...) method"
puts "========"
puts ""

foreach a [directory res*] {unset $a}

torus s1 185.793144150183 -13 70.9931441501827 0 -1 0 0 0 -1 27.0094480547676 0.25
restore [locate_data_file bug29994_s2.draw] s2

intersect res s1 s2 1.0e-4

if { [info exists res] } {
  #Only variable "res" exists
  renamevar res res_1
}

bclearobjects
bcleartools

set ic 1
set AllowRepeat 1
while { $AllowRepeat != 0 } {
  if { ![info exists res_$ic] } {
    set AllowRepeat 0
  } else {
    bounds res_$ic U1 U2
    
    if {[dval U2-U1] < 1.0e-9} {
      puts "Error: Wrong curve's range!"
    }
    
    xdistcs res_$ic s1 U1 U2 100 2.0e-7
    xdistcs res_$ic s2 U1 U2 100 2.0e-7
    
    mkedge ee res_$ic
    baddobjects ee
    incr ic
  }
}

incr ic -1

if { $ic == 1 } {
  puts "OK: good number of curves!"
  checklength res_1 -l 0.70541045554962345 -eps 1.0e-3
} else {
  puts "Error: Incorrect number of curves in intersection result!"
  bfillds
  bbuild result
  
  # Check gaps between edges in result
  checksection result -r 2
  checkmaxtol result -min_tol 2.0e-7
  checknbshapes result -edge 1 -vertex 2
}

smallview
don res_*
fit
disp s1 s2

checkview -screenshot -2d -path ${imagedir}/${test_image}.png
