| Test for floating point and logical operators. |
| |
| STARTTEST |
| :so small.vim |
| :if !has("float") |
| : e! test.ok |
| : wq! test.out |
| :endif |
| :" |
| :$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: |