@@ -31,6 +31,9 @@ void main() {
3131 final table = result.value as OrgTable ;
3232 final row0 = table.rows[0 ] as OrgTableCellRow ;
3333 expect (row0.cells[0 ].content.children.isEmpty, isTrue);
34+ expect (table.rectangular, isTrue);
35+ expect (table.columnCount, 1 );
36+ expect (table.columnIsNumeric (0 ), isFalse);
3437 });
3538 test ('With non-markup plus in cell' , () {
3639 // https://github.com/amake/orgro/issues/175
@@ -42,6 +45,7 @@ void main() {
4245''' );
4346 final table = result.value as OrgTable ;
4447 expect (table.columnCount, 2 );
48+ expect (table.rectangular, isTrue);
4549 expect (table.rows[0 ], isA <OrgTableDividerRow >());
4650 final row1 = table.rows[1 ] as OrgTableCellRow ;
4751 final cell0 = row1.cells[0 ].content.children[0 ] as OrgPlainText ;
@@ -54,5 +58,25 @@ void main() {
5458 expect (cell0Row4.leadingDecoration, '+' );
5559 expect (cell0Row4.trailingDecoration, '+' );
5660 });
61+ test ('no columns' , () {
62+ final result = parser.parse ('+-+' );
63+ final table = result.value as OrgTable ;
64+ expect (table.rows[0 ], isA <OrgTableDividerRow >());
65+ expect (table.columnCount, 0 );
66+ expect (table.rectangular, isFalse);
67+ expect (() => table.columnIsNumeric (0 ), throwsRangeError);
68+ });
69+ test ('uneven rows' , () {
70+ final result = parser.parse ('''| a | b | c |
71+ |---+---+---|
72+ | 1 | 2 |
73+ | 3 | 4 | 5 |
74+ ''' );
75+ final table = result.value as OrgTable ;
76+ expect (table.columnCount, 3 );
77+ expect (table.rectangular, isFalse);
78+ expect (table.columnIsNumeric (2 ), isTrue);
79+ expect (table.rows.length, 4 );
80+ });
5781 });
5882}
0 commit comments