#!/usr/bin/ruby
assert_eq( 1.0 / 0.0 , Inf)
assert_eq( -1.0 / 0.0 , -Inf)
assert( 0.0 / 0.0 -> is_nan)
assert_eq( - 0.0 , 0) # should be -0.0
assert_eq( Inf + 1 , Inf)
assert_eq( 5 - Inf , -Inf)
assert_eq( Inf * 5 , Inf)
assert_eq( Inf / 5 , Inf)
assert( Inf * 0 -> is_nan)
assert_eq( 1.0 / Inf , 0)
assert_eq( -1.0 / Inf , 0) # should be -0.0
assert_eq( -Inf == -1/0 , true)
assert( -Inf * 0 -> is_nan)
assert( 0 * -Inf -> is_nan)
assert( 0 * 1/0 -> is_nan)
assert_eq( 0/0 == 0/0 , false)
assert_eq( Inf + Inf , Inf)
assert( Inf - Inf -> is_nan)
assert_eq( Inf * Inf , Inf)
assert( Inf / Inf -> is_nan)
assert( Inf * 0.0 -> is_nan)
assert_eq( 0 < Inf , true)
assert_eq( Inf == Inf , true)
assert_eq( -Inf == -Inf , true)
assert_eq( -Inf <=> Inf , -1)
assert_eq( Inf <=> -Inf , 1)
assert_eq( Inf <=> Inf , 0)
assert_eq( -Inf <=> -Inf , 0)
assert_eq( 0 <=> -Inf , 1)
assert( NaN + 1 -> is_nan)
assert( NaN * 5 -> is_nan)
assert( NaN - NaN -> is_nan)
assert( NaN * Inf -> is_nan)
assert( - NaN -> is_nan)
assert_eq( NaN == NaN , false)
assert_eq( NaN > 0 , nil)
assert_eq( NaN < 0 , nil)
assert_eq( NaN == 0 , false)
assert_eq( 0.0 == -0.0 , true)
say "** Test passed!";