Skip to content

Commit 1118414

Browse files
committed
Add failing tests for index
1 parent f71e6e8 commit 1118414

File tree

1 file changed

+95
-1
lines changed

1 file changed

+95
-1
lines changed

tests/integration/index_manipulation/test_integration_index_manipulation_ensure_index_is_multiindex.py

Lines changed: 95 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
import pandas as pd
99
import pytest
1010

11-
from pandas_openscm.index_manipulation import ensure_index_is_multiindex
11+
from pandas_openscm.index_manipulation import (
12+
ensure_index_is_multiindex,
13+
ensure_is_multiindex,
14+
)
1215
from pandas_openscm.testing import (
1316
convert_to_desired_type,
1417
create_test_df,
@@ -114,3 +117,94 @@ def test_accessor(setup_pandas_accessors, copy, copy_exp, pobj_type):
114117
else:
115118
# Same object returned
116119
assert id(start) == id(res_short)
120+
121+
122+
def test_ensure_is_multiindex_index():
123+
start = pd.Index([1, 2, 3], name="id")
124+
125+
res = ensure_is_multiindex(start)
126+
127+
assert isinstance(res, pd.MultiIndex)
128+
129+
exp = pd.MultiIndex.from_tuples(
130+
[
131+
(1,),
132+
(2,),
133+
(3,),
134+
],
135+
names=["id"],
136+
)
137+
138+
pd.testing.assert_index_equal(res, exp)
139+
140+
141+
def test_ensure_is_multiindex_index_no_name():
142+
start = pd.Index([1, 2, 3])
143+
144+
res = ensure_is_multiindex(start)
145+
146+
assert isinstance(res, pd.MultiIndex)
147+
148+
exp = pd.MultiIndex.from_tuples(
149+
[
150+
(1,),
151+
(2,),
152+
(3,),
153+
],
154+
names=[None],
155+
)
156+
157+
pd.testing.assert_index_equal(res, exp)
158+
159+
160+
def test_ensure_is_multiindex():
161+
start = pd.MultiIndex.from_tuples(
162+
[
163+
("a", "b"),
164+
("c", "d"),
165+
],
166+
names=["mod", "scen"],
167+
)
168+
169+
res = ensure_is_multiindex(start)
170+
171+
# Same object returned
172+
assert id(start) == id(res)
173+
assert isinstance(res, pd.MultiIndex)
174+
pd.testing.assert_index_equal(res, start)
175+
176+
177+
def test_ensure_is_multiindex_accessor_index(setup_pandas_accessors):
178+
start = pd.Index([1, 2, 3], name="id")
179+
180+
res = start.openscm.ensure_is_multiindex()
181+
182+
assert isinstance(res, pd.MultiIndex)
183+
184+
exp = pd.MultiIndex.from_tuples(
185+
[
186+
(1,),
187+
(2,),
188+
(3,),
189+
],
190+
names=["id"],
191+
)
192+
193+
pd.testing.assert_index_equal(res, exp)
194+
195+
196+
def test_ensure_is_multiindex_accessor_multiindex(setup_pandas_accessors):
197+
start = pd.MultiIndex.from_tuples(
198+
[
199+
("a", "b"),
200+
("c", "d"),
201+
],
202+
names=["mod", "scen"],
203+
)
204+
205+
res = start.openscm.ensure_is_multiindex()
206+
207+
# Same object returned
208+
assert id(start) == id(res)
209+
assert isinstance(res, pd.MultiIndex)
210+
pd.testing.assert_index_equal(res, start)

0 commit comments

Comments
 (0)