def test_limit_preserves_rows(self): table = Table(self.rows, self.columns) table2 = table.limit(2) table3 = table2.limit(2) self.assertIs(table.rows[0], table2.rows[0]) self.assertIs(table2.rows[0], table3.rows[0])
def test_limit(self): table = Table(self.rows, self.columns) new_table = table.limit(2) self.assertIsNot(new_table, table) self.assertEqual(len(new_table.rows), 2) self.assertSequenceEqual(new_table.rows[0], (1, 4, 'a')) self.assertSequenceEqual(new_table.columns['one'], (1, 2))
def test_limit_step_only(self): table = Table(self.rows, self.columns) new_table = table.limit(step=2) self.assertIsNot(new_table, table) self.assertEqual(len(new_table.rows), 2) self.assertSequenceEqual(new_table.rows[0], (1, 4, 'a')) self.assertSequenceEqual(new_table.rows[1], (None, 2, u'👍')) self.assertSequenceEqual(new_table.columns['one'], (1, None))
def test_limit_slice_negative(self): table = Table(self.rows, self.columns) new_table = table.limit(-2, step=-1) self.assertIsNot(new_table, table) self.assertEqual(len(new_table.rows), 2) self.assertSequenceEqual(new_table.rows[0], (2, 3, 'b')) self.assertSequenceEqual(new_table.rows[1], (1, 4, 'a')) self.assertSequenceEqual(new_table.columns['one'], (2, 1))
def test_limit_with_row_names(self): table = Table(self.rows, self.columns, row_names='three') new_table = table.limit(2) self.assertSequenceEqual(new_table.rows['a'], (1, 4, 'a')) self.assertSequenceEqual(new_table.row_names, ('a', 'b'))