@@ -96,6 +96,30 @@ func Test_min()
9696 call assert_fails (' call min(v:none)' , ' E712:' )
9797endfunc
9898
99+ func Test_strwidth ()
100+ for aw in [' single' , ' double' ]
101+ exe ' set ambiwidth=' . aw
102+ call assert_equal (0 , strwidth (' ' ))
103+ call assert_equal (1 , strwidth (" \t " ))
104+ call assert_equal (3 , strwidth (' Vim' ))
105+ call assert_equal (4 , strwidth (1234 ))
106+ call assert_equal (5 , strwidth (-1234 ))
107+
108+ if has (' multi_byte' )
109+ call assert_equal (2 , strwidth (' 😉' ))
110+ call assert_equal (17 , strwidth (' Eĥoŝanĝo ĉiuĵaŭde' ))
111+ call assert_equal ((aw == ' single' ) ? 6 : 7 , strwidth (' Straße' ))
112+ endif
113+
114+ call assert_fails (' call strwidth({->0})' , ' E729:' )
115+ call assert_fails (' call strwidth([])' , ' E730:' )
116+ call assert_fails (' call strwidth({})' , ' E731:' )
117+ call assert_fails (' call strwidth(1.2)' , ' E806:' )
118+ endfor
119+
120+ set ambiwidth &
121+ endfunc
122+
99123func Test_str2nr ()
100124 call assert_equal (0 , str2nr (' ' ))
101125 call assert_equal (1 , str2nr (' 1' ))
0 commit comments