def test_ws_rows(self): ws = xl.Worksheet() ws.update_address('A1', 11) ws.update_address('A2', 21) ws.update_address('B1', 12) correct_list = [[11, 12], [21, '']] for i, row in enumerate(ws.rows): self.assertEqual(correct_list[i], row)
def test_ws_cols(self): ws = xl.Worksheet() ws.update_address('A1', 11) ws.update_address('A2', 21) ws.update_address('B1', 12) correct_list = [[11, 21], [12, '']] for i, col in enumerate(ws.cols): self.assertEqual(correct_list[i], col)
def test_ws_address(self): ws = xl.Worksheet() ws.update_address('A1', 11) self.assertEqual(11, ws.address(address='A1')) self.assertEqual(11, ws.address('$A$1')) self.assertEqual(11, ws.address('$A1')) self.assertEqual(11, ws.address('A$1')) self.assertEqual('', ws.address('A2'))
def test_ws_calc_size(self): ws = xl.Worksheet() self.assertEqual(0, ws.maxrow) self.assertEqual(0, ws.maxcol) ws.update_address('A1', 11) self.assertEqual(1, ws.maxrow) self.assertEqual(1, ws.maxcol) ws.update_address('A2', 21) self.assertEqual(2, ws.maxrow) self.assertEqual(1, ws.maxcol) ws.update_address('B1', 12) self.assertEqual(2, ws.maxrow) self.assertEqual(2, ws.maxcol) ws.update_address('B2', 22) self.assertEqual(2, ws.maxrow) self.assertEqual(2, ws.maxcol) ws = xl.Worksheet() ws.update_address('AA1', 27) ws.update_address('AAA1', 703) self.assertEqual(1, ws.maxrow) self.assertEqual(703, ws.maxcol) ws = xl.Worksheet() ws.update_address('A1', 1) ws.update_address('A1000', 1000) ws.update_address('A1048576', 1048576) self.assertEqual(1048576, ws.maxrow) self.assertEqual(1, ws.maxcol) ws = xl.Worksheet() ws.update_address('A1', 1) ws.update_address('AA1', 27) ws.update_address('AAA1', 703) ws.update_address('XFD1', 16384) ws.update_address('A1048576', 1048576) self.assertEqual(1048576, ws.maxrow) self.assertEqual(16384, ws.maxcol)
def test_ws_col(self): ws = xl.Worksheet({'A1': {'v': 11}, 'A2': {'v': 21}, 'B1': {'v': 12}}) self.assertEqual(ws.col(col=1), [11, 21]) self.assertEqual(ws.col(2), [12, '']) self.assertEqual(ws.col(3), ['', '']) db = xl.Database() db.add_ws('sh1') db.ws('sh1').update_index(1, 1, '=A1') db.ws('sh1').update_index(2, 1, '=A2') db.ws('sh1').update_index(2, 2, '=B2') self.assertEqual(['=A1', '=A2'], db.ws('sh1').col(1, formula=True)) self.assertEqual(['', '=B2'], db.ws('sh1').col(2, formula=True))
def test_ws_keycol(self): ws = xl.Worksheet({'A1': {'v': 11}, 'B1': {'v': 11}, 'C1': {'v': 13}, 'A2': {'v': 21}, 'B2': {'v': 22}, 'C2': {'v': 23}, 'A3': {'v': 11}, 'B3': {'v': 32}, 'C3': {'v': 33}}) self.assertEqual(ws.keycol(key=11), [11, 21, 11]) self.assertEqual(ws.keycol(key=11, keyindex=1), [11, 21, 11]) self.assertEqual(ws.keycol(key=11, keyindex=2), []) self.assertEqual(ws.keycol(key=32, keyindex=3), [11, 22, 32]) self.assertEqual(ws.keyrow(key=11), [11, 11, 13]) self.assertEqual(ws.keyrow(key=11, keyindex=1), [11, 11, 13]) self.assertEqual(ws.keyrow(key=11, keyindex=2), [11, 11, 13]) self.assertEqual(ws.keyrow(key=22, keyindex=2), [21, 22, 23]) self.assertEqual(ws.keyrow(key=22, keyindex=3), [])
def test_update_index(self): ws = xl.Worksheet() ws.update_index(row=4, col=2, val=42) self.assertEqual([4, 2], ws.size) self.assertEqual(42, ws.index(4, 2)) self.assertEqual(42, ws.address('B4')) self.assertEqual(42, ws.row(4)[1]) self.assertEqual(42, ws.col(2)[3]) # update with empty data ws.update_index(1, 1, '') self.assertEqual('', ws.index(1, 1)) # update with formula ws.update_index(1, 1, '=A2') self.assertEqual('=A2', ws.index(1, 1, output='f'))
def test_update_address(self): ws = xl.Worksheet({}) ws.update_address(address='B4', val=42) self.assertEqual([4, 2], ws.size) self.assertEqual(42, ws.index(4, 2)) self.assertEqual(42, ws.address('B4')) self.assertEqual(42, ws.row(4)[1]) self.assertEqual(42, ws.col(2)[3]) # update with empty data ws.update_address('A1', '') self.assertEqual('', ws.address('A1')) # update with formula ws.update_address('A1', '=A2') self.assertEqual('=A2', ws.address('A1', formula=True))
def test_ws_col(self): ws = xl.Worksheet() ws.update_address('A1', 11) ws.update_address('A2', 21) ws.update_address('B1', 12) self.assertEqual([11, 21], ws.col(col=1)) self.assertEqual([12, ''], ws.col(2)) self.assertEqual(['', ''], ws.col(3)) db = xl.Database() db.add_ws('sh1') db.ws('sh1').update_index(1, 1, '=A1') db.ws('sh1').update_index(2, 1, '=A2') db.ws('sh1').update_index(2, 2, '=B2') self.assertEqual(['=A1', '=A2'], db.ws('sh1').col(1, output='f')) self.assertEqual(['', '=B2'], db.ws('sh1').col(2, output='f'))
def test_ws_row(self): ws = xl.Worksheet() ws.update_address('A1', 11) ws.update_address('A2', 21) ws.update_address('B1', 12) self.assertEqual([11, 12], ws.row(row=1)) self.assertEqual([21, ''], ws.row(2)) self.assertEqual(['', ''], ws.row(3)) db = xl.Database() db.add_ws('sh1') db.ws('sh1').update_index(1, 1, '=A1') db.ws('sh1').update_index(2, 1, '=A2') db.ws('sh1').update_index(2, 2, '=B2') self.assertEqual(['=A1', ''], db.ws('sh1').row(1, formula=True)) self.assertEqual(['=A2', '=B2'], db.ws('sh1').row(2, formula=True))
def test_ws_calc_size(self): ws = xl.Worksheet({}) # force calc size ws._calc_size() self.assertEqual(ws.maxrow, 0) self.assertEqual(ws.maxcol, 0) ws._data = {'A1': {'v': 11}} ws._calc_size() self.assertEqual(ws.maxrow, 1) self.assertEqual(ws.maxcol, 1) ws._data = {'A1': {'v': 11}, 'A2': {'v': 21}} ws._calc_size() self.assertEqual(ws.maxrow, 2) self.assertEqual(ws.maxcol, 1) ws._data = {'A1': {'v': 11}, 'A2': {'v': 21}, 'B1': {'v': 12}} ws._calc_size() self.assertEqual(ws.maxrow, 2) self.assertEqual(ws.maxcol, 2) ws._data = {'A1': {'v': 11}, 'A2': {'v': 21}, 'B1': {'v': 12}, 'B2': {'v': 22}} ws._calc_size() self.assertEqual(ws.maxrow, 2) self.assertEqual(ws.maxcol, 2) ws._data = {'A1': {'v': 1}, 'AA1': {'v': 27}, 'AAA1': {'v': 703}} ws._calc_size() self.assertEqual(ws.maxrow, 1) self.assertEqual(ws.maxcol, 703) ws._data = {'A1': {'v': 1}, 'A1000': {'v': 1000}, 'A1048576': {'v': 1048576}} ws._calc_size() self.assertEqual(ws.maxrow, 1048576) self.assertEqual(ws.maxcol, 1) ws._data = {'A1': {'v': 1}, 'AA1': {'v': 27}, 'AAA1': {'v': 703}, 'XFD1': {'v': 16384}, 'A1048576': {'v': 1048576}} ws._calc_size() self.assertEqual(ws.maxrow, 1048576) self.assertEqual(ws.maxcol, 16384)
def test_ws_keycol(self): ws = xl.Worksheet() ws.update_address('A1', 11) ws.update_address('A2', 21) ws.update_address('A3', 11) ws.update_address('B1', 11) ws.update_address('B2', 22) ws.update_address('B3', 32) ws.update_address('C1', 13) ws.update_address('C2', 23) ws.update_address('C3', 33) self.assertEqual([11, 21, 11], ws.keycol(key=11)) self.assertEqual([11, 21, 11], ws.keycol(key=11, keyindex=1)) self.assertEqual([], ws.keycol(key=11, keyindex=2)) self.assertEqual([11, 22, 32], ws.keycol(key=32, keyindex=3)) self.assertEqual([11, 11, 13], ws.keyrow(key=11)) self.assertEqual([11, 11, 13], ws.keyrow(key=11, keyindex=1)) self.assertEqual([11, 11, 13], ws.keyrow(key=11, keyindex=2)) self.assertEqual([21, 22, 23], ws.keyrow(key=22, keyindex=2)) self.assertEqual([], ws.keyrow(key=22, keyindex=3))
def test_ws_init(self): ws = xl.Worksheet(data={}) self.assertEqual(ws._data, {}) self.assertEqual(ws.maxrow, 0) self.assertEqual(ws.maxcol, 0)
def test_ws_size(self): ws = xl.Worksheet() self.assertEqual([0, 0], ws.size) ws.update_address('A1', 11) ws.update_address('A2', 21) self.assertEqual([2, 1], ws.size)
def test_ws_cols(self): ws = xl.Worksheet({'A1': {'v': 11}, 'A2': {'v': 21}, 'B1': {'v': 12}}) correct_list = [[11, 21], [12, '']] for i, col in enumerate(ws.cols): self.assertEqual(col, correct_list[i])
def test_ws_rows(self): ws = xl.Worksheet({'A1': {'v': 11}, 'A2': {'v': 21}, 'B1': {'v': 12}}) correct_list = [[11, 12], [21, '']] for i, row in enumerate(ws.rows): self.assertEqual(row, correct_list[i])
def test_ws_index(self): ws = xl.Worksheet() ws.update_address('A1', 11) self.assertEqual(11, ws.index(row=1, col=1)) self.assertEqual('', ws.index(1, 2))
def test_ws_index(self): ws = xl.Worksheet({'A1': {'v': 1}}) self.assertEqual(ws.index(row=1, col=1), 1) self.assertEqual(ws.index(1, 2), '')
def test_ws_address(self): ws = xl.Worksheet({'A1': {'v': 1}}) self.assertEqual(ws.address(address='A1'), 1) self.assertEqual(ws.address('A2'), '') self.assertEqual(1, ws.address('$A$1'))
def test_ws_size(self): ws = xl.Worksheet({}) self.assertEqual(ws.size, [0, 0]) ws._data = {'A1': {'v': 11}, 'A2': {'v': 21}} ws._calc_size() self.assertEqual(ws.size, [2, 1])
def test_ws_repr(self): ws = xl.Worksheet({}) self.assertEqual(str(ws), 'pylightxl.Database.Worksheet')
def test_ws_init(self): ws = xl.Worksheet() self.assertEqual({}, ws._data) self.assertEqual(0, ws.maxrow) self.assertEqual(0, ws.maxcol)