1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

41 commits

Author SHA1 Message Date
akr
f526784e1e * enum.c: Enumerable#{min,min_by,max,max_by} extended to take an
optional argument.
  (nmin_cmp): New function.
  (nmin_block_cmp): Ditto
  (nmin_filter): Ditto.
  (nmin_i): Ditto.
  (nmin_run): Ditto.
  (enum_min): Call nmin_run if the optional argument is given.
  (nmin_max): Ditto.
  (nmin_min_by): Ditto.
  (nmin_max_by): Ditto.

* range.c: Range#{min,max} extended to take an optional argument.
  (range_min): Call range_first if the optional argument is given.
  (range_max): Call rb_call_super if the optional argument is given.

[ruby-core:57111] [Feature ]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-14 15:45:11 +00:00
nobu
3ac0ec4ecd test/ruby: better assertions
* test/ruby: use better assertions instead of mere assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-13 09:18:05 +00:00
nobu
4ce307aeee range.c: revert the old behavior
* range.c (range_each): revert the old behavior, no block is given to
  the yielded block.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-30 04:21:22 +00:00
nobu
64f2b9f990 range.c: modify check
* range.c (range_initialize_copy): disallow to modify after
  initialized.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-26 10:08:02 +00:00
nobu
5812f34dfe test_range.rb: remove invalid assertions
* test/ruby/test_range.rb: remove invalid assertions for [Bug ].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-08 05:35:08 +00:00
naruse
edde029176 Follow r42431
Follow tests to revert r42400.  [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-08 02:16:17 +00:00
nobu
9deecfc453 range.c: return nil for empty range
* range.c (range_last): return nil for empty range, or in the case the
  predecessor is smaller than the begin.  [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06 12:59:59 +00:00
nobu
2743b0d608 range.c: consider exclusive
* range.c (range_last): exclude the last number of the exclusive range
  if the end is Numeric.  [ruby-dev:47587] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-06 08:42:51 +00:00
nobu
55f0fa5a7a test_range.rb: refine message
* test/ruby/test_range.rb (TestRange#test_bsearch_with_mathn): refine
  failure messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 04:45:23 +00:00
marcandre
e29e4b55ab * range.c: Use div instead of / for bsearch
* test/ruby/test_range.rb: Test showing bug when requiring mathn

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-05 03:51:09 +00:00
marcandre
20c0fb69d6 * array.c (rb_ary_bsearch): Raise TypeError on bad return from block
* range.c (range_bsearch): ditto

* test/ruby/test_array.rb (class): Test for above

* test/ruby/test_range.rb (class): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 06:00:24 +00:00
marcandre
00d6bb5108 * range.c: Restrict bsearch to integers []
* test/ruby/test_range.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 05:46:48 +00:00
marcandre
39048aca75 * array.c (rb_ary_bsearch): Return enumerator if no block []
* range.c (range_bsearch): ditto

* test/ruby/test_array.rb: Test for above

* test/ruby/test_range.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-30 05:11:03 +00:00
marcandre
115a51f8ec * range.c: Fix Range#bsearch for floats [Bug ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-29 22:00:36 +00:00
mame
412b023742 * range.c (range_bsearch): fix some bugs: a documentation bug, a wrong
condition, missed break in switch/case, and workaround for GCC
  optimization. See [ruby-core:49364] in detail.  A great patch from
  Heesob Park. [Bug ] [Feature ]

* array.c (rb_ary_bsearch): fix similar bug (missed break).

* test/ruby/test_range.rb: add two test cases for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-15 13:50:55 +00:00
mame
de07850e47 * array.c (rb_ary_bsearch): add Array#bsearch for binary search.
[ruby-core:36390] [Feature ]

* test/ruby/test_array.rb: add a test for above.

* range.c (range_bsearch): add Range#bsearch for binary search.
  [ruby-core:36390] [Feature ]

* test/ruby/test_range.rb: add a test for above

* NEWS: added the two new methods.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-14 15:53:50 +00:00
marcandre
28d8bf902d * range.c: Support for Range#size and Range#each.size
[Feature ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-06 17:14:46 +00:00
tarui
d22e08f937 * range.c (range_max): fix behavior with excluded end value.
[Bug ]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 00:47:31 +00:00
usa
b5897263eb * test/ruby/test_range.rb (TestRange#test_step_ruby_core_35753):
avoid float error. [ruby-core:35804]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-18 03:17:02 +00:00
usa
9d5f651a98 * numeric.c (ruby_float_step): wrong loop condition.
fixes [ruby-core:35753], reported by Joey Zhou.

* test/ruby/test_range.rb (TestRange#test_step_ruby_core_35753):
  test above change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-14 14:50:46 +00:00
akr
fe98a03c53 * ext/socket/extconf.rb: suppress a warning.
* ext/extmk.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26 12:34:51 +00:00
yugui
21c32a3c7a * test/ruby/test_range.rb (TestRange#test_comparison_when_recursive):
test for r25010.

* test/ruby/test_struct.rb (TestStruct#test_comparison_when_recursive):
  ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-26 12:17:47 +00:00
nobu
1b541acd69 * string.c (rb_str_upto): keep first width. [ruby-dev:39361]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 04:14:23 +00:00
matz
95e77269a9 * range.c (range_step): treat symbols specially so that iterating
over symbols should work like strings.  [ruby-core:24780]

* range.c (range_each): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-17 17:00:47 +00:00
matz
554786aedc * range.c (range_each): should honor to_str conversion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-17 16:41:00 +00:00
matz
b21088b431 * string.c (rb_str_upto): generate numerical sequence when
characters in both edges are all digits.  [ruby-talk:343186]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-16 22:43:48 +00:00
matz
da19797648 * range.c (range_eql, range_eq): fixed equality to work for
subclasses of Range.  a patch from Marc-Andre Lafortune.
   [ruby-core:22190]

* test/ruby/test_range.rb: add assertions for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-05 05:01:12 +00:00
mame
181ffea5e0 * test/ruby/test_range.rb: add a test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-02 17:53:48 +00:00
akr
3330ec6cff add tests for [ruby-dev:34557] and [ruby-dev:34558].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-02 07:52:01 +00:00
matz
bdc00ba604 * bignum.c (rb_cmpint): moved from compar.c, to check bignum
zero.

* range.c (range_step): add step for each iteration if begin and
  end are numeric.  [ruby-core:15990]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-06 17:11:50 +00:00
mame
3c5d20272f * test/ruby/test_range.rb: add tests to achieve over 90% test coverage
of range.c.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-29 16:26:07 +00:00
akr
068d11ef96 * range.c (range_dumper): make uninitialized range dumpable.
(range_loader): make uninitialized range loadable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-10 06:50:22 +00:00
akr
4261abb230 * range.c: represent initialized state using EXCL instead of FL_USER3.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-10 06:25:40 +00:00
nobu
113a709cce * range.c (range_max, range_min): return nil for empty set as well as
1.8 and Enumerable.  [ruby-dev:31198]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-13 02:33:11 +00:00
akr
8f79c623f3 add tests for [ruby-dev:31189] and [ruby-dev:31190].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-12 13:23:29 +00:00
matz
9c5a4caf72 * range.c (range_max): treat end exclusion without iteration if
the end value is an integer.  [ruby-talk:167433]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-25 05:42:28 +00:00
akr
16457d4b96 add exclude_end? method to DuckRange.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-05 23:56:02 +00:00
akr
b08e8d937f add a test for duck-type range.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-04 05:19:44 +00:00
akr
5f97451ef9 add a test for [ruby-dev:26383].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-30 06:27:05 +00:00
nahi
994dfc0ae6 * test/*: should not depend on $KCODE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-02-18 13:08:08 +00:00
usa
c7d278adb9 * test/ruby/test_range.rb: added.
* MANIFEST: add test/ruby/test_range.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-17 02:18:01 +00:00