mirror of
https://github.com/neovim/neovim.git
synced 2025-11-05 18:24:22 +00:00
functests: Do not run some tests if there is no -NaN
This commit is contained in:
@@ -20,6 +20,12 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
return sp('map', '[' .. val .. ']')
|
return sp('map', '[' .. val .. ']')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local nan = -(1.0/0.0-1.0/0.0)
|
||||||
|
local minus_nan = 1.0/0.0-1.0/0.0
|
||||||
|
local inf = 1.0/0.0
|
||||||
|
local minus_inf = -(1.0/0.0)
|
||||||
|
local has_minus_nan = tostring(nan) ~= tostring(minus_nan)
|
||||||
|
|
||||||
describe('function msgpack#equal', function()
|
describe('function msgpack#equal', function()
|
||||||
local msgpack_eq = function(expected, a, b)
|
local msgpack_eq = function(expected, a, b)
|
||||||
eq(expected, nvim_eval(('msgpack#equal(%s, %s)'):format(a, b)))
|
eq(expected, nvim_eval(('msgpack#equal(%s, %s)'):format(a, b)))
|
||||||
@@ -154,8 +160,9 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
it('compares raw floats correctly', function()
|
it('compares raw floats correctly', function()
|
||||||
msgpack_eq(1, '0.0', '0.0')
|
msgpack_eq(1, '0.0', '0.0')
|
||||||
msgpack_eq(1, '(1.0/0.0-1.0/0.0)', '(1.0/0.0-1.0/0.0)')
|
msgpack_eq(1, '(1.0/0.0-1.0/0.0)', '(1.0/0.0-1.0/0.0)')
|
||||||
|
if has_minus_nan then
|
||||||
msgpack_eq(0, '(1.0/0.0-1.0/0.0)', '-(1.0/0.0-1.0/0.0)')
|
msgpack_eq(0, '(1.0/0.0-1.0/0.0)', '-(1.0/0.0-1.0/0.0)')
|
||||||
msgpack_eq(0, '-(1.0/0.0-1.0/0.0)', '(1.0/0.0-1.0/0.0)')
|
end
|
||||||
msgpack_eq(1, '-(1.0/0.0-1.0/0.0)', '-(1.0/0.0-1.0/0.0)')
|
msgpack_eq(1, '-(1.0/0.0-1.0/0.0)', '-(1.0/0.0-1.0/0.0)')
|
||||||
msgpack_eq(1, '1.0/0.0', '1.0/0.0')
|
msgpack_eq(1, '1.0/0.0', '1.0/0.0')
|
||||||
msgpack_eq(1, '-(1.0/0.0)', '-(1.0/0.0)')
|
msgpack_eq(1, '-(1.0/0.0)', '-(1.0/0.0)')
|
||||||
@@ -171,8 +178,10 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
it('compares float specials with raw floats correctly', function()
|
it('compares float specials with raw floats correctly', function()
|
||||||
msgpack_eq(1, sp('float', '0.0'), '0.0')
|
msgpack_eq(1, sp('float', '0.0'), '0.0')
|
||||||
msgpack_eq(1, sp('float', '(1.0/0.0-1.0/0.0)'), '(1.0/0.0-1.0/0.0)')
|
msgpack_eq(1, sp('float', '(1.0/0.0-1.0/0.0)'), '(1.0/0.0-1.0/0.0)')
|
||||||
|
if has_minus_nan then
|
||||||
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'), '-(1.0/0.0-1.0/0.0)')
|
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'), '-(1.0/0.0-1.0/0.0)')
|
||||||
msgpack_eq(0, sp('float', '-(1.0/0.0-1.0/0.0)'), '(1.0/0.0-1.0/0.0)')
|
msgpack_eq(0, sp('float', '-(1.0/0.0-1.0/0.0)'), '(1.0/0.0-1.0/0.0)')
|
||||||
|
end
|
||||||
msgpack_eq(1, sp('float', '-(1.0/0.0-1.0/0.0)'), '-(1.0/0.0-1.0/0.0)')
|
msgpack_eq(1, sp('float', '-(1.0/0.0-1.0/0.0)'), '-(1.0/0.0-1.0/0.0)')
|
||||||
msgpack_eq(1, sp('float', '1.0/0.0'), '1.0/0.0')
|
msgpack_eq(1, sp('float', '1.0/0.0'), '1.0/0.0')
|
||||||
msgpack_eq(1, sp('float', '-(1.0/0.0)'), '-(1.0/0.0)')
|
msgpack_eq(1, sp('float', '-(1.0/0.0)'), '-(1.0/0.0)')
|
||||||
@@ -198,8 +207,10 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
msgpack_eq(0, sp('float', '0.0'), sp('float', '-(1.0/0.0)'))
|
msgpack_eq(0, sp('float', '0.0'), sp('float', '-(1.0/0.0)'))
|
||||||
msgpack_eq(0, sp('float', '1.0/0.0'), sp('float', '-(1.0/0.0)'))
|
msgpack_eq(0, sp('float', '1.0/0.0'), sp('float', '-(1.0/0.0)'))
|
||||||
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'), sp('float', '-(1.0/0.0)'))
|
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'), sp('float', '-(1.0/0.0)'))
|
||||||
|
if has_minus_nan then
|
||||||
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'),
|
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'),
|
||||||
sp('float', '-(1.0/0.0-1.0/0.0)'))
|
sp('float', '-(1.0/0.0-1.0/0.0)'))
|
||||||
|
end
|
||||||
msgpack_eq(1, sp('float', '-(1.0/0.0-1.0/0.0)'),
|
msgpack_eq(1, sp('float', '-(1.0/0.0-1.0/0.0)'),
|
||||||
sp('float', '-(1.0/0.0-1.0/0.0)'))
|
sp('float', '-(1.0/0.0-1.0/0.0)'))
|
||||||
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'), sp('float', '1.0/0.0'))
|
msgpack_eq(0, sp('float', '(1.0/0.0-1.0/0.0)'), sp('float', '1.0/0.0'))
|
||||||
@@ -381,7 +392,9 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
string_eq('0.0', sp('float', '0.0'))
|
string_eq('0.0', sp('float', '0.0'))
|
||||||
string_eq('inf', sp('float', '(1.0/0.0)'))
|
string_eq('inf', sp('float', '(1.0/0.0)'))
|
||||||
string_eq('-inf', sp('float', '-(1.0/0.0)'))
|
string_eq('-inf', sp('float', '-(1.0/0.0)'))
|
||||||
|
if has_minus_nan then
|
||||||
string_eq('-nan', sp('float', '(1.0/0.0-1.0/0.0)'))
|
string_eq('-nan', sp('float', '(1.0/0.0-1.0/0.0)'))
|
||||||
|
end
|
||||||
string_eq('nan', sp('float', '-(1.0/0.0-1.0/0.0)'))
|
string_eq('nan', sp('float', '-(1.0/0.0-1.0/0.0)'))
|
||||||
string_eq('FALSE', sp('boolean', '0'))
|
string_eq('FALSE', sp('boolean', '0'))
|
||||||
string_eq('TRUE', sp('boolean', '1'))
|
string_eq('TRUE', sp('boolean', '1'))
|
||||||
@@ -400,7 +413,9 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
string_eq('0.0', '0.0')
|
string_eq('0.0', '0.0')
|
||||||
string_eq('inf', '(1.0/0.0)')
|
string_eq('inf', '(1.0/0.0)')
|
||||||
string_eq('-inf', '-(1.0/0.0)')
|
string_eq('-inf', '-(1.0/0.0)')
|
||||||
|
if has_minus_nan then
|
||||||
string_eq('-nan', '(1.0/0.0-1.0/0.0)')
|
string_eq('-nan', '(1.0/0.0-1.0/0.0)')
|
||||||
|
end
|
||||||
string_eq('nan', '-(1.0/0.0-1.0/0.0)')
|
string_eq('nan', '-(1.0/0.0-1.0/0.0)')
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@@ -597,10 +612,10 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
it('correctly loads floats', function()
|
it('correctly loads floats', function()
|
||||||
eval_eq('float', 1.0/0.0, 'inf')
|
eval_eq('float', inf, 'inf')
|
||||||
eval_eq('float', -1.0/0.0, '-inf')
|
eval_eq('float', minus_inf, '-inf')
|
||||||
eval_eq('float', -(1.0/0.0-1.0/0.0), 'nan')
|
eval_eq('float', nan, 'nan')
|
||||||
eval_eq('float', (1.0/0.0-1.0/0.0), '-nan')
|
eval_eq('float', minus_nan, '-nan')
|
||||||
eval_eq('float', 1.0e10, '1.0e10')
|
eval_eq('float', 1.0e10, '1.0e10')
|
||||||
eval_eq('float', 1.0e10, '1.0e+10')
|
eval_eq('float', 1.0e10, '1.0e+10')
|
||||||
eval_eq('float', -1.0e10, '-1.0e+10')
|
eval_eq('float', -1.0e10, '-1.0e+10')
|
||||||
@@ -629,7 +644,7 @@ describe('In autoload/msgpack.vim', function()
|
|||||||
eval_eq('boolean', 0, 'FALSE')
|
eval_eq('boolean', 0, 'FALSE')
|
||||||
eval_eq('nil', 0, 'NIL')
|
eval_eq('nil', 0, 'NIL')
|
||||||
eval_eq('nil', 0, 'NIL', '{"NIL": 1, "nan": 2, "T": 3}')
|
eval_eq('nil', 0, 'NIL', '{"NIL": 1, "nan": 2, "T": 3}')
|
||||||
eval_eq('float', -(1.0/0.0-1.0/0.0), 'nan',
|
eval_eq('float', nan, 'nan',
|
||||||
'{"NIL": "1", "nan": "2", "T": "3"}')
|
'{"NIL": "1", "nan": "2", "T": "3"}')
|
||||||
eval_eq('integer', 3, 'T', '{"NIL": "1", "nan": "2", "T": "3"}')
|
eval_eq('integer', 3, 'T', '{"NIL": "1", "nan": "2", "T": "3"}')
|
||||||
eval_eq('integer', {1, 0, 0, 0}, 'T',
|
eval_eq('integer', {1, 0, 0, 0}, 'T',
|
||||||
|
|||||||
Reference in New Issue
Block a user