mirror of
https://github.com/dhruvasagar/vim-table-mode.git
synced 2025-11-08 11:03:47 -05:00
127 lines
3.6 KiB
VimL
127 lines
3.6 KiB
VimL
" vim: fdm=indent
|
|
source t/config/options.vim
|
|
|
|
describe 'spreadsheet'
|
|
describe 'API'
|
|
before
|
|
new
|
|
read t/fixtures/sample.txt
|
|
end
|
|
|
|
it 'should return the row count'
|
|
Expect tablemode#spreadsheet#RowCount(2) == 2
|
|
Expect tablemode#spreadsheet#RowCount(3) == 2
|
|
end
|
|
|
|
it 'should return the row number'
|
|
Expect tablemode#spreadsheet#RowNr(2) == 1
|
|
Expect tablemode#spreadsheet#RowNr(3) == 2
|
|
end
|
|
|
|
it 'should return the column count'
|
|
Expect tablemode#spreadsheet#ColumnCount(2) == 2
|
|
Expect tablemode#spreadsheet#ColumnCount(3) == 2
|
|
end
|
|
|
|
it 'should return the column number'
|
|
call cursor(2,3)
|
|
Expect tablemode#spreadsheet#ColumnNr('.') == 1
|
|
call cursor(2,12)
|
|
Expect tablemode#spreadsheet#ColumnNr('.') == 2
|
|
end
|
|
|
|
it 'should return true when in the first cell'
|
|
call cursor(2,3)
|
|
Expect tablemode#spreadsheet#IsFirstCell() to_be_true
|
|
call cursor(2,12)
|
|
Expect tablemode#spreadsheet#IsFirstCell() to_be_false
|
|
end
|
|
|
|
it 'should return true when in the last cell'
|
|
call cursor(2,3)
|
|
Expect tablemode#spreadsheet#IsLastCell() to_be_false
|
|
call cursor(2,12)
|
|
Expect tablemode#spreadsheet#IsLastCell() to_be_true
|
|
end
|
|
|
|
it 'should return the line number of the first row'
|
|
Expect tablemode#spreadsheet#GetFirstRow(2) == 2
|
|
Expect tablemode#spreadsheet#GetFirstRow(3) == 2
|
|
end
|
|
|
|
it 'should return the line nuber of the last row'
|
|
Expect tablemode#spreadsheet#GetLastRow(2) == 3
|
|
Expect tablemode#spreadsheet#GetLastRow(3) == 3
|
|
end
|
|
|
|
describe 'Math'
|
|
before
|
|
new
|
|
read t/fixtures/cell/sample.txt
|
|
end
|
|
|
|
it 'should return the sum of cell range'
|
|
call cursor(1,3)
|
|
Expect tablemode#spreadsheet#Sum('1:2') == 4.0
|
|
Expect tablemode#spreadsheet#Sum('1,1:1,2') == 3.0
|
|
Expect tablemode#spreadsheet#Sum('1,1:2,2') == 10.0
|
|
call cursor(2,7)
|
|
Expect tablemode#spreadsheet#Sum('1:2') == 6.0
|
|
Expect tablemode#spreadsheet#Sum('2,1:2,2') == 7.0
|
|
end
|
|
|
|
it 'should return the average of cell range'
|
|
call cursor(1,3)
|
|
Expect tablemode#spreadsheet#Average('1:2') == 2.0
|
|
Expect tablemode#spreadsheet#Average('1,1:1,2') == 1.5
|
|
Expect tablemode#spreadsheet#Average('1,1:2,2') == 5.0
|
|
call cursor(2,7)
|
|
Expect tablemode#spreadsheet#Average('1:2') == 3.0
|
|
Expect tablemode#spreadsheet#Average('2,1:2,2') == 3.5
|
|
end
|
|
end
|
|
end
|
|
|
|
describe 'Manipulations'
|
|
before
|
|
new
|
|
normal! ggdG
|
|
read t/fixtures/sample.txt
|
|
call cursor(2, 3)
|
|
end
|
|
|
|
it 'should delete a row successfully'
|
|
Expect tablemode#spreadsheet#RowCount('.') == 2
|
|
call tablemode#spreadsheet#DeleteRow()
|
|
Expect tablemode#spreadsheet#RowCount('.') == 1
|
|
end
|
|
|
|
it 'should successfully delete column'
|
|
Expect tablemode#spreadsheet#ColumnCount('.') == 2
|
|
call tablemode#spreadsheet#DeleteColumn()
|
|
Expect tablemode#spreadsheet#ColumnCount('.') == 1
|
|
end
|
|
end
|
|
|
|
describe 'Repeated Manipulations'
|
|
before
|
|
new
|
|
normal! ggdG
|
|
read t/fixtures/big_sample.txt
|
|
call cursor(2, 3)
|
|
end
|
|
|
|
it 'should delete multiple rows correctly'
|
|
Expect tablemode#spreadsheet#RowCount('.') == 5
|
|
.,.+1 call tablemode#spreadsheet#DeleteRow()
|
|
Expect tablemode#spreadsheet#RowCount('.') == 3
|
|
end
|
|
|
|
it 'should delete multiple columns correctly'
|
|
Expect tablemode#spreadsheet#ColumnCount('.') == 4
|
|
.,.+1 call tablemode#spreadsheet#DeleteColumn()
|
|
Expect tablemode#spreadsheet#ColumnCount('.') == 2
|
|
end
|
|
end
|
|
end
|