Add __lt__ to Table to allow sorting

Refs #277
This commit is contained in:
Sym Roe
2019-02-25 09:20:09 +00:00
parent 8ea4ec3de8
commit c019e582bf
2 changed files with 33 additions and 0 deletions
+26
View File
@@ -5,6 +5,7 @@ import os
import pandas as pd
import camelot
from camelot.core import Table, TableList
from .data import *
@@ -247,3 +248,28 @@ def test_arabic():
filename = os.path.join(testdir, "tabula/arabic.pdf")
tables = camelot.read_pdf(filename)
assert df.equals(tables[0].df)
def test_table_order():
def _mk_table(page, order):
t = Table([], [])
t.page = page
t.order = order
return t
table_list = TableList(
[_mk_table(2, 1), _mk_table(1, 1), _mk_table(3, 4), _mk_table(1, 2)]
)
assert [(t.page, t.order) for t in sorted(table_list)] == [
(1, 1),
(1, 2),
(2, 1),
(3, 4),
]
assert [(t.page, t.order) for t in sorted(table_list, reverse=True)] == [
(3, 4),
(2, 1),
(1, 2),
(1, 1),
]