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))