mirror of
https://github.com/neovim/neovim.git
synced 2026-04-21 23:05:41 +00:00
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.
This commit is contained in:
41
test/functional/eval/sort_spec.lua
Normal file
41
test/functional/eval/sort_spec.lua
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user