def test_int64_index_operator_eq_nparray(self): def test_impl(A, B): return A == B sdc_func = self.jit(test_impl) n = 11 for A, B in product( _generate_int64_indexes_fixed(n), map(lambda x: np.array(x), _generate_int64_indexes_fixed(n)) ): for swap_operands in (False, True): if swap_operands: A, B = B, A with self.subTest(left=A, right=B): result = np.asarray(sdc_func(A, B)) # FIXME_Numba#5157: remove np.asarray result_ref = test_impl(A, B) np.testing.assert_array_equal(result, result_ref)
def test_int64_index_unbox_and_box(self): def test_impl(index): return index sdc_func = self.jit(test_impl) n = 11 for index in _generate_int64_indexes_fixed(n): with self.subTest(index=index): result = sdc_func(index) result_ref = test_impl(index) pd.testing.assert_index_equal(result, result_ref)
def test_int64_index_operator_ne_index(self): def test_impl(index1, index2): return index1 != index2 sdc_func = self.jit(test_impl) n = 11 for index1, index2 in product(_generate_int64_indexes_fixed(n), repeat=2): with self.subTest(index1=index1, index2=index2): result = np.asarray(sdc_func(index1, index2)) # FIXME_Numba#5157: remove np.asarray result_ref = test_impl(index1, index2) np.testing.assert_array_equal(result, result_ref)
def test_int64_index_getitem_by_mask(self): def test_impl(index, mask): return index[mask] sdc_func = self.jit(test_impl) n = 11 np.random.seed(0) mask = np.random.choice([True, False], n) for index in _generate_int64_indexes_fixed(n): result = sdc_func(index, mask) result_ref = test_impl(index, mask) pd.testing.assert_index_equal(result, result_ref)
def test_int64_index_getitem_by_array(self): def test_impl(index, idx): return index[idx] sdc_func = self.jit(test_impl) n, k = 11, 7 np.random.seed(0) idx = np.random.choice(np.arange(n), k) for index in _generate_int64_indexes_fixed(n): result = sdc_func(index, idx) result_ref = test_impl(index, idx) pd.testing.assert_index_equal(result, result_ref)
def test_int64_index_append(self): def test_impl(index, other): return index.append(other) sdc_func = self.jit(test_impl) n = 11 other_indexes = [ get_sample_index(n, PositionalIndexType), get_sample_index(n, RangeIndexType), get_sample_index(n, Int64IndexType), ] for index, other in product(_generate_int64_indexes_fixed(n), other_indexes): with self.subTest(index=index, other=other): result = sdc_func(index, other) result_ref = test_impl(index, other) pd.testing.assert_index_equal(result, result_ref)
def test_int64_index_take(self): def test_impl(index, value): return index.take(value) sdc_func = self.jit(test_impl) n = 11 np.random.seed(0) index_pos = np.arange(n) values_to_test = [ np.random.choice(index_pos, 2 * n), list(np.random.choice(index_pos, n, replace=False)), pd.RangeIndex(n // 2), pd.Int64Index(index_pos[n // 2:]) ] for index, value in product(_generate_int64_indexes_fixed(n), values_to_test): with self.subTest(index=index, value=value): result = sdc_func(index, value) result_ref = test_impl(index, value) pd.testing.assert_index_equal(result, result_ref)
def test_int64_index_join(self): def test_impl(index, other): return index.join(other, 'outer', return_indexers=True) sdc_func = self.jit(test_impl) n = 11 other_indexes = [ get_sample_index(2 * n, PositionalIndexType), get_sample_index(2 * n, RangeIndexType), get_sample_index(2 * n, Int64IndexType), ] for index, other in product(_generate_int64_indexes_fixed(n), other_indexes): with self.subTest(index=index, other=other): result = sdc_func(index, other) result_ref = test_impl(index, other) # check_names=False, since pandas behavior is not type-stable pd.testing.assert_index_equal(result[0], result_ref[0], check_names=False) np.testing.assert_array_equal(result[1], result_ref[1]) np.testing.assert_array_equal(result[2], result_ref[2])