Skip to content

Instantly share code, notes, and snippets.

@rbtnn
Last active August 29, 2015 14:07
Show Gist options
  • Save rbtnn/c29c920f05fd7be7e6d5 to your computer and use it in GitHub Desktop.
Save rbtnn/c29c920f05fd7be7e6d5 to your computer and use it in GitHub Desktop.
scriptencoding utf-8
let s:suite = themis#suite('Test for string.vim')
let s:assert = themis#helper('assert')
function! s:suite.string_split_0()
let float = -1
let width = 0
call s:assert.equals(string#split('あaいbうcえdおe', width, float, 1), [''])
call s:assert.equals(string#split('あaいbうcえdおe', width, float, 0), [''])
call s:assert.equals(string#split("あaいb\nうc\nえdおe", width, float, 0), [''])
call s:assert.equals(string#split("あaいb\nうc\nえdおe", width, float, 1), [''])
endfunction
function! s:suite.string_split_1()
let float = -1
let width = 1
call s:assert.equals(string#split('あaいbうcえdおe', width, float, 1), [' '])
call s:assert.equals(string#split('あaいbうcえdおe', width, float, 0), [' '])
call s:assert.equals(string#split('aあbいcうdえeお', width, float, 1), ['a', ' '])
call s:assert.equals(string#split('aあbいcうdえeお', width, float, 0), ['a'])
call s:assert.equals(string#split("あaいb\nうc\nえdおe", width, float, 0), [' ', ' ', ' ', ' ', ' '])
call s:assert.equals(string#split("あaいb\nうc\nえdおe", width, float, 1), [' ', ' ', ' ', ' ', ' '])
endfunction
function! s:suite.string_split_2()
let float = -1
let width = 2
call s:assert.equals(string#split('12', width, float, 1), ['12'])
call s:assert.equals(string#split('12', width, float, 0), ['12'])
call s:assert.equals(string#split('あ12', width, float, 1), ['あ', '12'])
call s:assert.equals(string#split('あ12', width, float, 0), ['あ'])
call s:assert.equals(string#split('あ1', width, float, 1), ['あ', '1 '])
call s:assert.equals(string#split('あ1', width, float, 0), ['あ'])
endfunction
function! s:suite.string_split_4()
let float = -1
let width = 4
call s:assert.equals(string#split("あaいb\nうc\nえdおe", width, float, 0), ['あa ', ' ', 'うc ', 'えd '])
call s:assert.equals(string#split("あaいb\nうc\nえdおe", width, float, 1), ['あa ', 'いb ', 'うc ', 'えd ', 'おe '])
endfunction
function! s:suite.string_split_5()
let float = -1
let width = 5
call s:assert.equals(string#split('1234567890abcde', width, float, 1), ['12345', '67890', 'abcde'])
call s:assert.equals(string#split('1234567890abcde', width, float, 0), ['12345'])
call s:assert.equals(string#split('あaいbうcえdおe', width, float, 1), ['あaい', 'bうc ', 'えdお', 'e '])
call s:assert.equals(string#split('あaいbうcえdおe', width, float, 0), ['あaい'])
call s:assert.equals(string#split('1234567890', width, float, 1), ['12345', '67890'])
call s:assert.equals(string#split('1234567890', width, float, 0), ['12345'])
call s:assert.equals(string#split('あいうえお', width, float, 1), ['あい ', 'うえ ', 'お '])
call s:assert.equals(string#split('あいうえお', width, float, 0), ['あい '])
call s:assert.equals(string#split('12345678', width, float, 1), ['12345', '678 '])
call s:assert.equals(string#split('12345678', width, float, 0), ['12345'])
let float = 1
call s:assert.equals(string#split('あいうえお', width, float, 1), [' あい', ' うえ', ' お'])
endfunction
function! s:suite.string_split_6()
let float = -1
let width = 6
call s:assert.equals(string#split('1234567890abcde', width, float, 1), ['123456', '7890ab', 'cde '])
call s:assert.equals(string#split('1234567890abcde', width, float, 0), ['123456'])
call s:assert.equals(string#split('1234567890', width, float, 1), ['123456', '7890 '])
call s:assert.equals(string#split('1234567890', width, float, 0), ['123456'])
call s:assert.equals(string#split('あいうえお', width, float, 1), ['あいう', 'えお '])
call s:assert.equals(string#split('あいうえお', width, float, 0), ['あいう'])
call s:assert.equals(string#split('12345678', width, float, 1), ['123456', '78 '])
call s:assert.equals(string#split('12345678', width, float, 0), ['123456'])
call s:assert.equals(string#split('12', width, float, 1), ['12 '])
call s:assert.equals(string#split('12', width, float, 0), ['12 '])
endfunction
function! s:suite.string_padding_0()
let width = 6
call s:assert.equals(string#padding('abc', width, -1), 'abc ')
call s:assert.equals(string#padding('abc', width, 1), ' abc')
call s:assert.equals(string#padding('abc', width, 0), ' abc ')
let width = 5
call s:assert.equals(string#padding('abc', width, -1), 'abc ')
call s:assert.equals(string#padding('abc', width, 0), ' abc ')
call s:assert.equals(string#padding('abc', width, 1), ' abc')
let width = 0
call s:assert.equals(string#padding('abc', width, -1), '')
call s:assert.equals(string#padding('abc', width, 0), '')
call s:assert.equals(string#padding('abc', width, 1), '')
let width = -3
call s:assert.equals(string#padding('abc', width, -1), '')
call s:assert.equals(string#padding('abc', width, 0), '')
call s:assert.equals(string#padding('abc', width, 1), '')
endfunction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment