Skip to content

Commit

Permalink
Add unit test for SelectorMethods.select() given a Selector arg, fix …
Browse files Browse the repository at this point in the history
…minor issues with other unit tests.
  • Loading branch information
lebedov committed Mar 22, 2016
1 parent 0adff5f commit dbf2de9
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions tests/test_plsel.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,12 @@ def test_select_list(self):
('foo','mof',2)], names=[0, 1, 2])
assert_frame_equal(result, self.df.ix[idx])

def test_select_Selector(self):
result = self.sel.select(self.df, Selector('/foo/qux[0:2]'))
idx = pd.MultiIndex.from_tuples([('foo','qux',0),
('foo','qux',1)], names=[0, 1, 2])
assert_frame_equal(result, self.df.ix[idx])

def test_select_comma(self):
result = self.sel.select(self.df, '/foo/qux,/baz/mof')
idx = pd.MultiIndex.from_tuples([('foo','qux',0),
Expand Down Expand Up @@ -550,43 +556,47 @@ def test_make_index_empty(self):

def test_make_index_str_single_level(self):
idx = self.sel.make_index('/foo')
assert_index_equal(idx, pd.Index(['foo'], dtype='object'))
assert_index_equal(idx, pd.Index(['foo'], name=0, dtype='object'))
idx = self.sel.make_index('/foo,/bar')
assert_index_equal(idx, pd.Index(['foo', 'bar'], dtype='object'))
assert_index_equal(idx, pd.Index(['foo', 'bar'], name=0, dtype='object'))

def test_make_index_str_multiple_levels(self):
idx = self.sel.make_index('/[foo,bar]/[0:3]')
assert_index_equal(idx, pd.MultiIndex(levels=[['bar', 'foo'],
[0, 1, 2]],
labels=[[1, 1, 1, 0, 0, 0],
[0, 1, 2, 0, 1, 2]]))
[0, 1, 2, 0, 1, 2]],
names=[0, 1]))

def test_make_index_str_multiple_different_levels(self):
idx = self.sel.make_index('/foo[0:3],/bar')
assert_index_equal(idx, pd.MultiIndex(levels=[['bar', 'foo'],
[0, 1, 2, '']],
labels=[[1, 1, 1, 0],
[0, 1, 2, 3]]))
[0, 1, 2, 3]],
names=[0, 1]))

def test_make_index_list_single_level(self):
idx = self.sel.make_index([['foo']])
assert_index_equal(idx, pd.Index(['foo'], dtype='object'))
assert_index_equal(idx, pd.Index(['foo'], name=0, dtype='object'))
idx = self.sel.make_index([['foo'], ['bar']])
assert_index_equal(idx, pd.Index(['foo', 'bar'], dtype='object'))
assert_index_equal(idx, pd.Index(['foo', 'bar'], name=0, dtype='object'))

def test_make_index_list_multiple_levels(self):
idx = self.sel.make_index([[['foo', 'bar'], slice(0, 3)]])
assert_index_equal(idx, pd.MultiIndex(levels=[['bar', 'foo'],
[0, 1, 2]],
labels=[[1, 1, 1, 0, 0, 0],
[0, 1, 2, 0, 1, 2]]))
[0, 1, 2, 0, 1, 2]],
names=[0, 1]))

def test_make_index_list_multiple_different_levels(self):
idx = self.sel.make_index([['foo', [0, 1, 2]], ['bar']])
assert_index_equal(idx, pd.MultiIndex(levels=[['bar', 'foo'],
[0, 1, 2, '']],
labels=[[1, 1, 1, 0],
[0, 1, 2, 3]]))
[0, 1, 2, 3]],
names=[0, 1]))

def test_make_index_invalid(self):
self.assertRaises(Exception, self.sel.make_index, 'foo/bar[')
Expand Down

0 comments on commit dbf2de9

Please sign in to comment.