All pastes #809091 Raw Edit

Something

public text v1 · immutable
·published 2007-12-08 06:41 UTC
rendered paste body
alias logx_maketests {
  var %x 1
  if ($hget(logx_tests)) hfree logx_tests
  echo $color(info) -ta * Generating logx tests - please wait...
  while (%x <= 100) {
    var %base $r(2,10),%power $r(1,99999) / 10000,%result $calc(%base ^ %power)
    while ($len(%result) > 6) var %base $r(2,10),%power $r(1,99999) / 10000,%result $calc(%base ^ %power)
    hadd -m logx_tests %x %base %result %power
    inc %x
  }
  echo $color(info) -ta * Created $({,%x) $!logx() tests. Use /logx_test to run these tests
}

alias logx_test {
  var %x 1,%table logx_tests,%errors 0,%ticks $ticks
  if (!$hget(%table,1)) { echo 4 -ta * Error: No tests found. Use /logx_maketests to make the tests | return }
  while ($hget(%table,%x)) {
    tokenize 32 $v1
    if ($logx($1,$2) != $3) {
      if (!$window(@logx_test)) window -ae @logx_test
      echo 4 -t @logx_test * Error: $!logx( $+ $1 $+ , $+ $2 $+ ) returned $v1 - It should return $3
      inc %errors 
    }
    inc %x
  }
  echo $iif(%errors,4 -t @logx_test,3 -ta) 100 $!logx() tests completed with %errors errors in $calc($ticks - %ticks) ms
}