|
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