かくたにです。

rubyspec を1.8ターゲットで動かしていて、標記のspecが手元では通らないことに気づきました。
何が正しいのか自分ではわからないので教えてもらえるとうれしいです。

BigDecimalで InfinityとNaN を to_i/to_int すると、
手元の環境では次のようになりました:
(動かしているバージョンが少し前のもので恐縮です)

$ /usr/bin/ruby -v -rbigdecimal -e '%w[Infinity NaN].each{|s| v = BigDecimal.new(s); i = v.to_i rescue $!.class; print "#{v}:";p i}'
ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
Infinity:nil
NaN:nil
 
$ ruby -v -rbigdecimal -e '%w[Infinity NaN].each{|s| v = BigDecimal.new(s); i = v.to_i rescue $!.class; print "#{v}:";p i}' 
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]
Infinity:FloatDomainError
NaN:FloatDomainError
 
$ ruby19 -v -rbigdecimal -e '%w[Infinity NaN].each{|s| v = BigDecimal.new(s); i = v.to_i rescue $!.class; print "#{v}:";p i}'
ruby 1.9.2dev (2009-10-05 trunk 25235) [i386-darwin9.8.0]
Infinity:FloatDomainError
NaN:FloatDomainError

るりまの記述は1.8も1.9も「Infinity や NaN のとき、i は nil になります」でした。
http://doc.okkez.net/187/view/method/BigDecimal/i/to_i
http://doc.okkez.net/192/view/method/BigDecimal/i/to_i

手元で失敗したspecは、
http://github.com/rubyspec/rubyspec/blob/master/library/bigdecimal/shared/to_int.rb
の5行目と6行目です。

-- 
{ :name: ["KAKUTANI", "Shintaro"],
  :email: shintaro / kakutani.com, :website: http://kakutani.com/ }