Project

General

Profile

Backport #2349

lib/bigdecimal: errors in comparisons [patch]

Added by marcandre (Marc-Andre Lafortune) over 9 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
[ruby-core:26646]

Description

=begin
$ ruby -r bigdecimal -e 'p BigDecimal.new("1") < nil'
nil

expected: an error like with any other mathematical type:
-e:1:in `<': comparison of BigDecimal with nil failed (ArgumentError)


$ ruby -r bigdecimal -e 'p BigDecimal.new("1") == nil'
nil

expected: false like with any other Ruby object


$ ruby -r bigdecimal -e 'p BigDecimal.new("NaN") < 1'
nil

expected: false, like with any other mathematical comparison

I'll commit the attached patch in a few days (for 1.8 & 1.9) unless there are arguments against it.
=end


Files

bigdec.diff (2.37 KB) bigdec.diff marcandre (Marc-Andre Lafortune), 11/09/2009 03:33 PM

Associated revisions

Revision 6f1649e0
Added by wyhaines (Kirk Haines) almost 9 years ago

ext/bigdecimal/bigdecimal.c: Backport #2349 [ruby-core:26646]; fix comparisons. Also fix a bunch of bugs that lead to broken-ness and failing tests.
test/bigdecimal/test_bigdecimal.rb: Backport #2349 [ruby-core:26646]; added a test suite.
test/ruby/test_exception.rb: The test suite was breaking ZeroDivisionError, which in turn would break bigdecimal/test_bigdecimal.rb. Made a simple fix that keeps that test but does so non-destructively.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@29025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

History

#1

Updated by marcandre (Marc-Andre Lafortune) over 9 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r25765.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

#2

Updated by shyouhei (Shyouhei Urabe) over 9 years ago

  • Status changed from Closed to Assigned
  • Assignee changed from marcandre (Marc-Andre Lafortune) to shyouhei (Shyouhei Urabe)

=begin

=end

#3

Updated by shyouhei (Shyouhei Urabe) over 9 years ago

  • Assignee changed from shyouhei (Shyouhei Urabe) to wyhaines (Kirk Haines)

=begin
Well, a litte inspection shows me that

  • 1.9.2dev, 1.8.8dev, and 1.8.7 behave in the same way (as marcandre expected)
  • 1.9.1, and 1.8.6 behave as described in the original post

So I suspect 1.9.1 and 1.8.6 are buggy here, both should backport this.
=end

#4

Updated by wyhaines (Kirk Haines) almost 9 years ago

  • Status changed from Assigned to Closed

=begin
This issue was solved with changeset r29025.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF