diff options
author | ZyX <kp-pav@yandex.ru> | 2016-08-28 08:09:29 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-03-29 10:08:05 +0300 |
commit | 7ee5cc7429017a4a08a8b62b628bea156fea0008 (patch) | |
tree | 4f5e046b3265fb4eda2ca3c51b8a53517f86255c /test | |
parent | 949f09bdbba592a12629c71e20ff7bb49a21db6c (diff) | |
download | rneovim-7ee5cc7429017a4a08a8b62b628bea156fea0008.tar.gz rneovim-7ee5cc7429017a4a08a8b62b628bea156fea0008.tar.bz2 rneovim-7ee5cc7429017a4a08a8b62b628bea156fea0008.zip |
eval: Move get_tv_lnum and get_tv_float to eval/typval.h
Additionally
- Rename former tv_get_float to tv_get_float_chk due to name conflict (former
get_tv_float is better suited for being tv_get_float).
- Add E907 error to get_tv_float() and test that it is being raised when
appropriate.
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/eval/sort_spec.lua | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/functional/eval/sort_spec.lua b/test/functional/eval/sort_spec.lua new file mode 100644 index 0000000000..4e5a0afba4 --- /dev/null +++ b/test/functional/eval/sort_spec.lua @@ -0,0 +1,41 @@ +local helpers = require('test.functional.helpers')(after_each) + +local eq = helpers.eq +local NIL = helpers.NIL +local eval = helpers.eval +local clear = helpers.clear +local meths = helpers.meths +local funcs = helpers.funcs +local command = helpers.command +local exc_exec = helpers.exc_exec + +before_each(clear) + +describe('sort()', function() + it('errors out when sorting special values', function() + eq('Vim(call):E907: Using a special value as a Float', + exc_exec('call sort([v:true, v:false], "f")')) + end) + + it('sorts “wrong” values between -0.0001 and 0.0001, preserving order', + function() + meths.set_var('list', {true, false, NIL, {}, {a=42}, 'check', + 0.0001, -0.0001}) + command('call insert(g:list, function("tr"))') + local error_lines = funcs.split( + funcs.execute('silent! call sort(g:list, "f")'), '\n') + local errors = {} + for _, err in ipairs(error_lines) do + errors[err] = true + end + eq({ + ['E891: Using a Funcref as a Float']=true, + ['E892: Using a String as a Float']=true, + ['E893: Using a List as a Float']=true, + ['E894: Using a Dictionary as a Float']=true, + ['E907: Using a special value as a Float']=true, + }, errors) + eq('[-1.0e-4, function(\'tr\'), v:true, v:false, v:null, [], {\'a\': 42}, \'check\', 1.0e-4]', + eval('string(g:list)')) + end) +end) |