Mercurial > vim
diff src/testdir/test_sort.vim @ 15906:f581167d59bf v8.1.0959
patch 8.1.0959: sorting large numbers is not tested
commit https://github.com/vim/vim/commit/a25e3d06956f1bc11c68fe60149acce2d8547092
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Feb 20 22:19:05 2019 +0100
patch 8.1.0959: sorting large numbers is not tested
Problem: Sorting large numbers is not tested and does not work properly.
Solution: Add test. Fix comparing lines with and without a number.
(Dominique Pelle, closes #4017)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 20 Feb 2019 22:30:07 +0100 |
parents | 3d0b6e2a3a01 |
children | b8fd7364befd |
line wrap: on
line diff
--- a/src/testdir/test_sort.vim +++ b/src/testdir/test_sort.vim @@ -1222,6 +1222,77 @@ func Test_sort_cmd() enew! endfunc +func Test_sort_large_num() + new + a +-2147483648 +-2147483647 + +-1 +0 +1 +-2147483646 +2147483646 +2147483647 +2147483647 +-2147483648 +abc + +. + " Numerical sort. Non-numeric lines are ordered before numerical lines. + " Ordering of non-numerical is stable. + sort n + call assert_equal(['', + \ 'abc', + \ '', + \ '-2147483648', + \ '-2147483648', + \ '-2147483647', + \ '-2147483646', + \ '-1', + \ '0', + \ '1', + \ '2147483646', + \ '2147483647', + \ '2147483647'], getline(1, '$')) + bwipe! + + if has('num64') + new + a +-9223372036854775808 +-9223372036854775807 + +-1 +0 +1 +-9223372036854775806 +9223372036854775806 +9223372036854775807 +9223372036854775807 +-9223372036854775808 +abc + +. + sort n + call assert_equal(['', + \ 'abc', + \ '', + \ '-9223372036854775808', + \ '-9223372036854775808', + \ '-9223372036854775807', + \ '-9223372036854775806', + \ '-1', + \ '0', + \ '1', + \ '9223372036854775806', + \ '9223372036854775807', + \ '9223372036854775807'], getline(1, '$')) + bwipe! + endif +endfunc + + func Test_sort_cmd_report() enew! call append(0, repeat([1], 3) + repeat([2], 3) + repeat([3], 3))