Project

General

Profile

Bug #769

Mathn's Rational#power2 is broken on 1.8.6 and 1.8.7

Added by jredville (Jim Deville) over 10 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
[ruby-core:20010]

Description

=begin
Mathn's Rational#power2 method is broken in multiple places.

  1. The loop has no variant, it can go into an infinite loop, unless the conditional is true from the start.
  2. 1.8.6 still has the neaed typo (Redmine #175)
  3. assignment to nearn on line 208
  4. Construction of a Rational with 2 non-existant variables: num and den (dem is used, but not den)

Some test cases that demonstrate the broken code:
(Rational.new!(1, 4).power2(Rational.new!(1, 2))) #(NameError for neaed)
(Rational.new!(3, 4).power2(Rational.new!(0, 3))) #Infinite loop
=end


Related issues

Has duplicate Ruby 1.8 - Bug #768: Mathn's Rational#power2 is broken on 1.8.6 and 1.8.7Closed11/21/2008Actions

History

#1

Updated by jredville (Jim Deville) over 10 years ago

=begin
This is tested in RubySpec: 1.8/library/mathn/rational/power2_spec.rb. If you test with this, you'll need to remove the ruby_bug guards, or run with -n foo to bypass them.
=end

#2

Updated by matz (Yukihiro Matsumoto) over 10 years ago

  • Status changed from Open to Closed

=begin

=end

#3

Updated by matz (Yukihiro Matsumoto) over 10 years ago

=begin
Yes, power2 is broken. But it also was undocumented and planned to remove (1.9 already removed). So, in short, ignore it.

=end

Also available in: Atom PDF