From e573b3020c032400eed60b649a2cbf55266e6bb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= <cynerd@email.cz>
Date: Thu, 30 Jun 2016 16:03:25 +0200
Subject: Add current configurations from old repository

---
 vim/bundle/tlib_vim/spec/tlib/arg.vim        |  66 ++++++++++++++
 vim/bundle/tlib_vim/spec/tlib/date.vim       |  61 +++++++++++++
 vim/bundle/tlib_vim/spec/tlib/dictionary.vim |  28 ++++++
 vim/bundle/tlib_vim/spec/tlib/eval.vim       |  27 ++++++
 vim/bundle/tlib_vim/spec/tlib/file.vim       |  59 +++++++++++++
 vim/bundle/tlib_vim/spec/tlib/hash.vim       |  58 ++++++++++++
 vim/bundle/tlib_vim/spec/tlib/input.vim      | 127 +++++++++++++++++++++++++++
 vim/bundle/tlib_vim/spec/tlib/list.vim       |  67 ++++++++++++++
 vim/bundle/tlib_vim/spec/tlib/rx.vim         |  27 ++++++
 vim/bundle/tlib_vim/spec/tlib/string.vim     |  29 ++++++
 vim/bundle/tlib_vim/spec/tlib/url.vim        |  23 +++++
 vim/bundle/tlib_vim/spec/tlib/var.vim        |  37 ++++++++
 12 files changed, 609 insertions(+)
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/arg.vim
 create mode 100644 vim/bundle/tlib_vim/spec/tlib/date.vim
 create mode 100644 vim/bundle/tlib_vim/spec/tlib/dictionary.vim
 create mode 100644 vim/bundle/tlib_vim/spec/tlib/eval.vim
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/file.vim
 create mode 100644 vim/bundle/tlib_vim/spec/tlib/hash.vim
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/input.vim
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/list.vim
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/rx.vim
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/string.vim
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/url.vim
 create mode 100755 vim/bundle/tlib_vim/spec/tlib/var.vim

(limited to 'vim/bundle/tlib_vim/spec/tlib')

