
puts "========"
puts "OCC165"
puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
puts "========"

restore [locate_data_file offset_wire_019.brep] a 
checkshape a

mkplane f a
checkshape f

set IsGood 1
if [catch {mkoffset res1 f 1 4.8 } result] {
  set IsGood 0
} else {
  puts "OCC165 OK (case 1): function MKOFFSET works properly"
  checkshape res1_1
  mkplane pl1 res1_1
  checkshape pl1
}

if [catch {mkoffset res2 f 1 -2.9 } result] {
  set IsGood 0
} else {
  puts "OCC165 OK (case 2): function MKOFFSET works properly"
  checkshape res2_1
  mkplane pl2 res2_1 
  checkshape pl2
}

if {$IsGood == 1} {
  compound a res1_1 res2_1 res
  
  regexp {Mass +: +([-0-9.+eE]+)} [lprops res1_1] full len

  set good_len 1112.29
  set percent_max 0.1
  set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]

  puts "good_len = ${good_len}"
  puts "length = ${len}"
  puts "percent = ${percent}"

  if {${percent} > ${percent_max}} {
    set IsGood 0
  }
  
  regexp {Mass +: +([-0-9.+eE]+)} [lprops res2_1] full len

  set good_len 1063.91
  set percent_max 0.1
  set percent [expr abs(${len} - ${good_len}) / double(${good_len}) * 100.]

  puts "good_len = ${good_len}"
  puts "length = ${len}"
  puts "percent = ${percent}"

  if {${percent} > ${percent_max}} {
    set IsGood 0
  }

  if {$IsGood == 1} {
    puts "OCC165 OK"
  } else {
    puts "OCC165 Faulty"
  }

} else {
  puts "OCC165 Faulty"
}
