def test_formatter_by_named_row2(self): """Test a list of string as index""" s = Sheet(self.data, "test") s.name_rows_by_column(0) s.row.format(["Row 1", "Row 2"], str) assert s.row["Row 1"] == ["1", "2", "3"] assert s.row["Row 2"] == ["4", "5", "6"]
def test_cut_region(self): data = [ # 0 1 2 3 4 5 6 [1, 2, 3, 4, 5, 6, 7], # 0 [21, 22, 23, 24, 25, 26, 27], [31, 32, 33, 34, 35, 36, 37], [41, 42, 43, 44, 45, 46, 47], [51, 52, 53, 54, 55, 56, 57] # 4 ] s = Sheet(data) data = s.cut([1, 1], [4, 5]) expected = [ [22, 23, 24, 25], [32, 33, 34, 35], [42, 43, 44, 45] ] expected2 = [ # 0 1 2 3 4 5 6 [1, 2, 3, 4, 5, 6, 7], # 0 [21, '', '', '', '', 26, 27], [31, '', '', '', '', 36, 37], [41, '', '', '', '', 46, 47], [51, 52, 53, 54, 55, 56, 57] # 4 ] assert data == expected assert s.to_array() == expected2
def test_series(self): s = Sheet(self.data, "test") s.name_columns_by_row(2) assert s.colnames == ["Column 1", "Column 2", "Column 3"] custom_columns = ["C1", "C2", "C3"] s.colnames = custom_columns assert s.colnames == custom_columns
def test_formatter_by_named_columns(self): """Test multiple named columns""" s = Sheet(self.data, "test") s.name_columns_by_row(0) s.column.format(["Column 1", "Column 3"], str) assert s.column["Column 1"] == ["1", "4", "7"] assert s.column["Column 3"] == ["3", "6", "9"]
def test_add(self): s = Sheet(self.data, "test") s.name_columns_by_row(0) data = OrderedDict({ "Column 4": [10, 11, 12] }) s = s.column + data assert s.column["Column 4"] == [10, 11, 12]
def test_column_names2(self): data = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] sheet = Sheet(data) sheet.colnames = ["Column", "Column", "Column"] assert sheet.colnames == ["Column", "Column-1", "Column-2"]
def test_add(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) data = OrderedDict({ "Row 5": [10, 11, 12] } ) s = s.row + data assert s.row["Row 5"] == [10, 11, 12]
def test_row_names2(self): data = [ [-1, -2, -3], [1, 2, 3], [4, 5, 6], [7, 8, 9] ] sheet = Sheet(data) sheet.rownames = ["Row"] * 4 assert sheet.rownames == ["Row", "Row-1", "Row-2", "Row-3"]
def test_column_locator2(self): """ Remove odd columns """ sheet = Sheet(self.data) def locator(index, _): return index % 2 == 0 del sheet.row[locator] assert sheet.number_of_rows() == 2
def test_row_names(self): data = [ ["Row", -1, -2, -3], ["Row", 1, 2, 3], ["Row", 4, 5, 6], ["Row", 7, 8, 9] ] sheet = Sheet(data, name_rows_by_column=0) assert sheet.rownames == ["Row", "Row-1", "Row-2", "Row-3"]
def test_column_names(self): data = [ [1, 2, 3], [4, 5, 6], ["Column", "Column", "Column"], [7, 8, 9] ] sheet = Sheet(data, name_columns_by_row=2) assert sheet.colnames == ["Column", "Column-1", "Column-2"]
def test_formatter_by_named_column(self): """Test one named column""" s = Sheet(self.data, "test") s.name_columns_by_row(0) f = NamedColumnFormatter("Column 1", str) s.apply_formatter(f) assert s.column["Column 1"] == ["1", "4", "7"]
def test_column_locator(self): """ Remove odd columns """ sheet = Sheet(self.data) del sheet.column[lambda column_index, _: column_index % 2 == 0] expected = [ [2, 4, 6, 8], ['2', '4', '6', '8'], [2.2, 4.4, 6.6, 8.8], ['2.2', '4.4', '6.6', '8.8'], [3, 5, 7, 9], ['3', '5', '7', '9']] eq_(sheet.array, expected)
def test_cut_and_paste_region_within_limits_at_edge(self): data = [ # 0 1 2 3 4 5 6 [1, 2, 3, 4, 5, 6, 7], # 0 [21, 22, 23, 24, 25, 26, 27], [31, 32, 33, 34, 35, 36, 37], [41, 42, 43, 44, 45, 46, 47], [51, 52, 53, 54, 55, 56, 57] # 4 ] s = Sheet(data) data = s.cut([1, 1], [4, 5]) s.paste([0, 0], rows=data) expected = [[22, 23, 24, 25, 5, 6, 7], [32, 33, 34, 35, '', 26, 27], [42, 43, 44, 45, '', 36, 37], [41, '', '', '', '', 46, 47], [51, 52, 53, 54, 55, 56, 57]] assert expected == s.to_array()
def test_rownames3(self): custom_rows = ["R0", "R1", "R2", "R3"] Sheet(self.data, "test", name_rows_by_column=0, rownames=custom_rows)
def test_non_filter(self): data = [] s = Sheet(data) s.filter("abc") # bang
def test_set_indexed_column(self): s = Sheet(self.data, "test", name_rows_by_column=0) s.column[0] = [12, 3, 4, 5] assert s.column[0] == [12, 3, 4, 5]
def test_set_named_row(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) s.row["Row 2"] = [11, 11, 11] assert s.row["Row 2"] == [11, 11, 11]
def test_delete_indexed_row2(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) s.delete_named_row_at(2) assert s.number_of_rows() == 3 s.row["Row 2"] # already deleted
def test_apply_sheet_formatter(self): s = Sheet(self.data) s.apply_formatter(SheetFormatter(float)) assert s.row[0] == s.row[1] assert s.column[0] == [1, 1, 1.1, 1.1, 2, 2]
def test_delete_named_row(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) del s.row["Row 2"] assert s.number_of_rows() == 3 s.row["Row 2"] # already deleted
def test_add_wrong_type(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) s = s.row + "string type" # bang
def test_apply_column_formatter(self): s = Sheet(self.data) s.apply_formatter(ColumnFormatter(0, float)) assert s.column[0] == [1, 1, 1.1, 1.1, 2, 2]
def test_extend_rows_using_wrong_data_type(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) s.extend_rows([1, 2])
def test_row_series_to_dict(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) content = s.to_dict(True) keys = ["Row 0", "Row 1", "Row 2", "Row 3"] assert keys == list(content.keys())
def test_add_wrong_type(self): """Add string type""" s = Sheet(self.data, "test") s.name_columns_by_row(0) s = s.column + "string type" # bang
def test_rownames2(self): custom_rows = ["R0", "R1", "R2", "R3"] s = Sheet(self.data, "test", rownames=custom_rows) assert s.rownames == custom_rows
def test_rownames(self): s = Sheet(self.data, "test", name_rows_by_column=0) assert s.rownames == ["Row 0", "Row 1", "Row 2", "Row 3"] custom_rows = ["R0", "R1", "R2", "R3"] s.rownames = custom_rows assert s.rownames == custom_rows
def test_delete_named_column(self): s = Sheet(self.data, "test") s.name_columns_by_row(0) del s.column["Column 2"] assert s.number_of_columns() == 2 s.column["Column 2"] # bang
def test_formatter_by_named_row_2(self): s = Sheet(self.data, "test") s.name_rows_by_column(0) s.row.format("Row 1", str) assert s.row["Row 1"] == ["1", "2", "3"]