diff src/testdir/test_functions.vim @ 32367:d5e673b941cd v9.0.1515

patch 9.0.1515: reverse() does not work for a String Commit: https://github.com/vim/vim/commit/03ff1c2dde7f15eca5c9baa6dafbda9b49bedc3b Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Sat May 6 14:08:21 2023 +0100 patch 9.0.1515: reverse() does not work for a String Problem: reverse() does not work for a String. Solution: Implement reverse() for a String. (Yegappan Lakshmanan, closes #12179)
author Bram Moolenaar <Bram@vim.org>
date Sat, 06 May 2023 15:15:04 +0200
parents 8d6f53a07ffd
children 8b7ba5c63996
line wrap: on
line diff
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -3469,4 +3469,21 @@ func Test_delfunc_while_listing()
   call StopVimInTerminal(buf)
 endfunc
 
+" Test for the reverse() function with a string
+func Test_string_reverse()
+  call assert_equal('', reverse(test_null_string()))
+  for [s1, s2] in [['', ''], ['a', 'a'], ['ab', 'ba'], ['abc', 'cba'],
+        \ ['abcd', 'dcba'], ['«-«-»-»', '»-»-«-«'],
+        \ ['🇦', '🇦'], ['🇦🇧', '🇧🇦'], ['🇦🇧🇨', '🇨🇧🇦'],
+        \ ['🇦«🇧-🇨»🇩', '🇩»🇨-🇧«🇦']]
+    call assert_equal(s2, reverse(s1))
+  endfor
+
+  " test in latin1 encoding
+  let save_enc = &encoding
+  set encoding=latin1
+  call assert_equal('dcba', reverse('abcd'))
+  let &encoding = save_enc
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab