|
3 | 3 | Testing that functions from compat work as expected
|
4 | 4 | """
|
5 | 5 |
|
| 6 | +import pytest |
6 | 7 | from pandas.compat import (range, zip, map, filter, lrange, lzip, lmap,
|
7 | 8 | lfilter, builtins, iterkeys, itervalues, iteritems,
|
8 |
| - next) |
| 9 | + next, _get_range_parameters, PY2) |
9 | 10 |
|
10 | 11 |
|
11 | 12 | class TestBuiltinIterators(object):
|
@@ -69,3 +70,22 @@ def test_dict_iterators(self):
|
69 | 70 | assert next(itervalues({1: 2})) == 2
|
70 | 71 | assert next(iterkeys({1: 2})) == 1
|
71 | 72 | assert next(iteritems({1: 2})) == (1, 2)
|
| 73 | + |
| 74 | + |
| 75 | +class TestCompatFunctions(object): |
| 76 | + |
| 77 | + @pytest.mark.parametrize( |
| 78 | + 'start,stop,step', [(0, 10, 2), (11, -2, -1), (0, -5, 1), (2, 4, 8)]) |
| 79 | + def test_get_range_parameters(self, start, stop, step): |
| 80 | + rng = range(start, stop, step) |
| 81 | + if PY2 and len(rng) == 0: |
| 82 | + start_expected, stop_expected, step_expected = 0, 0, 1 |
| 83 | + elif PY2 and len(rng) == 1: |
| 84 | + start_expected, stop_expected, step_expected = start, start + 1, 1 |
| 85 | + else: |
| 86 | + start_expected, stop_expected, step_expected = start, stop, step |
| 87 | + |
| 88 | + start_result, stop_result, step_result = _get_range_parameters(rng) |
| 89 | + assert start_result == start_expected |
| 90 | + assert stop_result == stop_expected |
| 91 | + assert step_result == step_expected |
0 commit comments