cpulimit 5000
pload QAcommands

set info [QANTestNCollectionPerformance]

set values {}
set keys {}
unset -nocomplain std_cl occt_cl diff_cl
foreach line [split $info "\n"] {
  if { [regexp {(std::.*)} $line] } {
    lappend keys $line
    if {[info exists std_cl] && [info exists occt_cl] && [info exists diff_cl]} {
      lappend values "$diff_cl"
    }
  }
  regexp {\s*[-0-9*.+eE]+\s+([-0-9*.+eE]+)\s+([-0-9*.+eE]+)\s+([-0-9*.+eE]+)} $line dump std_cl occt_cl diff_cl
}
lappend values "$diff_cl"

if { [string compare $tcl_platform(platform) "windows"] != 0 } {
  set check_values  { 1.2363286058767904
                      2.7537414143534
                      1.2596260162601621
                      3.937043746844462
                      1.2133020329576465
                      1.2164522569168656
                      1.2495457282327385
                      0.10352433841051313
                      0.45175659293697572
                    }
} else {
  set check_values  { 1.383409071179103
                      5.1472531605899908
                      5.55719377028335395
                      5.5309830187022213
                      1.58734859347377246
                      1.18885181806915312
                      1.4285334583511072
                      0.20619280354776386
                      0.21983563611646603
                    }
  if { [regexp {64} [dversion]] } {
   set check_values  { 1.5
                      5.2
                      5.7
                      5.7
                      1.7
                      1.3
                      1.6
                      0.4
                      0.4
                    }
 }
}
set index 0
foreach key $keys {
  set value [lindex $values $index]
  if { $value > [lindex $check_values $index] } {
    puts "Error: performance of $key become worse"
  } else {
    puts "OK: performance of $key is OK"
  }
  incr index
}
