From: helfper@... Date: 2015-08-21T01:31:43+00:00 Subject: [ruby-core:70487] [Ruby trunk - Bug #11471] min, min_by, max, max_by with optional parameter return a wrong value Issue #11471 has been updated by Helder Pereira. File enum_nmin_filter_fix.patch added Here is my fix. I also created a pull request: https://github.com/ruby/ruby/pull/1005 ---------------------------------------- Bug #11471: min, min_by, max, max_by with optional parameter return a wrong value https://bugs.ruby-lang.org/issues/11471#change-53890 * Author: Tsuyoshi Sawada * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- This is reported in StackOverflow: http://stackoverflow.com/questions/32121749/why-20-13-14-min2-13-20. Sometimes `min`, `min_by`, `max`, `max_by` with an optional parameter return a wrong value. [20, 32, 32, 21, 30, 25, 29, 13, 14].min(2) # => [13, 20] [20, 32, 32, 21, 30, 25, 29, 13, 14].min_by(2, &:itself) # => [13, 20] [0, 0, 0, 0, 0, 0, 1, 3, 2].max(2) # => [3, 1] [0, 0, 0, 0, 0, 0, 1, 3, 2].max_by(2, &:itself) # => [3, 1] ---Files-------------------------------- enum_bug_fix.patch (2.05 KB) enum_nmin_filter_fix.patch (2.42 KB) -- https://bugs.ruby-lang.org/