MCPcopy
hub / github.com/pandas-dev/pandas / test_difference

Function test_difference

pandas/tests/indexes/multi/test_setops.py:133–195  ·  view source on GitHub ↗
(idx, sort)

Source from the content-addressed store, hash-verified

131
132
133def test_difference(idx, sort):
134 first = idx
135 result = first.difference(idx[-3:], sort=sort)
136 vals = idx[:-3].values
137
138 if sort is None:
139 vals = sorted(vals)
140
141 expected = MultiIndex.from_tuples(vals, sortorder=0, names=idx.names)
142
143 assert isinstance(result, MultiIndex)
144 assert result.equals(expected)
145 assert result.names == idx.names
146 tm.assert_index_equal(result, expected)
147
148 # empty difference: reflexive
149 result = idx.difference(idx, sort=sort)
150 expected = idx[:0]
151 assert result.equals(expected)
152 assert result.names == idx.names
153
154 # empty difference: superset
155 result = idx[-3:].difference(idx, sort=sort)
156 expected = idx[:0]
157 assert result.equals(expected)
158 assert result.names == idx.names
159
160 # empty difference: degenerate
161 result = idx[:0].difference(idx, sort=sort)
162 expected = idx[:0]
163 assert result.equals(expected)
164 assert result.names == idx.names
165
166 # names not the same
167 chunklet = idx[-3:]
168 chunklet.names = ["foo", "baz"]
169 result = first.difference(chunklet, sort=sort)
170 assert result.names == (None, None)
171
172 # empty, but non-equal
173 result = idx.difference(idx.sortlevel(1)[0], sort=sort)
174 assert len(result) == 0
175
176 # raise Exception called with non-MultiIndex
177 result = first.difference(first.values, sort=sort)
178 assert result.equals(first[:0])
179
180 # name from empty array
181 result = first.difference([], sort=sort)
182 assert first.equals(result)
183 assert first.names == result.names
184
185 # name from non-empty array
186 result = first.difference([("foo", "one")], sort=sort)
187 expected = MultiIndex.from_tuples(
188 [("bar", "one"), ("baz", "two"), ("foo", "two"), ("qux", "one"), ("qux", "two")]
189 )
190 expected.names = first.names

Callers

nothing calls this directly

Calls 5

differenceMethod · 0.45
from_tuplesMethod · 0.45
equalsMethod · 0.45
sortlevelMethod · 0.45
raisesMethod · 0.45

Tested by

no test coverage detected