mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
tests: Migrate legacy test 65.
Helped-By: David Bürgin <676c7473@gmail.com>
This commit is contained in:
parent
5218fc2ccb
commit
ee312ca9a4
@ -20,7 +20,7 @@ SCRIPTS := test_autoformat_join.out \
|
||||
test46.out test47.out test48.out test49.out \
|
||||
test52.out test53.out test55.out \
|
||||
test57.out test58.out test59.out \
|
||||
test61.out test62.out test63.out test64.out test65.out \
|
||||
test61.out test62.out test63.out test64.out \
|
||||
test68.out test69.out \
|
||||
test71.out test73.out test74.out \
|
||||
test79.out test80.out \
|
||||
|
@ -1,91 +0,0 @@
|
||||
Test for floating point and logical operators.
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:"
|
||||
:$put =printf('%f', 123.456)
|
||||
:$put =printf('%e', 123.456)
|
||||
:$put =printf('%g', 123.456)
|
||||
:" check we don't crash on division by zero
|
||||
:echo 1.0 / 0.0
|
||||
:$put ='+='
|
||||
:let v = 1.234
|
||||
:let v += 6.543
|
||||
:$put =printf('%g', v)
|
||||
:let v = 1.234
|
||||
:let v += 5
|
||||
:$put =printf('%g', v)
|
||||
:let a = 5
|
||||
:let a += 3.333
|
||||
:$put =string(a)
|
||||
:$put ='=='
|
||||
:let v = 1.234
|
||||
:$put =v == 1.234
|
||||
:$put =v == 1.2341
|
||||
:$put ='add-subtract'
|
||||
:$put =printf('%g', 4 + 1.234)
|
||||
:$put =printf('%g', 1.234 - 8)
|
||||
:$put ='mult-div'
|
||||
:$put =printf('%g', 4 * 1.234)
|
||||
:$put =printf('%g', 4.0 / 1234)
|
||||
:$put ='dict'
|
||||
:$put =string({'x': 1.234, 'y': -2.0e20})
|
||||
:$put ='list'
|
||||
:$put =string([-123.4, 2.0e-20])
|
||||
:$put ='abs'
|
||||
:$put =printf('%d', abs(1456))
|
||||
:$put =printf('%d', abs(-4))
|
||||
:$put =printf('%d', abs([1, 2, 3]))
|
||||
:$put =printf('%g', abs(14.56))
|
||||
:$put =printf('%g', abs(-54.32))
|
||||
:$put ='ceil'
|
||||
:$put =printf('%g', ceil(1.456))
|
||||
:$put =printf('%g', ceil(-5.456))
|
||||
:$put =printf('%g', ceil(-4.000))
|
||||
:$put ='floor'
|
||||
:$put =printf('%g', floor(1.856))
|
||||
:$put =printf('%g', floor(-5.456))
|
||||
:$put =printf('%g', floor(4.0))
|
||||
:$put ='log10'
|
||||
:$put =printf('%g', log10(1000))
|
||||
:$put =printf('%g', log10(0.01000))
|
||||
:$put ='pow'
|
||||
:$put =printf('%g', pow(3, 3.0))
|
||||
:$put =printf('%g', pow(2, 16))
|
||||
:$put ='round'
|
||||
:$put =printf('%g', round(0.456))
|
||||
:$put =printf('%g', round(4.5))
|
||||
:$put =printf('%g', round(-4.50))
|
||||
:$put ='sqrt'
|
||||
:$put =printf('%g', sqrt(100))
|
||||
:echo sqrt(-4.01)
|
||||
:$put ='str2float'
|
||||
:$put =printf('%g', str2float('1e40'))
|
||||
:$put ='trunc'
|
||||
:$put =printf('%g', trunc(1.456))
|
||||
:$put =printf('%g', trunc(-5.456))
|
||||
:$put =printf('%g', trunc(4.000))
|
||||
:$put ='float2nr'
|
||||
:$put =float2nr(123.456)
|
||||
:$put =float2nr(-123.456)
|
||||
:$put ='AND'
|
||||
:$put =and(127, 127)
|
||||
:$put =and(127, 16)
|
||||
:$put =and(127, 128)
|
||||
:$put ='OR'
|
||||
:$put =or(16, 7)
|
||||
:$put =or(8, 7)
|
||||
:$put =or(0, 123)
|
||||
:$put ='XOR'
|
||||
:$put =xor(127, 127)
|
||||
:$put =xor(127, 16)
|
||||
:$put =xor(127, 128)
|
||||
:$put ='invert'
|
||||
:$put =and(invert(127), 65535)
|
||||
:$put =and(invert(16), 65535)
|
||||
:$put =and(invert(128), 65535)
|
||||
:$put =invert(1.0)
|
||||
:/^Results/,$wq! test.out
|
||||
ENDTEST
|
||||
|
||||
Results of test65:
|
@ -1,73 +0,0 @@
|
||||
Results of test65:
|
||||
123.456000
|
||||
1.234560e+02
|
||||
123.456
|
||||
+=
|
||||
7.777
|
||||
6.234
|
||||
8.333
|
||||
==
|
||||
1
|
||||
0
|
||||
add-subtract
|
||||
5.234
|
||||
-6.766
|
||||
mult-div
|
||||
4.936
|
||||
0.003241
|
||||
dict
|
||||
{'x': 1.234, 'y': -2.0e20}
|
||||
list
|
||||
[-123.4, 2.0e-20]
|
||||
abs
|
||||
1456
|
||||
4
|
||||
-1
|
||||
14.56
|
||||
54.32
|
||||
ceil
|
||||
2.0
|
||||
-5.0
|
||||
-4.0
|
||||
floor
|
||||
1.0
|
||||
-6.0
|
||||
4.0
|
||||
log10
|
||||
3.0
|
||||
-2.0
|
||||
pow
|
||||
27.0
|
||||
65536.0
|
||||
round
|
||||
0.0
|
||||
5.0
|
||||
-5.0
|
||||
sqrt
|
||||
10.0
|
||||
str2float
|
||||
1.0e40
|
||||
trunc
|
||||
1.0
|
||||
-5.0
|
||||
4.0
|
||||
float2nr
|
||||
123
|
||||
-123
|
||||
AND
|
||||
127
|
||||
16
|
||||
0
|
||||
OR
|
||||
23
|
||||
15
|
||||
123
|
||||
XOR
|
||||
0
|
||||
111
|
||||
255
|
||||
invert
|
||||
65408
|
||||
65519
|
||||
65407
|
||||
0
|
185
test/functional/legacy/065_float_and_logic_operators_spec.lua
Normal file
185
test/functional/legacy/065_float_and_logic_operators_spec.lua
Normal file
@ -0,0 +1,185 @@
|
||||
-- Test for floating point and logical operators.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
|
||||
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
|
||||
|
||||
describe('floating point and logical operators', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
insert([=[
|
||||
Results of test65:]=])
|
||||
|
||||
source([[
|
||||
$put =printf('%f', 123.456)
|
||||
$put =printf('%e', 123.456)
|
||||
$put =printf('%g', 123.456)
|
||||
" Check we don't crash on division by zero.
|
||||
echo 1.0 / 0.0
|
||||
$put ='+='
|
||||
let v = 1.234
|
||||
let v += 6.543
|
||||
$put =printf('%g', v)
|
||||
let v = 1.234
|
||||
let v += 5
|
||||
$put =printf('%g', v)
|
||||
let a = 5
|
||||
let a += 3.333
|
||||
$put =string(a)
|
||||
$put ='=='
|
||||
let v = 1.234
|
||||
$put =v == 1.234
|
||||
$put =v == 1.2341
|
||||
$put ='add-subtract'
|
||||
$put =printf('%g', 4 + 1.234)
|
||||
$put =printf('%g', 1.234 - 8)
|
||||
$put ='mult-div'
|
||||
$put =printf('%g', 4 * 1.234)
|
||||
$put =printf('%g', 4.0 / 1234)
|
||||
$put ='dict'
|
||||
$put =string({'x': 1.234, 'y': -2.0e20})
|
||||
$put ='list'
|
||||
$put =string([-123.4, 2.0e-20])
|
||||
$put ='abs'
|
||||
$put =printf('%d', abs(1456))
|
||||
$put =printf('%d', abs(-4))
|
||||
]])
|
||||
|
||||
-- The test will throw an error if this line is included in a source()
|
||||
-- call. The vim expression throws a exception "E745: Using a List as a
|
||||
-- Number" which is fatal in a source() call but not in a execute() call.
|
||||
execute([[$put =printf('%d', abs([1, 2, 3]))]])
|
||||
|
||||
source([[
|
||||
$put =printf('%g', abs(14.56))
|
||||
$put =printf('%g', abs(-54.32))
|
||||
$put ='ceil'
|
||||
$put =printf('%g', ceil(1.456))
|
||||
$put =printf('%g', ceil(-5.456))
|
||||
$put =printf('%g', ceil(-4.000))
|
||||
$put ='floor'
|
||||
$put =printf('%g', floor(1.856))
|
||||
$put =printf('%g', floor(-5.456))
|
||||
$put =printf('%g', floor(4.0))
|
||||
$put ='log10'
|
||||
$put =printf('%g', log10(1000))
|
||||
$put =printf('%g', log10(0.01000))
|
||||
$put ='pow'
|
||||
$put =printf('%g', pow(3, 3.0))
|
||||
$put =printf('%g', pow(2, 16))
|
||||
$put ='round'
|
||||
$put =printf('%g', round(0.456))
|
||||
$put =printf('%g', round(4.5))
|
||||
$put =printf('%g', round(-4.50))
|
||||
$put ='sqrt'
|
||||
$put =printf('%g', sqrt(100))
|
||||
echo sqrt(-4.01)
|
||||
$put ='str2float'
|
||||
$put =printf('%g', str2float('1e40'))
|
||||
$put ='trunc'
|
||||
$put =printf('%g', trunc(1.456))
|
||||
$put =printf('%g', trunc(-5.456))
|
||||
$put =printf('%g', trunc(4.000))
|
||||
$put ='float2nr'
|
||||
$put =float2nr(123.456)
|
||||
$put =float2nr(-123.456)
|
||||
$put ='AND'
|
||||
$put =and(127, 127)
|
||||
$put =and(127, 16)
|
||||
$put =and(127, 128)
|
||||
$put ='OR'
|
||||
$put =or(16, 7)
|
||||
$put =or(8, 7)
|
||||
$put =or(0, 123)
|
||||
$put ='XOR'
|
||||
$put =xor(127, 127)
|
||||
$put =xor(127, 16)
|
||||
$put =xor(127, 128)
|
||||
$put ='invert'
|
||||
$put =and(invert(127), 65535)
|
||||
$put =and(invert(16), 65535)
|
||||
$put =and(invert(128), 65535)
|
||||
]])
|
||||
|
||||
-- This line can not be included in a source() call. It throws a "E805:
|
||||
-- Using a Float as a Number". Also compare comment above.
|
||||
execute('$put =invert(1.0)')
|
||||
|
||||
-- Assert buffer contents.
|
||||
expect([=[
|
||||
Results of test65:
|
||||
123.456000
|
||||
1.234560e+02
|
||||
123.456
|
||||
+=
|
||||
7.777
|
||||
6.234
|
||||
8.333
|
||||
==
|
||||
1
|
||||
0
|
||||
add-subtract
|
||||
5.234
|
||||
-6.766
|
||||
mult-div
|
||||
4.936
|
||||
0.003241
|
||||
dict
|
||||
{'x': 1.234, 'y': -2.0e20}
|
||||
list
|
||||
[-123.4, 2.0e-20]
|
||||
abs
|
||||
1456
|
||||
4
|
||||
-1
|
||||
14.56
|
||||
54.32
|
||||
ceil
|
||||
2.0
|
||||
-5.0
|
||||
-4.0
|
||||
floor
|
||||
1.0
|
||||
-6.0
|
||||
4.0
|
||||
log10
|
||||
3.0
|
||||
-2.0
|
||||
pow
|
||||
27.0
|
||||
65536.0
|
||||
round
|
||||
0.0
|
||||
5.0
|
||||
-5.0
|
||||
sqrt
|
||||
10.0
|
||||
str2float
|
||||
1.0e40
|
||||
trunc
|
||||
1.0
|
||||
-5.0
|
||||
4.0
|
||||
float2nr
|
||||
123
|
||||
-123
|
||||
AND
|
||||
127
|
||||
16
|
||||
0
|
||||
OR
|
||||
23
|
||||
15
|
||||
123
|
||||
XOR
|
||||
0
|
||||
111
|
||||
255
|
||||
invert
|
||||
65408
|
||||
65519
|
||||
65407
|
||||
0]=])
|
||||
end)
|
||||
end)
|
Loading…
Reference in New Issue
Block a user