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: