Commit Graph

49 Commits

Author SHA1 Message Date
Terry Jan Reedy ab25c7e311
Revert "Add tests for empty range equality (#103751)" (#103770)
This reverts commit dca27a69a8.
Added tests are redundant with existing tests.
2023-04-24 14:29:57 -04:00
Kirill dca27a69a8
Add tests for empty range equality (#103751) 2023-04-24 10:32:15 -04:00
Pieter Eendebak f63f525e16
gh-100726: Optimize construction of range object for medium sized integers (#100810)
Use C long arithmetic instead of PyLong arithmetic to compute the range length, where possible.

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
2023-01-21 19:33:08 +00:00
Serhiy Storchaka 787764219f
gh-89189: More compact range iterator (GH-27986) 2022-11-30 23:04:30 +02:00
Serhiy Storchaka 936f6a16b9
bpo-45030: Fix integer overflow in __reduce__ of the range iterator (GH-28000)
It happened with fast range iterator  when the calculated stop = start + step * len
was out of the C long range.
2021-09-04 21:02:21 +03:00
chilaxan 94a3d2a632
bpo-45018: Fix rangeiter_reduce in rangeobject.c (GH-27938)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-08-27 12:27:19 +02:00
Serhiy Storchaka 5f4b229df7
bpo-40792: Make the result of PyNumber_Index() always having exact type int. (GH-20443)
Previously, the result could have been an instance of a subclass of int.

Also revert bpo-26202 and make attributes start, stop and step of the range
object having exact type int.

Add private function _PyNumber_Index() which preserves the old behavior
of PyNumber_Index() for performance to use it in the conversion functions
like PyLong_AsLong().
2020-05-28 10:33:45 +03:00
Pablo Galindo 4b66fa6ce9
bpo-39200: Correct the error message for range() empty constructor (GH-17813)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2020-01-05 17:30:53 +00:00
Serhiy Storchaka 7d44e7a456
bpo-37685: Use singletons ALWAYS_EQ and NEVER_EQ in more tests. (GH-15167) 2019-08-08 08:43:18 +03:00
Serhiy Storchaka 34fd4c2019
bpo-35133: Fix mistakes when concatenate string literals on different lines. (GH-10284)
Two kind of mistakes:

1. Missed space. After concatenating there is no space between words.

2. Missed comma. Causes unintentional concatenating in a list of strings.
2018-11-05 16:20:25 +02:00
4kir4 e46fb86118 bpo-28876: bool of large range raises OverflowError (#699) 2017-03-20 08:44:46 +02:00
Serhiy Storchaka df53392f0d Issue #28376: Creating instances of range_iterator by calling range_iterator
type now is disallowed.  Calling iter() on range instance is the only way.
Patch by Oren Milman.
2016-10-08 22:01:18 +03:00
Serhiy Storchaka c7f490c8b1 Issue #28376: Creating instances of range_iterator by calling range_iterator
type now is deprecated.  Patch by Oren Milman.
2016-10-08 21:50:45 +03:00
Serhiy Storchaka 639098c591 Merge from 3.5. 2016-10-08 21:45:07 +03:00
Serhiy Storchaka 44759bcf13 Issue #28376: The constructor of range_iterator now checks that step is not 0.
Patch by Oren Milman.
2016-10-08 21:43:11 +03:00
Serhiy Storchaka e4fbb0206d Remove unused support.run_unittest imports.
It is not needed since tests use unittest.main().
2016-04-24 23:42:49 +03:00
Zachary Ware 38c707e7e0 Issue #21741: Update 147 test modules to use test discovery.
I have compared output between pre- and post-patch runs of these tests
to make sure there's nothing missing and nothing broken, on both
Windows and Linux.  The only differences I found were actually tests
that were previously *not* run.
2015-04-13 15:00:43 -05:00
Serhiy Storchaka bad1257c96 Issue #22777: Test pickling with all protocols. 2014-12-15 14:03:42 +02:00
Kristján Valur Jónsson c5cc5011ac Make the various iterators' "setstate" sliently and consistently clip the
index.  This avoids the possibility of setting an iterator to an invalid
state.
2014-03-05 15:23:07 +00:00
Kristján Valur Jónsson 25dded041f Make the various iterators' "setstate" sliently and consistently clip the
index.  This avoids the possibility of setting an iterator to an invalid
state.
2014-03-05 13:47:57 +00:00
Kristján Valur Jónsson 25ea45db81 Merge with 3.3 2014-03-04 23:22:15 +00:00
Kristján Valur Jónsson 4ca688edeb Fix pickling of rangeiter. rangeiter_setstate would not allow setting it
to the exhausted state.
2014-03-04 23:19:24 +00:00
Antoine Pitrou 8f2ee6e407 Fix writing out 64-bit size fields on 32-bit builds 2013-11-23 21:05:08 +01:00
Mark Dickinson c992fafddc Issue #16402: Merge fix from 3.3 2012-11-04 11:47:47 +00:00
Mark Dickinson 1321edaa55 Issue #16402: Merge fix from 3.2 2012-11-04 11:47:05 +00:00
Mark Dickinson 8cd1c7681d Issue #16402: In range slicing, fix shadowing of exceptions from __index__ method. 2012-11-04 11:46:17 +00:00
Kristján Valur Jónsson 31668b8f7a Issue #14288: Serialization support for builtin iterators. 2012-04-03 10:49:41 +00:00
Benjamin Peterson 878ce389a0 add introspection to range objects (closes #9896)
Patch by Daniel Urban.
2011-11-05 15:17:52 -04:00
Mark Dickinson 36645681c8 Issue #13201: equality for range objects is now based on equality of the underlying sequences. Thanks Sven Marnach for the patch. 2011-10-23 19:53:01 +01:00
Ezio Melotti 982ef4e0bc #11845: Fix typo in rangeobject.c that caused a crash in compute_slice_indices. Patch by Daniel Urban. 2011-04-15 08:15:40 +03:00
Nick Coghlan e993b10041 Issue 10889: Support slicing and indexing of large ranges (no docs changes, since, as far as I know, we never said anywhere that this *didn't* work) 2011-01-12 03:15:52 +00:00
Nick Coghlan 37ee850b10 Issue 2690: Add support for slicing and negative indices to range objects (includes precalculation and storage of the range length).
Refer to the tracker issue for the language moratorium implications of this change
2010-12-03 14:26:13 +00:00
Benjamin Peterson d57bb55c7d fix two broken tests 2010-11-20 23:03:34 +00:00
Benjamin Peterson 8d16ab3c56 merge all range tests into test_range 2010-11-20 23:01:55 +00:00
Ezio Melotti b3aedd4862 #9424: Replace deprecated assert* methods in the Python test suite. 2010-11-20 19:04:17 +00:00
Ezio Melotti b58e0bd8bb use assert[Not]In where appropriate 2010-01-23 15:40:09 +00:00
Benjamin Peterson 577473fe68 use assert[Not]In where appropriate
A patch from Dave Malcolm.
2010-01-19 00:09:57 +00:00
Benjamin Peterson 91799ae3e1 remove 2.x specific warnings 2009-11-16 00:25:02 +00:00
Mark Dickinson d550c9a281 Issue #7298: Fix a variety of problems leading to wrong results with
the fast versions of range.__reversed__ and range iteration.  Also
fix wrong results and a refleak for PyLong version of range.__reversed__.

Thanks Eric Smith for reviewing, and for suggesting improved tests.
2009-11-15 09:57:26 +00:00
Mark Dickinson 418f81d9b6 Issue #1766304: The range.__contains__ optimization should only be
applied to ints, not to instances of subclasses of int.
2009-09-24 20:04:23 +00:00
Mark Dickinson 3e124ae739 Issue #1766304: Optimize membership testing for ranges: 'n in range(...)'
does an O(1) check, if n is an integer.  Non-integers aren't affected.
Thanks Robert Lehmann.
2009-09-22 21:47:24 +00:00
Benjamin Peterson c9c0f201fe convert old fail* assertions to assert* 2009-06-30 23:06:06 +00:00
Raymond Hettinger 94f5583777 Fix SystemError and a wasps nest of ref counting issues. 2009-06-12 18:40:16 +00:00
Hirokazu Yamamoto d0d0b65885 Issue #4183: Some tests didn't run with pickle.HIGHEST_PROTOCOL.
Reviewed by Benjamin Peterson.
2008-10-23 00:38:15 +00:00
Alexandre Vassalotti 7505607ae7 Issue 2582: Fix pickling of range objects. 2008-06-10 04:03:04 +00:00
Benjamin Peterson ee8712cda4 #2621 rename test.test_support to test.support 2008-05-20 21:35:26 +00:00
Christian Heimes a37d4c693a Removed PyInt_GetMax and sys.maxint
I replaced sys.maxint with sys.maxsize in Lib/*.py. Does anybody see a problem with the change on Win 64bit platforms? Win 64's long is just 32bit but the sys.maxsize is now 2**63-1 on every 64bit platform.
Also added docs for sys.maxsize.
2007-12-04 23:02:19 +00:00
Walter Dörwald 2a857de62a Update name of test. 2007-05-21 18:02:40 +00:00
Walter Dörwald 4ad94210d1 Rename test_xrange.py to test_range.py and fix the
type name in various spots.
2007-05-21 18:01:17 +00:00