diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-02-20 22:19:05 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-02-20 22:19:05 +0100 |
commit | a25e3d06956f1bc11c68fe60149acce2d8547092 (patch) | |
tree | ea60ee4e461dec0d9ba55ac4c2018c1fef74a66d /src/testdir/test_sort.vim | |
parent | 38f08e76acf7d21bb34cf8f79f0f82eb63cdc987 (diff) | |
download | vim-git-8.1.0959.tar.gz |
patch 8.1.0959: sorting large numbers is not testedv8.1.0959
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)
Diffstat (limited to 'src/testdir/test_sort.vim')
-rw-r--r-- | src/testdir/test_sort.vim | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/testdir/test_sort.vim b/src/testdir/test_sort.vim index 14d008a17..7da82b018 100644 --- 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)) |