def test_reorder_columns(self): """Reorder columns in a TabFile """ tabfile = TabFile('test',self.fp,first_line_is_header=True) # Check number of columns and header items self.assertEqual(tabfile.nColumns(),4) self.assertEqual(tabfile.header(),['chr','start','end','data']) # Reorder new_columns = ['chr','data','start','end'] tabfile = tabfile.reorderColumns(new_columns) self.assertEqual(tabfile.nColumns(),4) self.assertEqual(tabfile.header(),new_columns) self.assertEqual(str(tabfile[0]),"chr1\t4.6\t1\t234") self.assertEqual(str(tabfile[1]),"chr1\t5.7\t567\t890") self.assertEqual(str(tabfile[2]),"chr2\t6.8\t1234\t5678")
def test_reorder_columns(self): """Reorder columns in a TabFile """ tabfile = TabFile('test', self.fp, first_line_is_header=True) # Check number of columns and header items self.assertEqual(tabfile.nColumns(), 4) self.assertEqual(tabfile.header(), ['chr', 'start', 'end', 'data']) # Reorder new_columns = ['chr', 'data', 'start', 'end'] tabfile = tabfile.reorderColumns(new_columns) self.assertEqual(tabfile.nColumns(), 4) self.assertEqual(tabfile.header(), new_columns) self.assertEqual(str(tabfile[0]), "chr1\t4.6\t1\t234") self.assertEqual(str(tabfile[1]), "chr1\t5.7\t567\t890") self.assertEqual(str(tabfile[2]), "chr2\t6.8\t1234\t5678")
def test_reorder_columns_empty_cells(self): """Reorder columns where some lines have empty cells at the start """ tabfile = TabFile('test',self.fp,first_line_is_header=True) # Check number of columns and header items self.assertEqual(tabfile.nColumns(),4) self.assertEqual(tabfile.header(),['chr','start','end','data']) # Reset some cells to empty tabfile[0]['chr'] = '' tabfile[2]['chr'] = '' # Reorder new_columns = ['chr','data','start','end'] tabfile = tabfile.reorderColumns(new_columns) self.assertEqual(tabfile.nColumns(),4) self.assertEqual(tabfile.header(),new_columns) self.assertEqual(str(tabfile[0]),"\t4.6\t1\t234") self.assertEqual(str(tabfile[1]),"chr1\t5.7\t567\t890") self.assertEqual(str(tabfile[2]),"\t6.8\t1234\t5678")
def test_reorder_columns_empty_cells(self): """Reorder columns where some lines have empty cells at the start """ tabfile = TabFile('test', self.fp, first_line_is_header=True) # Check number of columns and header items self.assertEqual(tabfile.nColumns(), 4) self.assertEqual(tabfile.header(), ['chr', 'start', 'end', 'data']) # Reset some cells to empty tabfile[0]['chr'] = '' tabfile[2]['chr'] = '' # Reorder new_columns = ['chr', 'data', 'start', 'end'] tabfile = tabfile.reorderColumns(new_columns) self.assertEqual(tabfile.nColumns(), 4) self.assertEqual(tabfile.header(), new_columns) self.assertEqual(str(tabfile[0]), "\t4.6\t1\t234") self.assertEqual(str(tabfile[1]), "chr1\t5.7\t567\t890") self.assertEqual(str(tabfile[2]), "\t6.8\t1234\t5678")