forked from pandas-dev/pandas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_assert_interval_array_equal.py
80 lines (56 loc) · 2.32 KB
/
test_assert_interval_array_equal.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# -*- coding: utf-8 -*-
import pytest
from pandas import interval_range
from pandas.util.testing import assert_interval_array_equal
@pytest.mark.parametrize("kwargs", [
dict(start=0, periods=4),
dict(start=1, periods=5),
dict(start=5, end=10, closed="left"),
])
def test_interval_array_equal(kwargs):
arr = interval_range(**kwargs).values
assert_interval_array_equal(arr, arr)
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_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_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_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)