def test_range_index_type_inferred(self): for params in _generate_custom_range_params(): start, stop, step = params for name in test_global_index_names: index = pd.RangeIndex(start, stop, step, name=name) with self.subTest(index=index): native_index_type = numba.typeof(index) self.assertIsInstance(native_index_type, RangeIndexType)
def test_range_index_attribute_values(self): def test_impl(index): return index.values sdc_func = self.jit(test_impl) for params in _generate_custom_range_params(): index = pd.RangeIndex(*params) with self.subTest(index=index): result = sdc_func(index) result_ref = test_impl(index) np.testing.assert_array_equal(result, result_ref)
def test_range_index_len(self): def test_impl(*args): index = pd.RangeIndex(*args) return len(index) sdc_func = self.jit(test_impl) for params in _generate_custom_range_params(): start, stop, step = params with self.subTest(start=start, stop=stop, step=step): result = sdc_func(*params) result_ref = test_impl(*params) self.assertEqual(result, result_ref)
def test_range_index_unbox_and_box(self): def test_impl(index): return index sdc_func = self.jit(test_impl) for params in _generate_custom_range_params(): start, stop, step = params for name in test_global_index_names: index = pd.RangeIndex(start, stop, step, name=name) with self.subTest(index=index): result = sdc_func(index) result_ref = test_impl(index) pd.testing.assert_index_equal(result, result_ref)
def test_range_index_copy(self): def test_impl(index, new_name): return index.copy(name=new_name) sdc_func = self.jit(test_impl) for params in _generate_custom_range_params(): start, stop, step = params for name, new_name in product(test_global_index_names, repeat=2): index = pd.RangeIndex(start, stop, step, name=name) with self.subTest(index=index, new_name=new_name): result = sdc_func(index, new_name) result_ref = test_impl(index, new_name) pd.testing.assert_index_equal(result, result_ref)
def test_range_index_getitem_scalar(self): def test_impl(index, idx): return index[idx] sdc_func = self.jit(test_impl) for params in _generate_custom_range_params(): index = pd.RangeIndex(*params) n = len(index) if not n: # test only non-empty ranges continue values_to_test = [-n, n // 2, n - 1] for idx in values_to_test: with self.subTest(index=index, idx=idx): result = sdc_func(index, idx) result_ref = test_impl(index, idx) self.assertEqual(result, result_ref)