def test_interval_array_equal_message(self): a = pd.interval_range(0, periods=4).values b = pd.interval_range(1, periods=4).values msg = textwrap.dedent("""\ IntervalArray.left are different IntervalArray.left values are different \\(100.0 %\\) \\[left\\]: Int64Index\\(\\[0, 1, 2, 3\\], dtype='int64'\\) \\[right\\]: Int64Index\\(\\[1, 2, 3, 4\\], dtype='int64'\\)""") with tm.assert_raises_regex(AssertionError, msg): tm.assert_interval_array_equal(a, b)
def test_interval_array_equal_end_mismatch(): kwargs = dict(start=0, periods=5) arr1 = interval_range(end=10, **kwargs).values arr2 = interval_range(end=20, **kwargs).values msg = """\ IntervalArray.left are different IntervalArray.left values are different \\(80.0 %\\) \\[left\\]: Int64Index\\(\\[0, 2, 4, 6, 8\\], dtype='int64'\\) \\[right\\]: Int64Index\\(\\[0, 4, 8, 12, 16\\], dtype='int64'\\)""" with pytest.raises(AssertionError, match=msg): tm.assert_interval_array_equal(arr1, arr2)
def test_interval_array_equal_start_mismatch(): kwargs = dict(periods=4) arr1 = interval_range(start=0, **kwargs).values arr2 = interval_range(start=1, **kwargs).values msg = """\ IntervalArray.left are different IntervalArray.left values are different \\(100.0 %\\) \\[left\\]: Int64Index\\(\\[0, 1, 2, 3\\], dtype='int64'\\) \\[right\\]: Int64Index\\(\\[1, 2, 3, 4\\], dtype='int64'\\)""" with pytest.raises(AssertionError, match=msg): tm.assert_interval_array_equal(arr1, arr2)
def test_interval_array_equal_closed_mismatch(): kwargs = dict(start=0, periods=5) arr1 = interval_range(closed="left", **kwargs).values arr2 = interval_range(closed="right", **kwargs).values msg = """\ IntervalArray are different Attribute "closed" are different \\[left\\]: left \\[right\\]: right""" with pytest.raises(AssertionError, match=msg): tm.assert_interval_array_equal(arr1, arr2)
def test_interval_array_equal_periods_mismatch(): kwargs = dict(start=0) arr1 = interval_range(periods=5, **kwargs).values arr2 = interval_range(periods=6, **kwargs).values msg = """\ IntervalArray.left are different IntervalArray.left length are different \\[left\\]: 5, Int64Index\\(\\[0, 1, 2, 3, 4\\], dtype='int64'\\) \\[right\\]: 6, Int64Index\\(\\[0, 1, 2, 3, 4, 5\\], dtype='int64'\\)""" with pytest.raises(AssertionError, match=msg): tm.assert_interval_array_equal(arr1, arr2)
def test_interval_array_equal_start_mismatch(): kwargs = dict(periods=4) arr1 = interval_range(start=0, **kwargs).values arr2 = interval_range(start=1, **kwargs).values msg = """\ IntervalArray.left are different IntervalArray.left values are different \\(100.0 %\\) \\[left\\]: Int64Index\\(\\[0, 1, 2, 3\\], dtype='int64'\\) \\[right\\]: Int64Index\\(\\[1, 2, 3, 4\\], dtype='int64'\\)""" with pytest.raises(AssertionError, match=msg): assert_interval_array_equal(arr1, arr2)
def test_interval_array_equal_end_mismatch(): kwargs = dict(start=0, periods=5) arr1 = interval_range(end=10, **kwargs).values arr2 = interval_range(end=20, **kwargs).values msg = """\ IntervalArray.left are different IntervalArray.left values are different \\(80.0 %\\) \\[left\\]: Int64Index\\(\\[0, 2, 4, 6, 8\\], dtype='int64'\\) \\[right\\]: Int64Index\\(\\[0, 4, 8, 12, 16\\], dtype='int64'\\)""" with pytest.raises(AssertionError, match=msg): assert_interval_array_equal(arr1, arr2)
def test_interval_array_equal_periods_mismatch(): kwargs = dict(start=0) arr1 = interval_range(periods=5, **kwargs).values arr2 = interval_range(periods=6, **kwargs).values msg = """\ IntervalArray.left are different IntervalArray.left length are different \\[left\\]: 5, Int64Index\\(\\[0, 1, 2, 3, 4\\], dtype='int64'\\) \\[right\\]: 6, Int64Index\\(\\[0, 1, 2, 3, 4, 5\\], dtype='int64'\\)""" with pytest.raises(AssertionError, match=msg): assert_interval_array_equal(arr1, arr2)
def test_interval_array_equal_closed_mismatch(): kwargs = dict(start=0, periods=5) arr1 = interval_range(closed="left", **kwargs).values arr2 = interval_range(closed="right", **kwargs).values msg = """\ IntervalArray are different Attribute "closed" are different \\[left\\]: left \\[right\\]: right""" with pytest.raises(AssertionError, match=msg): assert_interval_array_equal(arr1, arr2)
def test_values_consistent(array, expected_type, dtype): l_values = pd.Series(array)._values r_values = pd.Index(array)._values assert type(l_values) is expected_type assert type(l_values) is type(r_values) if isinstance(l_values, np.ndarray): tm.assert_numpy_array_equal(l_values, r_values) elif isinstance(l_values, pd.Index): tm.assert_index_equal(l_values, r_values) elif pd.api.types.is_categorical(l_values): tm.assert_categorical_equal(l_values, r_values) elif pd.api.types.is_interval_dtype(l_values): tm.assert_interval_array_equal(l_values, r_values) else: raise TypeError("Unexpected type {}".format(type(l_values))) assert l_values.dtype == dtype assert r_values.dtype == dtype
def test_interval_array_equal(kwargs): arr = interval_range(**kwargs).values tm.assert_interval_array_equal(arr, arr)
def test_interval_array_equal(kwargs): arr = interval_range(**kwargs).values assert_interval_array_equal(arr, arr)