def test_cell_range(): ipysheet.sheet(rows=3, columns=4) # [row][column] ipysheet.cell_range([[0, 1]]) # 1 row, 2 columns ipysheet.cell_range([[0], [2]]) # 2 rows, 1 columns ipysheet.cell_range([[0, 1], [2, 3]]) # 2 rows, 2 columns ipysheet.cell_range([[0, 1], [2, 3], [4, 5]]) # 3 rows, 2 columns ipysheet.cell_range([[0, 1, 9], [2, 3, 9], [4, 5, 9]]) # 3 rows, 3 columns ipysheet.cell_range([[0, 1, 9]], column_end=2) # 3 rows, 3 columns ipysheet.cell_range([[0, 1, 9]], column_start=1) # 1 rows, 3 columns with pytest.raises(ValueError): ipysheet.cell_range([[0, 1], [2, 3], [4, 5], [6, 7]]) # 4 rows, 2 columns with pytest.raises(ValueError): ipysheet.cell_range([[0, 1, 2, 3, 4], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7]]) # 3 rows, 5 columns with pytest.raises(ValueError): ipysheet.cell_range([[0, 1, 2, 3, 4], [2], [3, 4, 5, 6, 7]]) # not well shaped with pytest.raises(ValueError): ipysheet.cell_range([]) # empty rows with pytest.raises(ValueError): ipysheet.cell_range([[], []]) # empty columns value = [[0, 1], [2, 3], [4, 5]] valueT = [[0, 2, 4], [1, 3, 5]] # it's transpose assert value == transpose(valueT) r = ipysheet.cell_range(value) # 3 rows, 2 columns with pytest.raises(ValueError): r.value = 1 with pytest.raises(ValueError): r.value = [1, 2, 3] with pytest.raises(ValueError): r.value = [[1, 2]] assert r.value == transpose(valueT) rT = ipysheet.cell_range(valueT, transpose=True) # 3 rows, 2 columns with pytest.raises(ValueError): rT.value = 1 with pytest.raises(ValueError): rT.value = [1, 2, 3] with pytest.raises(ValueError): rT.value = [[1, 2]] rT.value = transpose(value) assert rT.value == transpose(value) sheet = ipysheet.sheet(rows=3, columns=4) assert len(sheet.cells) == 0 with ipysheet.hold_cells(): ipysheet.cell_range(value) ipysheet.cell_range(value) assert len(sheet.cells) == 0 assert len(sheet.cells) == 2
def test_transpose(): assert transpose([[1, 2]]) == [[1], [2]] assert transpose([[1, 2], [3, 4]]) == [[1, 3], [2, 4]] assert transpose([[1], [2]]) == [[1, 2]]