Skip to content

Instantly share code, notes, and snippets.

@jfirebaugh
Created October 23, 2011 00:20
Show Gist options
  • Select an option

  • Save jfirebaugh/1306674 to your computer and use it in GitHub Desktop.

Select an option

Save jfirebaugh/1306674 to your computer and use it in GitHub Desktop.
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
/ 0 0.0 0+0i 0/1
1 ZeroDivisionError Infinity ZeroDivisionError ZeroDivisionError
1.0 Infinity Infinity ZeroDivisionError Infinity
9223372036854775808 ZeroDivisionError Infinity ZeroDivisionError ZeroDivisionError
0 ZeroDivisionError NaN ZeroDivisionError ZeroDivisionError
0.0 NaN NaN ZeroDivisionError NaN
0+0i ZeroDivisionError (NaN+NaN*i) ZeroDivisionError ZeroDivisionError
0/1 ZeroDivisionError NaN ZeroDivisionError ZeroDivisionError
div 0 0.0 0+0i 0/1
1 ZeroDivisionError ZeroDivisionError NoMethodError ZeroDivisionError
1.0 ZeroDivisionError ZeroDivisionError ZeroDivisionError ZeroDivisionError
9223372036854775808 ZeroDivisionError FloatDomainError NoMethodError ZeroDivisionError
0 ZeroDivisionError ZeroDivisionError NoMethodError ZeroDivisionError
0.0 ZeroDivisionError ZeroDivisionError ZeroDivisionError ZeroDivisionError
0+0i NoMethodError NoMethodError NoMethodError NoMethodError
0/1 ZeroDivisionError ZeroDivisionError ZeroDivisionError ZeroDivisionError
fdiv 0 0.0 0+0i 0/1
1 Infinity Infinity (NaN+NaN*i) Infinity
1.0 Infinity Infinity ZeroDivisionError Infinity
9223372036854775808 Infinity Infinity (NaN+NaN*i) Infinity
0 NaN NaN (NaN+NaN*i) NaN
0.0 NaN NaN ZeroDivisionError NaN
0+0i (NaN+NaN*i) (NaN+NaN*i) (NaN+NaN*i) (NaN+NaN*i)
0/1 NaN NaN NaN NaN
NUMERATORS = [1, 1.0, 0x8000_0000_0000_0000, 0, 0.0, Complex(0,0), Rational(0,1)]
DENOMINATORS = [0, 0.0, Complex(0,0), Rational(0,1)]
[:/, :div, :fdiv].each do |method|
puts [method, *DENOMINATORS].join("\t")
NUMERATORS.each do |numerator|
puts [numerator, *DENOMINATORS.map {|denominator|
begin
numerator.send(method, denominator).inspect
rescue StandardError => e
e.class
end
}].join("\t")
end
puts ""
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment