summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_expr.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-09-17 21:08:33 +0100
committerBram Moolenaar <Bram@vim.org>2022-09-17 21:08:33 +0100
commit73e28dcc6125f616cf1f2d56443d22428a79e434 (patch)
treebc26b3d1bb2e1675b7dae14b6c9cda1cd42c90d6 /src/testdir/test_expr.vim
parent1c3dd8ddcba63c1af5112e567215b3cec2de11d0 (diff)
patch 9.0.0491: no good reason to build without the float featurev9.0.0491
Problem: No good reason to build without the float feature. Solution: Remove configure check for float and "#ifdef FEAT_FLOAT".
Diffstat (limited to 'src/testdir/test_expr.vim')
-rw-r--r--src/testdir/test_expr.vim244
1 files changed, 115 insertions, 129 deletions
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index 3cd2a0d0da..8e2345d7f4 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -77,9 +77,7 @@ func Test_op_falsy()
call assert_equal(0z00, 0z00 ?? 456)
call assert_equal([1], [1] ?? 456)
call assert_equal({'one': 1}, {'one': 1} ?? 456)
- if has('float')
- call assert_equal(0.1, 0.1 ?? 456)
- endif
+ call assert_equal(0.1, 0.1 ?? 456)
call assert_equal(456, v:false ?? 456)
call assert_equal(456, 0 ?? 456)
@@ -87,9 +85,7 @@ func Test_op_falsy()
call assert_equal(456, 0z ?? 456)
call assert_equal(456, [] ?? 456)
call assert_equal(456, {} ?? 456)
- if has('float')
- call assert_equal(456, 0.0 ?? 456)
- endif
+ call assert_equal(456, 0.0 ?? 456)
END
call v9.CheckLegacyAndVim9Success(lines)
endfunc
@@ -200,10 +196,8 @@ func Test_compare_with_null()
call assert_false(s:value == v:null)
let s:value = 0
call assert_true(s:value == v:null)
- if has('float')
- let s:value = 0.0
- call assert_true(s:value == v:null)
- endif
+ let s:value = 0.0
+ call assert_true(s:value == v:null)
let s:value = ''
call assert_false(s:value == v:null)
let s:value = 0z
@@ -467,116 +461,114 @@ func Test_printf_misc()
endfunc
func Test_printf_float()
- if has('float')
- let lines =<< trim END
- call assert_equal('1.000000', printf('%f', 1))
- call assert_equal('1.230000', printf('%f', 1.23))
- call assert_equal('1.230000', printf('%F', 1.23))
- call assert_equal('9999999.9', printf('%g', 9999999.9))
- call assert_equal('9999999.9', printf('%G', 9999999.9))
- call assert_equal('1.00000001e7', printf('%.8g', 10000000.1))
- call assert_equal('1.00000001E7', printf('%.8G', 10000000.1))
- call assert_equal('1.230000e+00', printf('%e', 1.23))
- call assert_equal('1.230000E+00', printf('%E', 1.23))
- call assert_equal('1.200000e-02', printf('%e', 0.012))
- call assert_equal('-1.200000e-02', printf('%e', -0.012))
- call assert_equal('0.33', printf('%.2f', 1.0 / 3.0))
- call assert_equal(' 0.33', printf('%6.2f', 1.0 / 3.0))
- call assert_equal(' -0.33', printf('%6.2f', -1.0 / 3.0))
- call assert_equal('000.33', printf('%06.2f', 1.0 / 3.0))
- call assert_equal('-00.33', printf('%06.2f', -1.0 / 3.0))
- call assert_equal('-00.33', printf('%+06.2f', -1.0 / 3.0))
- call assert_equal('+00.33', printf('%+06.2f', 1.0 / 3.0))
- call assert_equal(' 00.33', printf('% 06.2f', 1.0 / 3.0))
- call assert_equal('000.33', printf('%06.2g', 1.0 / 3.0))
- call assert_equal('-00.33', printf('%06.2g', -1.0 / 3.0))
- call assert_equal('0.33', printf('%3.2f', 1.0 / 3.0))
- call assert_equal('003.33e-01', printf('%010.2e', 1.0 / 3.0))
- call assert_equal(' 03.33e-01', printf('% 010.2e', 1.0 / 3.0))
- call assert_equal('+03.33e-01', printf('%+010.2e', 1.0 / 3.0))
- call assert_equal('-03.33e-01', printf('%010.2e', -1.0 / 3.0))
-
- #" When precision is 0, the dot should be omitted.
- call assert_equal(' 2', printf('%3.f', 7.0 / 3.0))
- call assert_equal(' 2', printf('%3.g', 7.0 / 3.0))
- call assert_equal(' 2e+00', printf('%7.e', 7.0 / 3.0))
-
- #" Float zero can be signed.
- call assert_equal('+0.000000', printf('%+f', 0.0))
- call assert_equal('0.000000', printf('%f', 1.0 / (1.0 / 0.0)))
- call assert_equal('-0.000000', printf('%f', 1.0 / (-1.0 / 0.0)))
- call assert_equal('0.0', printf('%s', 1.0 / (1.0 / 0.0)))
- call assert_equal('-0.0', printf('%s', 1.0 / (-1.0 / 0.0)))
- call assert_equal('0.0', printf('%S', 1.0 / (1.0 / 0.0)))
- call assert_equal('-0.0', printf('%S', 1.0 / (-1.0 / 0.0)))
-
- #" Float infinity can be signed.
- call assert_equal('inf', printf('%f', 1.0 / 0.0))
- call assert_equal('-inf', printf('%f', -1.0 / 0.0))
- call assert_equal('inf', printf('%g', 1.0 / 0.0))
- call assert_equal('-inf', printf('%g', -1.0 / 0.0))
- call assert_equal('inf', printf('%e', 1.0 / 0.0))
- call assert_equal('-inf', printf('%e', -1.0 / 0.0))
- call assert_equal('INF', printf('%F', 1.0 / 0.0))
- call assert_equal('-INF', printf('%F', -1.0 / 0.0))
- call assert_equal('INF', printf('%E', 1.0 / 0.0))
- call assert_equal('-INF', printf('%E', -1.0 / 0.0))
- call assert_equal('INF', printf('%E', 1.0 / 0.0))
- call assert_equal('-INF', printf('%G', -1.0 / 0.0))
- call assert_equal('+inf', printf('%+f', 1.0 / 0.0))
- call assert_equal('-inf', printf('%+f', -1.0 / 0.0))
- call assert_equal(' inf', printf('% f', 1.0 / 0.0))
- call assert_equal(' inf', printf('%6f', 1.0 / 0.0))
- call assert_equal(' -inf', printf('%6f', -1.0 / 0.0))
- call assert_equal(' inf', printf('%6g', 1.0 / 0.0))
- call assert_equal(' -inf', printf('%6g', -1.0 / 0.0))
- call assert_equal(' +inf', printf('%+6f', 1.0 / 0.0))
- call assert_equal(' inf', printf('% 6f', 1.0 / 0.0))
- call assert_equal(' +inf', printf('%+06f', 1.0 / 0.0))
- call assert_equal('inf ', printf('%-6f', 1.0 / 0.0))
- call assert_equal('-inf ', printf('%-6f', -1.0 / 0.0))
- call assert_equal('+inf ', printf('%-+6f', 1.0 / 0.0))
- call assert_equal(' inf ', printf('%- 6f', 1.0 / 0.0))
- call assert_equal('-INF ', printf('%-6F', -1.0 / 0.0))
- call assert_equal('+INF ', printf('%-+6F', 1.0 / 0.0))
- call assert_equal(' INF ', printf('%- 6F', 1.0 / 0.0))
- call assert_equal('INF ', printf('%-6G', 1.0 / 0.0))
- call assert_equal('-INF ', printf('%-6G', -1.0 / 0.0))
- call assert_equal('INF ', printf('%-6E', 1.0 / 0.0))
- call assert_equal('-INF ', printf('%-6E', -1.0 / 0.0))
- call assert_equal('inf', printf('%s', 1.0 / 0.0))
- call assert_equal('-inf', printf('%s', -1.0 / 0.0))
-
- #" Test special case where max precision is truncated at 340.
- call assert_equal('1.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', printf('%.330f', 1.0))
- call assert_equal('1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', printf('%.340f', 1.0))
- call assert_equal('1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', printf('%.350f', 1.0))
-
- #" Float nan (not a number) has no sign.
- call assert_equal('nan', printf('%f', sqrt(-1.0)))
- call assert_equal('nan', printf('%f', 0.0 / 0.0))
- call assert_equal('nan', printf('%f', -0.0 / 0.0))
- call assert_equal('nan', printf('%g', 0.0 / 0.0))
- call assert_equal('nan', printf('%e', 0.0 / 0.0))
- call assert_equal('NAN', printf('%F', 0.0 / 0.0))
- call assert_equal('NAN', printf('%G', 0.0 / 0.0))
- call assert_equal('NAN', printf('%E', 0.0 / 0.0))
- call assert_equal('NAN', printf('%F', -0.0 / 0.0))
- call assert_equal('NAN', printf('%G', -0.0 / 0.0))
- call assert_equal('NAN', printf('%E', -0.0 / 0.0))
- call assert_equal(' nan', printf('%6f', 0.0 / 0.0))
- call assert_equal(' nan', printf('%06f', 0.0 / 0.0))
- call assert_equal('nan ', printf('%-6f', 0.0 / 0.0))
- call assert_equal('nan ', printf('%- 6f', 0.0 / 0.0))
- call assert_equal('nan', printf('%s', 0.0 / 0.0))
- call assert_equal('nan', printf('%s', -0.0 / 0.0))
- call assert_equal('nan', printf('%S', 0.0 / 0.0))
- call assert_equal('nan', printf('%S', -0.0 / 0.0))
- END
- call v9.CheckLegacyAndVim9Success(lines)
-
- call v9.CheckLegacyAndVim9Failure(['echo printf("%f", "a")'], 'E807:')
- endif
+ let lines =<< trim END
+ call assert_equal('1.000000', printf('%f', 1))
+ call assert_equal('1.230000', printf('%f', 1.23))
+ call assert_equal('1.230000', printf('%F', 1.23))
+ call assert_equal('9999999.9', printf('%g', 9999999.9))
+ call assert_equal('9999999.9', printf('%G', 9999999.9))
+ call assert_equal('1.00000001e7', printf('%.8g', 10000000.1))
+ call assert_equal('1.00000001E7', printf('%.8G', 10000000.1))
+ call assert_equal('1.230000e+00', printf('%e', 1.23))
+ call assert_equal('1.230000E+00', printf('%E', 1.23))
+ call assert_equal('1.200000e-02', printf('%e', 0.012))
+ call assert_equal('-1.200000e-02', printf('%e', -0.012))
+ call assert_equal('0.33', printf('%.2f', 1.0 / 3.0))
+ call assert_equal(' 0.33', printf('%6.2f', 1.0 / 3.0))
+ call assert_equal(' -0.33', printf('%6.2f', -1.0 / 3.0))
+ call assert_equal('000.33', printf('%06.2f', 1.0 / 3.0))
+ call assert_equal('-00.33', printf('%06.2f', -1.0 / 3.0))
+ call assert_equal('-00.33', printf('%+06.2f', -1.0 / 3.0))
+ call assert_equal('+00.33', printf('%+06.2f', 1.0 / 3.0))
+ call assert_equal(' 00.33', printf('% 06.2f', 1.0 / 3.0))
+ call assert_equal('000.33', printf('%06.2g', 1.0 / 3.0))
+ call assert_equal('-00.33', printf('%06.2g', -1.0 / 3.0))
+ call assert_equal('0.33', printf('%3.2f', 1.0 / 3.0))
+ call assert_equal('003.33e-01', printf('%010.2e', 1.0 / 3.0))
+ call assert_equal(' 03.33e-01', printf('% 010.2e', 1.0 / 3.0))
+ call assert_equal('+03.33e-01', printf('%+010.2e', 1.0 / 3.0))
+ call assert_equal('-03.33e-01', printf('%010.2e', -1.0 / 3.0))
+
+ #" When precision is 0, the dot should be omitted.
+ call assert_equal(' 2', printf('%3.f', 7.0 / 3.0))
+ call assert_equal(' 2', printf('%3.g', 7.0 / 3.0))
+ call assert_equal(' 2e+00', printf('%7.e', 7.0 / 3.0))
+
+ #" Float zero can be signed.
+ call assert_equal('+0.000000', printf('%+f', 0.0))
+ call assert_equal('0.000000', printf('%f', 1.0 / (1.0 / 0.0)))
+ call assert_equal('-0.000000', printf('%f', 1.0 / (-1.0 / 0.0)))
+ call assert_equal('0.0', printf('%s', 1.0 / (1.0 / 0.0)))
+ call assert_equal('-0.0', printf('%s', 1.0 / (-1.0 / 0.0)))
+ call assert_equal('0.0', printf('%S', 1.0 / (1.0 / 0.0)))
+ call assert_equal('-0.0', printf('%S', 1.0 / (-1.0 / 0.0)))
+
+ #" Float infinity can be signed.
+ call assert_equal('inf', printf('%f', 1.0 / 0.0))
+ call assert_equal('-inf', printf('%f', -1.0 / 0.0))
+ call assert_equal('inf', printf('%g', 1.0 / 0.0))
+ call assert_equal('-inf', printf('%g', -1.0 / 0.0))
+ call assert_equal('inf', printf('%e', 1.0 / 0.0))
+ call assert_equal('-inf', printf('%e', -1.0 / 0.0))
+ call assert_equal('INF', printf('%F', 1.0 / 0.0))
+ call assert_equal('-INF', printf('%F', -1.0 / 0.0))
+ call assert_equal('INF', printf('%E', 1.0 / 0.0))
+ call assert_equal('-INF', printf('%E', -1.0 / 0.0))
+ call assert_equal('INF', printf('%E', 1.0 / 0.0))
+ call assert_equal('-INF', printf('%G', -1.0 / 0.0))
+ call assert_equal('+inf', printf('%+f', 1.0 / 0.0))
+ call assert_equal('-inf', printf('%+f', -1.0 / 0.0))
+ call assert_equal(' inf', printf('% f', 1.0 / 0.0))
+ call assert_equal(' inf', printf('%6f', 1.0 / 0.0))
+ call assert_equal(' -inf', printf('%6f', -1.0 / 0.0))
+ call assert_equal(' inf', printf('%6g', 1.0 / 0.0))
+ call assert_equal(' -inf', printf('%6g', -1.0 / 0.0))
+ call assert_equal(' +inf', printf('%+6f', 1.0 / 0.0))
+ call assert_equal(' inf', printf('% 6f', 1.0 / 0.0))
+ call assert_equal(' +inf', printf('%+06f', 1.0 / 0.0))
+ call assert_equal('inf ', printf('%-6f', 1.0 / 0.0))
+ call assert_equal('-inf ', printf('%-6f', -1.0 / 0.0))
+ call assert_equal('+inf ', printf('%-+6f', 1.0 / 0.0))
+ call assert_equal(' inf ', printf('%- 6f', 1.0 / 0.0))
+ call assert_equal('-INF ', printf('%-6F', -1.0 / 0.0))
+ call assert_equal('+INF ', printf('%-+6F', 1.0 / 0.0))
+ call assert_equal(' INF ', printf('%- 6F', 1.0 / 0.0))
+ call assert_equal('INF ', printf('%-6G', 1.0 / 0.0))
+ call assert_equal('-INF ', printf('%-6G', -1.0 / 0.0))
+ call assert_equal('INF ', printf('%-6E', 1.0 / 0.0))
+ call assert_equal('-INF ', printf('%-6E', -1.0 / 0.0))
+ call assert_equal('inf', printf('%s', 1.0 / 0.0))
+ call assert_equal('-inf', printf('%s', -1.0 / 0.0))
+
+ #" Test special case where max precision is truncated at 340.
+ call assert_equal('1.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', printf('%.330f', 1.0))
+ call assert_equal('1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', printf('%.340f', 1.0))
+ call assert_equal('1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', printf('%.350f', 1.0))
+
+ #" Float nan (not a number) has no sign.
+ call assert_equal('nan', printf('%f', sqrt(-1.0)))
+ call assert_equal('nan', printf('%f', 0.0 / 0.0))
+ call assert_equal('nan', printf('%f', -0.0 / 0.0))
+ call assert_equal('nan', printf('%g', 0.0 / 0.0))
+ call assert_equal('nan', printf('%e', 0.0 / 0.0))
+ call assert_equal('NAN', printf('%F', 0.0 / 0.0))
+ call assert_equal('NAN', printf('%G', 0.0 / 0.0))
+ call assert_equal('NAN', printf('%E', 0.0 / 0.0))
+ call assert_equal('NAN', printf('%F', -0.0 / 0.0))
+ call assert_equal('NAN', printf('%G', -0.0 / 0.0))
+ call assert_equal('NAN', printf('%E', -0.0 / 0.0))
+ call assert_equal(' nan', printf('%6f', 0.0 / 0.0))
+ call assert_equal(' nan', printf('%06f', 0.0 / 0.0))
+ call assert_equal('nan ', printf('%-6f', 0.0 / 0.0))
+ call assert_equal('nan ', printf('%- 6f', 0.0 / 0.0))
+ call assert_equal('nan', printf('%s', 0.0 / 0.0))
+ call assert_equal('nan', printf('%s', -0.0 / 0.0))
+ call assert_equal('nan', printf('%S', 0.0 / 0.0))
+ call assert_equal('nan', printf('%S', -0.0 / 0.0))
+ END
+ call v9.CheckLegacyAndVim9Success(lines)
+
+ call v9.CheckLegacyAndVim9Failure(['echo printf("%f", "a")'], 'E807:')
endfunc
func Test_printf_errors()
@@ -585,10 +577,8 @@ func Test_printf_errors()
call v9.CheckLegacyAndVim9Failure(['echo printf("%d", 1, 2)'], 'E767:')
call v9.CheckLegacyAndVim9Failure(['echo printf("%*d", 1)'], 'E766:')
call v9.CheckLegacyAndVim9Failure(['echo printf("%s")'], 'E766:')
- if has('float')
- call v9.CheckLegacyAndVim9Failure(['echo printf("%d", 1.2)'], 'E805:')
- call v9.CheckLegacyAndVim9Failure(['echo printf("%f")'], 'E766:')
- endif
+ call v9.CheckLegacyAndVim9Failure(['echo printf("%d", 1.2)'], 'E805:')
+ call v9.CheckLegacyAndVim9Failure(['echo printf("%f")'], 'E766:')
endfunc
func Test_printf_64bit()
@@ -607,9 +597,7 @@ func Test_printf_spec_s()
call assert_equal("abcdefgi", printf('%s', "abcdefgi"))
#" float
- if has('float')
- call assert_equal("1.23", printf('%s', 1.23))
- endif
+ call assert_equal("1.23", printf('%s', 1.23))
#" list
VAR lvalue = [1, 'two', ['three', 4]]
@@ -878,8 +866,6 @@ endfunc
" Test for float value comparison
func Test_float_compare()
- CheckFeature float
-
let lines =<< trim END
call assert_true(1.2 == 1.2)
call assert_true(1.0 != 1.2)