diff --git a/vim/bundle/tlib_vim/spec/tlib/arg.vim b/vim/bundle/tlib_vim/spec/tlib/arg.vim
new file mode 100755
index 0000000..cf060a2
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/arg.vim
@@ -0,0 +1,66 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2010-04-03.
+" @Last Change: 2010-04-03.
+" @Revision:    1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+
+SpecBegin 'title': 'tlib#arg'
+
+function! TestGetArg(...) "{{{3
+    exec tlib#arg#Get(1, 'foo', 1)
+    return foo
+endf
+
+function! TestGetArg1(...) "{{{3
+    exec tlib#arg#Get(1, 'foo', 1, '!= ""')
+    return foo
+endf
+
+Should be equal TestGetArg(), 1
+Should be equal TestGetArg(''), ''
+Should be equal TestGetArg(2), 2
+Should be equal TestGetArg1(), 1
+Should be equal TestGetArg1(''), 1
+Should be equal TestGetArg1(2), 2
+
+function! TestArgs(...) "{{{3
+    exec tlib#arg#Let([['foo', "o"], ['bar', 2]])
+    return repeat(foo, bar)
+endf
+Should be equal TestArgs(), 'oo'
+Should be equal TestArgs('a'), 'aa'
+Should be equal TestArgs('a', 3), 'aaa'
+
+function! TestArgs1(...) "{{{3
+    exec tlib#arg#Let(['foo', ['bar', 2]])
+    return repeat(foo, bar)
+endf
+Should be equal TestArgs1(), ''
+Should be equal TestArgs1('a'), 'aa'
+Should be equal TestArgs1('a', 3), 'aaa'
+
+function! TestArgs2(...) "{{{3
+    exec tlib#arg#Let(['foo', 'bar'], 1)
+    return repeat(foo, bar)
+endf
+Should be equal TestArgs2(), '1'
+Should be equal TestArgs2('a'), 'a'
+Should be equal TestArgs2('a', 3), 'aaa'
+
+function! TestArgs3(...)
+    TVarArg ['a', 1], 'b'
+    return a . b
+endf
+Should be equal TestArgs3(), '1'
+Should be equal TestArgs3('a'), 'a'
+Should be equal TestArgs3('a', 3), 'a3'
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/date.vim b/vim/bundle/tlib_vim/spec/tlib/date.vim
new file mode 100644
index 0000000..42c336b
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/date.vim
@@ -0,0 +1,61 @@
+" @Author:      Tom Link (micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @GIT:         http://github.com/tomtom/vimtlib/
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2010-09-17.
+" @Last Change: 2016-03-16.
+" @Revision:    21
+
+SpecBegin 'title': 'tlib#date'
+
+Should be equal tlib#date#Parse('2000-1-0', 1), [2000, 1, 0]
+Should be equal tlib#date#Parse('2000-1-2'), [2000, 1, 2]
+Should be equal tlib#date#Parse('2000-01-02'), [2000, 1, 2]
+Should be equal tlib#date#Parse('2000-10-20'), [2000, 10, 20]
+
+Should be equal tlib#date#Parse('00-1-0', 1), [2000, 1, 0]
+Should be equal tlib#date#Parse('00-1-2'), [2000, 1, 2]
+Should be equal tlib#date#Parse('00-01-02'), [2000, 1, 2]
+Should be equal tlib#date#Parse('00-10-20'), [2000, 10, 20]
+
+Should be equal tlib#date#Parse('2000/2/1'), [2000, 1, 2]
+Should be equal tlib#date#Parse('2000/02/01'), [2000, 1, 2]
+Should be equal tlib#date#Parse('2000/20/10'), [2000, 10, 20]
+
+Should be equal tlib#date#Parse('00/2/1'), [2000, 1, 2]
+Should be equal tlib#date#Parse('00/02/01'), [2000, 1, 2]
+Should be equal tlib#date#Parse('00/20/10'), [2000, 10, 20]
+
+Should be equal tlib#date#Parse('2.1.2000'), [2000, 1, 2]
+Should be equal tlib#date#Parse('2. 1. 2000'), [2000, 1, 2]
+Should be equal tlib#date#Parse('02.01.2000'), [2000, 1, 2]
+Should be equal tlib#date#Parse('02. 01. 2000'), [2000, 1, 2]
+Should be equal tlib#date#Parse('20.10.2000'), [2000, 10, 20]
+Should be equal tlib#date#Parse('20. 10. 2000'), [2000, 10, 20]
+
+Should throw exception "tlib#date#Parse('2000-14-2')", 'TLib: Invalid date'
+Should throw exception "tlib#date#Parse('2000-011-02')", 'TLib: Invalid date'
+Should throw exception "tlib#date#Parse('2000-10-40')", 'TLib: Invalid date'
+Should throw exception "tlib#date#Parse('2000-10-0')", 'TLib: Invalid date'
+
+Should be equal tlib#date#Shift('2015-10-29', '1m'), '2015-11-29'
+Should be equal tlib#date#Shift('2015-11-29', '1m'), '2015-12-29'
+Should be equal tlib#date#Shift('2015-12-29', '1m'), '2016-01-29'
+Should be equal tlib#date#Shift('2016-01-29', '1m'), '2016-02-29'
+Should be equal tlib#date#Shift('2015-10-29', '2m'), '2015-12-29'
+Should be equal tlib#date#Shift('2015-10-29', '3m'), '2016-01-29'
+Should be equal tlib#date#Shift('2015-10-29', '4m'), '2016-02-29'
+Should be equal tlib#date#Shift('2015-12-30', '1d'), '2015-12-31'
+Should be equal tlib#date#Shift('2015-12-31', '1d'), '2016-01-01'
+Should be equal tlib#date#Shift('2015-12-30', '2d'), '2016-01-01'
+Should be equal tlib#date#Shift('2015-12-30', '3d'), '2016-01-02'
+
+Should be equal tlib#date#Shift('2016-03-16', '1b'), '2016-03-17'
+Should be equal tlib#date#Shift('2016-03-16', '2b'), '2016-03-18'
+Should be equal tlib#date#Shift('2016-03-16', '3b'), '2016-03-21'
+Should be equal tlib#date#Shift('2016-03-16', '4b'), '2016-03-22'
+Should be equal tlib#date#Shift('2016-03-16', '5b'), '2016-03-23'
+Should be equal tlib#date#Shift('2016-03-16', '6b'), '2016-03-24'
+Should be equal tlib#date#Shift('2016-03-16', '7b'), '2016-03-25'
+Should be equal tlib#date#Shift('2016-03-16', '8b'), '2016-03-28'
+
diff --git a/vim/bundle/tlib_vim/spec/tlib/dictionary.vim b/vim/bundle/tlib_vim/spec/tlib/dictionary.vim
new file mode 100644
index 0000000..52439e6
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/dictionary.vim
@@ -0,0 +1,28 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     https://github.com/tomtom
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2016-04-03.
+" @Last Change: 2016-04-03.
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+
+SpecBegin 'title': 'tlib#dictionary'
+
+
+It should handle basic test cases for tlib#dictionary#Rev properly.
+
+Should be equal tlib#dictionary#Rev({}), {}
+Should be equal tlib#dictionary#Rev({1: 2, 3: 4}), {'2': '1', '4': '3'}
+Should be equal tlib#dictionary#Rev({1: '', 3: 4}, {'empty': '*'}), {'*': '1', '4': '3'}
+Should be equal tlib#dictionary#Rev({1: '', 3: 4}, {'use_string': 1}), {'''''': '1', '4': '3'}
+Should be equal tlib#dictionary#Rev({1: '', 3: 4}, {'use_string': 1, 'use_eval': 1}), {'''''': 1, '4': 3}
+Should be equal tlib#dictionary#Rev(tlib#dictionary#Rev({1: '', 3: 4}, {'use_string': 1}), {'use_eval': 1}), {1: '', 3: 4}
+Should be equal tlib#dictionary#Rev({1: 4, 2: 4}, {'values_as_list': 1}), {'4': ['1', '2']}
+Should be equal tlib#dictionary#Rev({1: 4, 2: 4}, {'values_as_list': 1, 'use_eval': 1}), {'4': [1, 2]}
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/eval.vim b/vim/bundle/tlib_vim/spec/tlib/eval.vim
new file mode 100644
index 0000000..40c5138
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/eval.vim
@@ -0,0 +1,27 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     https://github.com/tomtom
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2015-10-26.
+" @Last Change: 2015-10-26.
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+SpecBegin 'title': 'tlib#eval'
+
+
+let g:eval_a = {'foo': range(0, 5), 'd': {'a': range(0, 5)}}
+let g:eval_b = {'foo': range(6, 10), 'd': {'a': range(6, 10), 'b': 2}, 'bar': range(5)}
+let g:eval_a0 = deepcopy(g:eval_a)
+let g:eval_b0 = deepcopy(g:eval_b)
+let g:eval_c = {'foo': range(0, 10), 'd': {'a': range(0, 10), 'b': 2}, 'bar': range(5)}
+
+
+Should be equal tlib#eval#Extend(copy(g:eval_a), g:eval_b), g:eval_c
+Should be equal g:eval_a, g:eval_a0
+Should be equal g:eval_b, g:eval_b0
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/file.vim b/vim/bundle/tlib_vim/spec/tlib/file.vim
new file mode 100755
index 0000000..f692abf
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/file.vim
@@ -0,0 +1,59 @@
+" @Author:      Thomas Link (micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @GIT:         http://github.com/tomtom/vimtlib/
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2009-02-25.
+" @Last Change: 2010-04-03.
+" @Revision:    13
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+SpecBegin 'title': 'tlib/file',
+            \ 'sfile': 'autoload/tlib/file.vim'
+
+
+
+It should split filenames.
+Should be equal tlib#file#Split('foo/bar/filename.txt'), ['foo', 'bar', 'filename.txt']
+Should be equal tlib#file#Split('/foo/bar/filename.txt'), ['', 'foo', 'bar', 'filename.txt']
+Should be equal tlib#file#Split('ftp://foo/bar/filename.txt'), ['ftp:/', 'foo', 'bar', 'filename.txt']
+
+
+It should join filenames.
+Should be#Equal tlib#file#Join(['foo', 'bar']), 'foo/bar'
+Should be#Equal tlib#file#Join(['foo/', 'bar'], 1), 'foo/bar'
+Should be#Equal tlib#file#Join(['', 'bar']), '/bar'
+Should be#Equal tlib#file#Join(['/', 'bar'], 1), '/bar'
+Should be#Equal tlib#file#Join(['foo', 'bar', 'filename.txt']), 'foo/bar/filename.txt'
+Should be#Equal tlib#file#Join(['', 'foo', 'bar', 'filename.txt']), '/foo/bar/filename.txt'
+Should be#Equal tlib#file#Join(['ftp:/', 'foo', 'bar', 'filename.txt']), 'ftp://foo/bar/filename.txt'
+Should be#Equal tlib#file#Join(['ftp://', 'foo', 'bar', 'filename.txt'], 1), 'ftp://foo/bar/filename.txt'
+
+Should be equal tlib#file#Join(['foo', 'bar', 'filename.txt']), 'foo/bar/filename.txt'
+Should be equal tlib#file#Join(['', 'foo', 'bar', 'filename.txt']), '/foo/bar/filename.txt'
+Should be equal tlib#file#Join(['ftp:/', 'foo', 'bar', 'filename.txt']), 'ftp://foo/bar/filename.txt'
+
+
+It should construct relative path names.
+Should be#Equal tlib#file#Relative('foo/bar/filename.txt', 'foo'), 'bar/filename.txt'
+Should be#Equal tlib#file#Relative('foo/bar/filename.txt', 'foo/base'), '../bar/filename.txt'
+Should be#Equal tlib#file#Relative('filename.txt', 'foo/base'), '../../filename.txt'
+Should be#Equal tlib#file#Relative('/foo/bar/filename.txt', '/boo/base'), '../../foo/bar/filename.txt'
+Should be#Equal tlib#file#Relative('/bar/filename.txt', '/boo/base'), '../../bar/filename.txt'
+Should be#Equal tlib#file#Relative('/foo/bar/filename.txt', '/base'), '../foo/bar/filename.txt'
+Should be#Equal tlib#file#Relative('c:/bar/filename.txt', 'x:/boo/base'), 'c:/bar/filename.txt'
+
+
+Should be equal tlib#file#Relative('foo/bar/filename.txt', 'foo'), 'bar/filename.txt'
+Should be equal tlib#file#Relative('foo/bar/filename.txt', 'foo/base'), '../bar/filename.txt'
+Should be equal tlib#file#Relative('filename.txt', 'foo/base'), '../../filename.txt'
+Should be equal tlib#file#Relative('/foo/bar/filename.txt', '/boo/base'), '../../foo/bar/filename.txt'
+Should be equal tlib#file#Relative('/bar/filename.txt', '/boo/base'), '../../bar/filename.txt'
+Should be equal tlib#file#Relative('/foo/bar/filename.txt', '/base'), '../foo/bar/filename.txt'
+Should be equal tlib#file#Relative('c:/bar/filename.txt', 'x:/boo/base'), 'c:/bar/filename.txt'
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/hash.vim b/vim/bundle/tlib_vim/spec/tlib/hash.vim
new file mode 100644
index 0000000..a2403a3
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/hash.vim
@@ -0,0 +1,58 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Revision:    31
+
+
+SpecBegin 'title': 'tlib#hash'
+
+
+It should calculate CRC32B checksums.
+
+let g:tlib_hash_use_crc32 = g:tlib#hash#use_crc32
+
+let g:tlib#hash#use_crc32 = 'ruby'
+Should be equal tlib#hash#CRC32B('The quick brown fox jumps over the lazy dog'), '414FA339'
+Should be equal tlib#hash#CRC32B('foo'), '8C736521'
+Should be equal tlib#hash#CRC32B('f'), '76D32BE0'
+
+let g:tlib#hash#use_crc32 = 'vim'
+Should be equal tlib#hash#CRC32B('The quick brown fox jumps over the lazy dog'), '414FA339'
+Should be equal tlib#hash#CRC32B('foo'), '8C736521'
+Should be equal tlib#hash#CRC32B('f'), '76D32BE0'
+
+
+function! s:CompareHash(text) "{{{3
+    if !empty(a:text)
+        exec 'It should calculate the crc32b checksum for:' a:text
+        let crc32ruby = tlib#hash#CRC32B_ruby(a:text)
+        let crc32vim = tlib#hash#CRC32B_vim(a:text)
+        exec 'Should be equal' string(crc32ruby) ',' string(crc32vim)
+        exec 'It should calculate the adler32 checksum for:' a:text
+        let adler32tlib = tlib#hash#Adler32_tlib(a:text)
+        let adler32vim = tlib#hash#Adler32_vim(a:text)
+        exec 'Should be equal' string(adler32tlib) ',' string(adler32vim)
+    endif
+endf
+
+redir => s:scriptnames
+silent scriptnames
+redir END
+for s:script in split(s:scriptnames, '\n')
+    let s:scriptfile = matchstr(s:script, '^\s*\d\+:\s\+\zs.*$')
+    call s:CompareHash(s:scriptfile)
+    try
+        let s:scriptlines = readfile(s:scriptfile)
+        call s:CompareHash(join(s:scriptlines, "\n"))
+        for s:scriptline in s:scriptlines
+            call s:CompareHash(s:scriptline)
+        endfor
+    catch /^Vim\%((\a\+)\)\=:E484/
+    endtry
+endfor
+unlet s:scriptnames, :script, s:scriptfile, s:scriptlines, s:scriptline
+delf s:CompareHash
+
+
+let g:tlib#hash#use_crc32 = g:tlib_hash_use_crc32
+
diff --git a/vim/bundle/tlib_vim/spec/tlib/input.vim b/vim/bundle/tlib_vim/spec/tlib/input.vim
new file mode 100755
index 0000000..f82aea6
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/input.vim
@@ -0,0 +1,127 @@
+" @Author:      Tom Link (micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @GIT:         http://github.com/tomtom/vimtlib/
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2009-02-28.
+" @Last Change: 2009-03-14.
+" @Revision:    73
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+SpecBegin 'title': 'tlib: Input', 'scratch': '%',
+            \ 'after': ':unlet! g:spec_lib_rv',
+            \ 'options': [
+			\ 'vim',
+			\ ]
+
+
+let g:spec_tlib_list = [10, 20, 30, 40, 'a50', 'aa60', 'b70', 'ba80', 90]
+
+
+
+It should return empty values when the user presses <escape>.
+Replay :let g:spec_lib_rv = tlib#input#List('s', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<Down>\<esc>
+Should be#Equal g:spec_lib_rv, ''
+
+Replay :let g:spec_lib_rv = tlib#input#List('m', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<Down>\<esc>
+Should be#Equal g:spec_lib_rv, []
+
+Replay :let g:spec_lib_rv = tlib#input#List('si', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<Down>\<esc>
+Should be#Equal g:spec_lib_rv, 0
+
+
+
+It should pick an item from s-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('s', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<Down>\<cr>
+Should be#Equal g:spec_lib_rv, 30
+
+
+
+It should return an index from si-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('si', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<Down>\<cr>
+Should be#Equal g:spec_lib_rv, 3
+
+
+
+It should return a list from a m-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('m', '', g:spec_tlib_list)\<cr>
+            \ \<Down>#\<Down>\<Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [20, 40]
+
+Replay :let g:spec_lib_rv = tlib#input#List('m', '', g:spec_tlib_list)\<cr>
+           \ \<Down>\<S-Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [20, 30]
+
+Replay :let g:spec_lib_rv = tlib#input#List('m', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<Down>\<S-up>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [20, 30]
+
+
+
+It should return a list of indices from a mi-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('mi', '', g:spec_tlib_list)\<cr>
+            \ \<Down>#\<Down>\<Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [2, 4]
+
+Replay :let g:spec_lib_rv = tlib#input#List('mi', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<S-Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [2, 3]
+
+Replay :let g:spec_lib_rv = tlib#input#List('mi', '', g:spec_tlib_list)\<cr>
+            \ \<Down>\<Down>\<S-up>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [2, 3]
+
+
+
+It should filter items from a s-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('s', '', g:spec_tlib_list)\<cr>
+            \ \<Down>a\<Down>\<cr>
+Should be#Equal g:spec_lib_rv, 'aa60'
+
+
+
+It should filter items from a si-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('si', '', g:spec_tlib_list)\<cr>
+            \ \<Down>a\<Down>\<cr>
+Should be#Equal g:spec_lib_rv, 6
+
+
+
+It should filter items from a m-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('m', '', g:spec_tlib_list)\<cr>
+            \ a\<Down>#\<Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), ['aa60', 'ba80']
+
+Replay :let g:spec_lib_rv = tlib#input#List('m', '', g:spec_tlib_list)\<cr>
+            \ a\<Down>\<S-Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), ['aa60', 'ba80']
+
+Replay :let g:spec_lib_rv = tlib#input#List('m', '', g:spec_tlib_list)\<cr>
+            \ a\<Down>\<Down>\<S-up>\<cr>
+Should be#Equal sort(g:spec_lib_rv), ['aa60', 'ba80']
+
+
+
+It should filter items from a mi-type list.
+Replay :let g:spec_lib_rv = tlib#input#List('mi', '', g:spec_tlib_list)\<cr>
+            \ a\<Down>#\<Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [6, 8]
+
+Replay :let g:spec_lib_rv = tlib#input#List('mi', '', g:spec_tlib_list)\<cr>
+            \ a\<Down>\<S-Down>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [6, 8]
+
+Replay :let g:spec_lib_rv = tlib#input#List('mi', '', g:spec_tlib_list)\<cr>
+            \ a\<Down>\<Down>\<S-up>\<cr>
+Should be#Equal sort(g:spec_lib_rv), [6, 8]
+
+
+
+let &cpo = s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/list.vim b/vim/bundle/tlib_vim/spec/tlib/list.vim
new file mode 100755
index 0000000..d4aae54
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/list.vim
@@ -0,0 +1,67 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2010-04-03.
+" @Last Change: 2010-04-03.
+" @Revision:    4
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+
+SpecBegin 'title': 'tlib: List'
+            " \, 'options': [vim, <+SET+>]
+            " \, 'sfile': '<+SCRIPT CONTEXT+>'
+            " \, 'scratch': '<+SCRATCH FILE+>'
+            " \, 'before': '<+BEFORE EX COMMANDS+>'
+            " \, 'after': '<+AFTER EX COMMANDS+>'
+            " \, 'cleanup': ['<+FUNCTION+>()']
+
+
+" List {{{2
+fun! Add(a,b)
+    return a:a + a:b
+endf
+
+Should be equal tlib#list#Inject([], 0, function('Add')), 0
+Should be equal tlib#list#Inject([1,2,3], 0, function('Add')), 6
+
+Should be equal tlib#list#Compact([]), []
+Should be equal tlib#list#Compact([0,1,2,3,[], {}, ""]), [1,2,3]
+
+Should be equal tlib#list#Flatten([]), []
+Should be equal tlib#list#Flatten([1,2,3]), [1,2,3]
+Should be equal tlib#list#Flatten([1,2, [1,2,3], 3]), [1,2,1,2,3,3]
+Should be equal tlib#list#Flatten([0,[1,2,[3,""]]]), [0,1,2,3,""]
+
+Should be equal tlib#list#FindAll([1,2,3], 'v:val >= 2'), [2,3]
+Should be equal tlib#list#FindAll([1,2,3], 'v:val >= 2', 'v:val * 10'), [20,30]
+
+Should be equal tlib#list#Find([1,2,3], 'v:val >= 2'), 2
+Should be equal tlib#list#Find([1,2,3], 'v:val >= 2', 0, 'v:val * 10'), 20
+Should be equal tlib#list#Find([1,2,3], 'v:val >= 5', 10), 10
+
+Should be equal tlib#list#Any([1,2,3], 'v:val >= 2'), 1
+Should be equal tlib#list#Any([1,2,3], 'v:val >= 5'), 0
+
+Should be equal tlib#list#All([1,2,3], 'v:val < 5'), 1
+Should be equal tlib#list#All([1,2,3], 'v:val >= 2'), 0
+
+Should be equal tlib#list#Remove([1,2,1,2], 2), [1,1,2]
+Should be equal tlib#list#RemoveAll([1,2,1,2], 2), [1,1]
+
+Should be equal tlib#list#Zip([[1,2,3], [4,5,6]]), [[1,4], [2,5], [3,6]]
+Should be equal tlib#list#Zip([[1,2,3], [4,5,6,7]]), [[1,4], [2,5], [3,6], ['', 7]]
+Should be equal tlib#list#Zip([[1,2,3], [4,5,6,7]], -1), [[1,4], [2,5], [3,6], [-1,7]]
+Should be equal tlib#list#Zip([[1,2,3,7], [4,5,6]], -1), [[1,4], [2,5], [3,6], [7,-1]]
+
+
+Should be equal tlib#list#Uniq([]), []
+Should be equal tlib#list#Uniq([1,1]), [1]
+Should be equal tlib#list#Uniq([1,2,2,3,2,3,4,2,1,7,2,3,2,3,7]), [1,2,3,4,7]
+
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/rx.vim b/vim/bundle/tlib_vim/spec/tlib/rx.vim
new file mode 100755
index 0000000..fc28103
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/rx.vim
@@ -0,0 +1,27 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2010-04-03.
+" @Last Change: 2010-04-03.
+" @Revision:    2
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+
+SpecBegin 'title': 'tlib#rx'
+
+
+for c in split('^$.*+\()|{}[]~', '\zs')
+    let s = printf('%sfoo%sbar%s', c, c, c)
+    Should be like s, '\m^'. tlib#rx#Escape(s, 'm') .'$'
+    Should be like s, '\M^'. tlib#rx#Escape(s, 'M') .'$'
+    Should be like s, '\v^'. tlib#rx#Escape(s, 'v') .'$'
+    Should be like s, '\V\^'. tlib#rx#Escape(s, 'V') .'\$'
+endfor
+
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/string.vim b/vim/bundle/tlib_vim/spec/tlib/string.vim
new file mode 100755
index 0000000..4329d94
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/string.vim
@@ -0,0 +1,29 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2010-04-03.
+" @Last Change: 2010-04-03.
+" @Revision:    4
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+
+SpecBegin 'title': 'tlib#string'
+
+Should be equal tlib#string#RemoveBackslashes('foo bar'), 'foo bar'
+Should be equal tlib#string#RemoveBackslashes('foo\ bar'), 'foo bar'
+Should be equal tlib#string#RemoveBackslashes('foo\ \\bar'), 'foo \\bar'
+Should be equal tlib#string#RemoveBackslashes('foo\ \\bar', '\ '), 'foo \bar'
+
+
+Should be equal tlib#string#Count("fooo", "o"), 3
+Should be equal tlib#string#Count("***", "\\*"), 3
+Should be equal tlib#string#Count("***foo", "\\*"), 3
+Should be equal tlib#string#Count("foo***", "\\*"), 3
+
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/url.vim b/vim/bundle/tlib_vim/spec/tlib/url.vim
new file mode 100755
index 0000000..80783e9
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/url.vim
@@ -0,0 +1,23 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2010-04-03.
+" @Last Change: 2010-04-03.
+" @Revision:    2
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+
+SpecBegin 'title': 'tlib#url'
+
+Should be equal tlib#url#Decode('http://example.com/foo+bar%25bar'), 'http://example.com/foo bar%bar'
+Should be equal tlib#url#Decode('Hello%20World.%20%20Good%2c%20bye.'), 'Hello World.  Good, bye.'
+
+Should be equal tlib#url#Encode('foo bar%bar'), 'foo+bar%%bar'
+Should be equal tlib#url#Encode('Hello World. Good, bye.'), 'Hello+World.+Good%2c+bye.'
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
diff --git a/vim/bundle/tlib_vim/spec/tlib/var.vim b/vim/bundle/tlib_vim/spec/tlib/var.vim
new file mode 100755
index 0000000..28e3fac
--- /dev/null
+++ b/vim/bundle/tlib_vim/spec/tlib/var.vim
@@ -0,0 +1,37 @@
+" @Author:      Tom Link (mailto:micathom AT gmail com?subject=[vim])
+" @Website:     http://www.vim.org/account/profile.php?user_id=4037
+" @License:     GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created:     2010-04-03.
+" @Last Change: 2010-04-03.
+" @Revision:    2
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+
+SpecBegin 'title': 'tlib#var'
+
+
+let g:foo = 1
+let g:bar = 2
+let b:bar = 3
+let s:bar = 4
+
+Should be equal tlib#var#Get('bar', 'bg'), 3
+Should be equal tlib#var#Get('bar', 'g'), 2
+Should be equal tlib#var#Get('foo', 'bg'), 1
+Should be equal tlib#var#Get('foo', 'g'), 1
+Should be equal tlib#var#Get('none', 'l'), ''
+
+Should be equal eval(tlib#var#EGet('bar', 'bg')), 3
+Should be equal eval(tlib#var#EGet('bar', 'g')), 2
+" Should be equal eval(tlib#var#EGet('bar', 'sg')), 4
+Should be equal eval(tlib#var#EGet('foo', 'bg')), 1
+Should be equal eval(tlib#var#EGet('foo', 'g')), 1
+Should be equal eval(tlib#var#EGet('none', 'l')), ''
+
+
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
-- 
cgit v1.2.3