Last active
August 29, 2015 14:07
-
-
Save rbtnn/c29c920f05fd7be7e6d5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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