1Test for floating point.
2
3STARTTEST
4:so small.vim
5:if !has("float")
6:  e! test.ok
7:  wq! test.out
8:endif
9:"
10:$put =printf('%f', 123.456)
11:$put =printf('%e', 123.456)
12:$put =printf('%g', 123.456)
13:" check we don't crash on division by zero
14:echo 1.0 / 0.0
15:$put ='+='
16:let v = 1.234
17:let v += 6.543
18:$put =printf('%g', v)
19:let v = 1.234
20:let v += 5
21:$put =printf('%g', v)
22:let a = 5
23:let a += 3.333
24:$put =string(a)
25:$put ='=='
26:let v = 1.234
27:$put =v == 1.234
28:$put =v == 1.2341
29:$put ='add-subtract'
30:$put =printf('%g', 4 + 1.234)
31:$put =printf('%g', 1.234 - 8)
32:$put ='mult-div'
33:$put =printf('%g', 4 * 1.234)
34:$put =printf('%g', 4.0 / 1234)
35:$put ='dict'
36:$put =string({'x': 1.234, 'y': -2.0e20})
37:$put ='list'
38:$put =string([-123.4, 2.0e-20])
39:$put ='abs'
40:$put =printf('%d', abs(1456))
41:$put =printf('%d', abs(-4))
42:$put =printf('%d', abs([1, 2, 3]))
43:$put =printf('%g', abs(14.56))
44:$put =printf('%g', abs(-54.32))
45:$put ='ceil'
46:$put =printf('%g', ceil(1.456))
47:$put =printf('%g', ceil(-5.456))
48:$put =printf('%g', ceil(-4.000))
49:$put ='floor'
50:$put =printf('%g', floor(1.856))
51:$put =printf('%g', floor(-5.456))
52:$put =printf('%g', floor(4.0))
53:$put ='log10'
54:$put =printf('%g', log10(1000))
55:$put =printf('%g', log10(0.01000))
56:$put ='pow'
57:$put =printf('%g', pow(3, 3.0))
58:$put =printf('%g', pow(2, 16))
59:$put ='round'
60:$put =printf('%g', round(0.456))
61:$put =printf('%g', round(4.5))
62:$put =printf('%g', round(-4.50))
63:$put ='sqrt'
64:$put =printf('%g', sqrt(100))
65:echo sqrt(-4.01)
66:$put ='str2float'
67:$put =printf('%g', str2float('1e40'))
68:$put ='trunc'
69:$put =printf('%g', trunc(1.456))
70:$put =printf('%g', trunc(-5.456))
71:$put =printf('%g', trunc(4.000))
72:$put ='float2nr'
73:$put =float2nr(123.456)
74:$put =float2nr(-123.456)
75:/^Results/,$wq! test.out
76ENDTEST
77
78Results of test65:
79