" Test for wordcount() function

func Test_wordcount()
  let save_enc = &enc
  set encoding=utf-8
  set selection=inclusive fileformat=unix fileformats=unix

  new

  " Test 1: empty window
  call assert_equal({'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0,
				\ 'bytes': 0, 'cursor_bytes': 0}, wordcount())

  " Test 2: some words, cursor at start
  call append(1, 'one two three')
  call cursor([1, 1, 0])
  call assert_equal({'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0,
				\ 'bytes': 15, 'cursor_bytes': 1}, wordcount())

  " Test 3: some words, cursor at end
  %d _
  call append(1, 'one two three')
  call cursor([2, 99, 0])
  call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3,
				\ 'bytes': 15, 'cursor_bytes': 14}, wordcount())

  " Test 4: some words, cursor at end, ve=all
  set ve=all
  %d _
  call append(1, 'one two three')
  call cursor([2, 99, 0])
  call assert_equal({'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3,
				\ 'bytes': 15, 'cursor_bytes': 15}, wordcount())
  set ve=

  " Test 5: several lines with words
  %d _
  call append(1, ['one two three', 'one two three', 'one two three'])
  call cursor([4, 99, 0])
  call assert_equal({'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9,
				\ 'bytes': 43, 'cursor_bytes': 42}, wordcount())

  " Test 6: one line with BOM set
  %d _
  call append(1, 'one two three')
  set bomb
  w! Xtest
  call cursor([2, 99, 0])
  call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3,
				\ 'bytes': 18, 'cursor_bytes': 14}, wordcount())
  set nobomb
  w!
  call delete('Xtest')

  " Test 7: one line with multibyte words
  %d _
  call append(1, ['Äne M¤ne Müh'])
  call cursor([2, 99, 0])
  call assert_equal({'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3,
				\ 'bytes': 17, 'cursor_bytes': 16}, wordcount())

  " Test 8: several lines with multibyte words
  %d _
  call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
  call cursor([3, 99, 0])
  call assert_equal({'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7,
				\ 'bytes': 36, 'cursor_bytes': 35}, wordcount())

  " Visual map to capture wordcount() in visual mode
  vnoremap <expr> <F2> execute("let g:visual_stat = wordcount()")

  " Test 9: visual mode, complete buffer
  let g:visual_stat = {}
  %d _
  call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
  " start visual mode and select the complete buffer
  0
  exe "normal V2j\<F2>y"
  call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32,
				\ 'visual_words': 7, 'visual_bytes': 36}, g:visual_stat)

  " Test 10: visual mode (empty)
  %d _
  call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
  " start visual mode and select the complete buffer
  0
  exe "normal v$\<F2>y"
  call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1,
				\ 'visual_words': 0, 'visual_bytes': 1}, g:visual_stat)

  " Test 11: visual mode, single line
  %d _
  call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
  " start visual mode and select the complete buffer
  2
  exe "normal 0v$\<F2>y"
  call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13,
				\ 'visual_words': 3, 'visual_bytes': 16}, g:visual_stat)

  set selection& fileformat& fileformats&
  let &enc = save_enc
  enew!
  close
endfunc

" vim: shiftwidth=2 sts=2 expandtab
