# machineparameters.test --
#   Unit tests for machineparameters.tcl
#
#
# Copyright 2008 Michael Baudin
#
#
# Startup unit tests
#
package require tcltest
tcltest::configure -verbose {start body error pass}
set basedir [file dirname [info script]]
lappend ::auto_path $basedir
package require math::machineparameters
#
# Check all parameters are there
#
tcltest::test checkall {check epsilon, rounding mode} {
  set pp [machineparameters create %AUTO%]
  $pp configure -verbose 0
  $pp compute
  set epsilon [$pp get -epsilon]
  set rounding [$pp get -rounding]
  set basis [$pp get -basis]
  set mantissa [$pp get -mantissa]
  set emax [$pp get -exponentmax]
  #$pp print
  $pp destroy
  set res {}
  # The following property on epsilon must hold false (yes : epsilon is THAT small !)
  lappend res [expr {1.0+$epsilon>1.0}]
  lappend res [expr {$rounding!=""}]
  lappend res [expr {$basis> 1}]
  lappend res [expr {$mantissa> 1}]
} {0 1 1 1}
#
# Shutdown tests
#
tcltest::cleanupTests

