tests: Migrate legacy test 65.

Helped-By: David Bürgin <676c7473@gmail.com>
This commit is contained in:
Lucas Hoffmann 2015-05-15 19:03:48 +02:00 committed by Justin M. Keyes
parent 5218fc2ccb
commit ee312ca9a4
4 changed files with 186 additions and 165 deletions

View File

@ -20,7 +20,7 @@ SCRIPTS := test_autoformat_join.out \
test46.out test47.out test48.out test49.out \ test46.out test47.out test48.out test49.out \
test52.out test53.out test55.out \ test52.out test53.out test55.out \
test57.out test58.out test59.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 \ test68.out test69.out \
test71.out test73.out test74.out \ test71.out test73.out test74.out \
test79.out test80.out \ test79.out test80.out \

View File

@ -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:

View File

@ -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

View 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)