puts "========"
puts "OCC26980"
puts "========"
puts ""
#################################
# Intersection part of Boolean algorithm spends much system time and system memory
#################################

set max_time 120
set mem_max_wsetpeak 500000000


bclearobjects;
bcleartools;

restore [locate_data_file bug26980-cmp.brep] cmp

puts [nbshapes cmp -t]

eval baddobjects [explode cmp]

dchrono cr reset
dchrono cr start

bfillds
bbuild result

dchrono cr stop

set mem_wsetpeak [meminfo wsetpeak]

if { ${mem_wsetpeak} > ${mem_max_wsetpeak}} {
    puts "Error : there is memory problem (${mem_wsetpeak} MBytes has been allocated)"
}

set chrono_info [dchrono cr show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $chrono_info full CPU_time
if { $CPU_time > ${max_time} } {
  puts "CPU user time of Boolean operation is more than ${max_time} seconds - Error"
} else {
  puts "CPU user time of Boolean operation is less than ${max_time} seconds - OK"
}

set nbshapes_expected "
 VERTEX    : 365
 EDGE      : 793
 WIRE      : 531
 FACE      : 531
 SHELL     : 102
 SOLID     : 101
 COMPSOLID : 0
 COMPOUND  : 1
 SHAPE     : 2424
"

checknbshapes result -ref ${nbshapes_expected} -t

smallview
donly result
fit

set 2dviewer 1
