1453b576eSBram Moolenaar" test float functions 2453b576eSBram Moolenaar 3*b46fecd3SBram Moolenaarsource check.vim 4*b46fecd3SBram MoolenaarCheckFeature float 5453b576eSBram Moolenaar 6453b576eSBram Moolenaarfunc Test_abs() 762473611SBram Moolenaar call assert_equal('1.23', string(abs(1.23))) 862473611SBram Moolenaar call assert_equal('1.23', string(abs(-1.23))) 962473611SBram Moolenaar call assert_equal('0.0', string(abs(0.0))) 1062473611SBram Moolenaar call assert_equal('0.0', string(abs(1.0/(1.0/0.0)))) 1162473611SBram Moolenaar call assert_equal('0.0', string(abs(-1.0/(1.0/0.0)))) 1262473611SBram Moolenaar call assert_equal('inf', string(abs(1.0/0.0))) 1362473611SBram Moolenaar call assert_equal('inf', string(abs(-1.0/0.0))) 1462473611SBram Moolenaar call assert_equal('nan', string(abs(0.0/0.0))) 1517aca707SBram Moolenaar call assert_equal('12', string(abs('12abc'))) 1687200413SBram Moolenaar call assert_equal('12', string(abs('-12abc'))) 1787200413SBram Moolenaar call assert_fails("call abs([])", 'E745:') 1887200413SBram Moolenaar call assert_fails("call abs({})", 'E728:') 1987200413SBram Moolenaar call assert_fails("call abs(function('string'))", 'E703:') 20453b576eSBram Moolenaarendfunc 21453b576eSBram Moolenaar 22453b576eSBram Moolenaarfunc Test_sqrt() 2362473611SBram Moolenaar call assert_equal('0.0', string(sqrt(0.0))) 2462473611SBram Moolenaar call assert_equal('1.414214', string(sqrt(2.0))) 2562473611SBram Moolenaar call assert_equal('inf', string(sqrt(1.0/0.0))) 2662473611SBram Moolenaar call assert_equal('nan', string(sqrt(-1.0))) 2762473611SBram Moolenaar call assert_equal('nan', string(sqrt(0.0/0.0))) 2887200413SBram Moolenaar call assert_fails('call sqrt("")', 'E808:') 29453b576eSBram Moolenaarendfunc 30453b576eSBram Moolenaar 31453b576eSBram Moolenaarfunc Test_log() 3262473611SBram Moolenaar call assert_equal('0.0', string(log(1.0))) 3362473611SBram Moolenaar call assert_equal('-0.693147', string(log(0.5))) 3462473611SBram Moolenaar call assert_equal('-inf', string(log(0.0))) 3562473611SBram Moolenaar call assert_equal('nan', string(log(-1.0))) 3662473611SBram Moolenaar call assert_equal('inf', string(log(1.0/0.0))) 3762473611SBram Moolenaar call assert_equal('nan', string(log(0.0/0.0))) 3887200413SBram Moolenaar call assert_fails('call log("")', 'E808:') 39453b576eSBram Moolenaarendfunc 40453b576eSBram Moolenaar 41453b576eSBram Moolenaarfunc Test_log10() 4262473611SBram Moolenaar call assert_equal('0.0', string(log10(1.0))) 4362473611SBram Moolenaar call assert_equal('2.0', string(log10(100.0))) 4462473611SBram Moolenaar call assert_equal('2.079181', string(log10(120.0))) 4562473611SBram Moolenaar call assert_equal('-inf', string(log10(0.0))) 4662473611SBram Moolenaar call assert_equal('nan', string(log10(-1.0))) 4762473611SBram Moolenaar call assert_equal('inf', string(log10(1.0/0.0))) 4862473611SBram Moolenaar call assert_equal('nan', string(log10(0.0/0.0))) 4987200413SBram Moolenaar call assert_fails('call log10("")', 'E808:') 50453b576eSBram Moolenaarendfunc 51453b576eSBram Moolenaar 52453b576eSBram Moolenaarfunc Test_exp() 5362473611SBram Moolenaar call assert_equal('1.0', string(exp(0.0))) 5462473611SBram Moolenaar call assert_equal('7.389056', string(exp(2.0))) 5562473611SBram Moolenaar call assert_equal('0.367879', string(exp(-1.0))) 5662473611SBram Moolenaar call assert_equal('inf', string(exp(1.0/0.0))) 5762473611SBram Moolenaar call assert_equal('0.0', string(exp(-1.0/0.0))) 5862473611SBram Moolenaar call assert_equal('nan', string(exp(0.0/0.0))) 5987200413SBram Moolenaar call assert_fails('call exp("")', 'E808:') 60453b576eSBram Moolenaarendfunc 61453b576eSBram Moolenaar 62453b576eSBram Moolenaarfunc Test_sin() 6362473611SBram Moolenaar call assert_equal('0.0', string(sin(0.0))) 6462473611SBram Moolenaar call assert_equal('0.841471', string(sin(1.0))) 6562473611SBram Moolenaar call assert_equal('-0.479426', string(sin(-0.5))) 6662473611SBram Moolenaar call assert_equal('nan', string(sin(0.0/0.0))) 6762473611SBram Moolenaar call assert_equal('nan', string(sin(1.0/0.0))) 6862473611SBram Moolenaar call assert_equal('0.0', string(sin(1.0/(1.0/0.0)))) 6962473611SBram Moolenaar call assert_equal('-0.0', string(sin(-1.0/(1.0/0.0)))) 7087200413SBram Moolenaar call assert_fails('call sin("")', 'E808:') 71453b576eSBram Moolenaarendfunc 72453b576eSBram Moolenaar 73453b576eSBram Moolenaarfunc Test_asin() 7462473611SBram Moolenaar call assert_equal('0.0', string(asin(0.0))) 7562473611SBram Moolenaar call assert_equal('1.570796', string(asin(1.0))) 7662473611SBram Moolenaar call assert_equal('-0.523599', string(asin(-0.5))) 7762473611SBram Moolenaar call assert_equal('nan', string(asin(1.1))) 7862473611SBram Moolenaar call assert_equal('nan', string(asin(1.0/0.0))) 7962473611SBram Moolenaar call assert_equal('nan', string(asin(0.0/0.0))) 8087200413SBram Moolenaar call assert_fails('call asin("")', 'E808:') 81453b576eSBram Moolenaarendfunc 82453b576eSBram Moolenaar 83453b576eSBram Moolenaarfunc Test_sinh() 8462473611SBram Moolenaar call assert_equal('0.0', string(sinh(0.0))) 8562473611SBram Moolenaar call assert_equal('0.521095', string(sinh(0.5))) 8662473611SBram Moolenaar call assert_equal('-1.026517', string(sinh(-0.9))) 8762473611SBram Moolenaar call assert_equal('inf', string(sinh(1.0/0.0))) 8862473611SBram Moolenaar call assert_equal('-inf', string(sinh(-1.0/0.0))) 8962473611SBram Moolenaar call assert_equal('nan', string(sinh(0.0/0.0))) 9087200413SBram Moolenaar call assert_fails('call sinh("")', 'E808:') 91453b576eSBram Moolenaarendfunc 92453b576eSBram Moolenaar 93453b576eSBram Moolenaarfunc Test_cos() 9462473611SBram Moolenaar call assert_equal('1.0', string(cos(0.0))) 9562473611SBram Moolenaar call assert_equal('0.540302', string(cos(1.0))) 9662473611SBram Moolenaar call assert_equal('0.877583', string(cos(-0.5))) 9762473611SBram Moolenaar call assert_equal('nan', string(cos(0.0/0.0))) 9862473611SBram Moolenaar call assert_equal('nan', string(cos(1.0/0.0))) 9987200413SBram Moolenaar call assert_fails('call cos("")', 'E808:') 100453b576eSBram Moolenaarendfunc 101453b576eSBram Moolenaar 102453b576eSBram Moolenaarfunc Test_acos() 10362473611SBram Moolenaar call assert_equal('1.570796', string(acos(0.0))) 10462473611SBram Moolenaar call assert_equal('0.0', string(acos(1.0))) 10562473611SBram Moolenaar call assert_equal('3.141593', string(acos(-1.0))) 10662473611SBram Moolenaar call assert_equal('2.094395', string(acos(-0.5))) 10762473611SBram Moolenaar call assert_equal('nan', string(acos(1.1))) 10862473611SBram Moolenaar call assert_equal('nan', string(acos(1.0/0.0))) 10962473611SBram Moolenaar call assert_equal('nan', string(acos(0.0/0.0))) 11087200413SBram Moolenaar call assert_fails('call acos("")', 'E808:') 111453b576eSBram Moolenaarendfunc 112453b576eSBram Moolenaar 113453b576eSBram Moolenaarfunc Test_cosh() 11462473611SBram Moolenaar call assert_equal('1.0', string(cosh(0.0))) 11562473611SBram Moolenaar call assert_equal('1.127626', string(cosh(0.5))) 11662473611SBram Moolenaar call assert_equal('inf', string(cosh(1.0/0.0))) 11762473611SBram Moolenaar call assert_equal('inf', string(cosh(-1.0/0.0))) 11862473611SBram Moolenaar call assert_equal('nan', string(cosh(0.0/0.0))) 11987200413SBram Moolenaar call assert_fails('call cosh("")', 'E808:') 120453b576eSBram Moolenaarendfunc 121453b576eSBram Moolenaar 122453b576eSBram Moolenaarfunc Test_tan() 12362473611SBram Moolenaar call assert_equal('0.0', string(tan(0.0))) 12462473611SBram Moolenaar call assert_equal('0.546302', string(tan(0.5))) 12562473611SBram Moolenaar call assert_equal('-0.546302', string(tan(-0.5))) 12662473611SBram Moolenaar call assert_equal('nan', string(tan(1.0/0.0))) 12762473611SBram Moolenaar call assert_equal('nan', string(cos(0.0/0.0))) 12862473611SBram Moolenaar call assert_equal('0.0', string(tan(1.0/(1.0/0.0)))) 12962473611SBram Moolenaar call assert_equal('-0.0', string(tan(-1.0/(1.0/0.0)))) 13087200413SBram Moolenaar call assert_fails('call tan("")', 'E808:') 131453b576eSBram Moolenaarendfunc 132453b576eSBram Moolenaar 133453b576eSBram Moolenaarfunc Test_atan() 13462473611SBram Moolenaar call assert_equal('0.0', string(atan(0.0))) 13562473611SBram Moolenaar call assert_equal('0.463648', string(atan(0.5))) 13662473611SBram Moolenaar call assert_equal('-0.785398', string(atan(-1.0))) 13762473611SBram Moolenaar call assert_equal('1.570796', string(atan(1.0/0.0))) 13862473611SBram Moolenaar call assert_equal('-1.570796', string(atan(-1.0/0.0))) 13962473611SBram Moolenaar call assert_equal('nan', string(atan(0.0/0.0))) 14087200413SBram Moolenaar call assert_fails('call atan("")', 'E808:') 141453b576eSBram Moolenaarendfunc 142453b576eSBram Moolenaar 143453b576eSBram Moolenaarfunc Test_atan2() 14462473611SBram Moolenaar call assert_equal('-2.356194', string(atan2(-1, -1))) 14562473611SBram Moolenaar call assert_equal('2.356194', string(atan2(1, -1))) 14662473611SBram Moolenaar call assert_equal('0.0', string(atan2(1.0, 1.0/0.0))) 14762473611SBram Moolenaar call assert_equal('1.570796', string(atan2(1.0/0.0, 1.0))) 14862473611SBram Moolenaar call assert_equal('nan', string(atan2(0.0/0.0, 1.0))) 14987200413SBram Moolenaar call assert_fails('call atan2("", -1)', 'E808:') 15087200413SBram Moolenaar call assert_fails('call atan2(-1, "")', 'E808:') 151453b576eSBram Moolenaarendfunc 152453b576eSBram Moolenaar 153453b576eSBram Moolenaarfunc Test_tanh() 15462473611SBram Moolenaar call assert_equal('0.0', string(tanh(0.0))) 15562473611SBram Moolenaar call assert_equal('0.462117', string(tanh(0.5))) 15662473611SBram Moolenaar call assert_equal('-0.761594', string(tanh(-1.0))) 15762473611SBram Moolenaar call assert_equal('1.0', string(tanh(1.0/0.0))) 15862473611SBram Moolenaar call assert_equal('-1.0', string(tanh(-1.0/0.0))) 15962473611SBram Moolenaar call assert_equal('nan', string(tanh(0.0/0.0))) 16087200413SBram Moolenaar call assert_fails('call tanh("")', 'E808:') 161453b576eSBram Moolenaarendfunc 162453b576eSBram Moolenaar 163453b576eSBram Moolenaarfunc Test_fmod() 16462473611SBram Moolenaar call assert_equal('0.13', string(fmod(12.33, 1.22))) 16562473611SBram Moolenaar call assert_equal('-0.13', string(fmod(-12.33, 1.22))) 16662473611SBram Moolenaar call assert_equal('nan', string(fmod(1.0/0.0, 1.0))) 16762473611SBram Moolenaar " On Windows we get "nan" instead of 1.0, accept both. 16862473611SBram Moolenaar let res = string(fmod(1.0, 1.0/0.0)) 16962473611SBram Moolenaar if res != 'nan' 17062473611SBram Moolenaar call assert_equal('1.0', res) 17162473611SBram Moolenaar endif 17262473611SBram Moolenaar call assert_equal('nan', string(fmod(1.0, 0.0))) 17387200413SBram Moolenaar call assert_fails("call fmod('', 1.22)", 'E808:') 17487200413SBram Moolenaar call assert_fails("call fmod(12.33, '')", 'E808:') 175453b576eSBram Moolenaarendfunc 176453b576eSBram Moolenaar 177453b576eSBram Moolenaarfunc Test_pow() 17862473611SBram Moolenaar call assert_equal('1.0', string(pow(0.0, 0.0))) 17962473611SBram Moolenaar call assert_equal('8.0', string(pow(2.0, 3.0))) 18062473611SBram Moolenaar call assert_equal('nan', string(pow(2.0, 0.0/0.0))) 18162473611SBram Moolenaar call assert_equal('nan', string(pow(0.0/0.0, 3.0))) 18262473611SBram Moolenaar call assert_equal('nan', string(pow(0.0/0.0, 3.0))) 18362473611SBram Moolenaar call assert_equal('inf', string(pow(2.0, 1.0/0.0))) 18462473611SBram Moolenaar call assert_equal('inf', string(pow(1.0/0.0, 3.0))) 18587200413SBram Moolenaar call assert_fails("call pow('', 2.0)", 'E808:') 18687200413SBram Moolenaar call assert_fails("call pow(2.0, '')", 'E808:') 187453b576eSBram Moolenaarendfunc 188453b576eSBram Moolenaar 189453b576eSBram Moolenaarfunc Test_str2float() 19062473611SBram Moolenaar call assert_equal('1.0', string(str2float('1'))) 19108243d26SBram Moolenaar call assert_equal('1.0', string(str2float(' 1 '))) 19208243d26SBram Moolenaar call assert_equal('1.0', string(str2float(' 1.0 '))) 19362473611SBram Moolenaar call assert_equal('1.23', string(str2float('1.23'))) 19462473611SBram Moolenaar call assert_equal('1.23', string(str2float('1.23abc'))) 19562473611SBram Moolenaar call assert_equal('1.0e40', string(str2float('1e40'))) 19687200413SBram Moolenaar call assert_equal('-1.23', string(str2float('-1.23'))) 19787200413SBram Moolenaar call assert_equal('1.23', string(str2float(' + 1.23 '))) 19808243d26SBram Moolenaar 19908243d26SBram Moolenaar call assert_equal('1.0', string(str2float('+1'))) 20008243d26SBram Moolenaar call assert_equal('1.0', string(str2float('+1'))) 20108243d26SBram Moolenaar call assert_equal('1.0', string(str2float(' +1 '))) 20208243d26SBram Moolenaar call assert_equal('1.0', string(str2float(' + 1 '))) 20308243d26SBram Moolenaar 20408243d26SBram Moolenaar call assert_equal('-1.0', string(str2float('-1'))) 20508243d26SBram Moolenaar call assert_equal('-1.0', string(str2float('-1'))) 20608243d26SBram Moolenaar call assert_equal('-1.0', string(str2float(' -1 '))) 20708243d26SBram Moolenaar call assert_equal('-1.0', string(str2float(' - 1 '))) 20808243d26SBram Moolenaar 20987200413SBram Moolenaar call assert_equal('0.0', string(str2float('+0.0'))) 21087200413SBram Moolenaar call assert_equal('-0.0', string(str2float('-0.0'))) 21162473611SBram Moolenaar call assert_equal('inf', string(str2float('1e1000'))) 21262473611SBram Moolenaar call assert_equal('inf', string(str2float('inf'))) 21362473611SBram Moolenaar call assert_equal('-inf', string(str2float('-inf'))) 21487200413SBram Moolenaar call assert_equal('inf', string(str2float('+inf'))) 21562473611SBram Moolenaar call assert_equal('inf', string(str2float('Inf'))) 21687200413SBram Moolenaar call assert_equal('inf', string(str2float(' +inf '))) 21762473611SBram Moolenaar call assert_equal('nan', string(str2float('nan'))) 21862473611SBram Moolenaar call assert_equal('nan', string(str2float('NaN'))) 21987200413SBram Moolenaar call assert_equal('nan', string(str2float(' nan '))) 22087200413SBram Moolenaar 22187200413SBram Moolenaar call assert_fails("call str2float(1.2)", 'E806:') 22287200413SBram Moolenaar call assert_fails("call str2float([])", 'E730:') 22387200413SBram Moolenaar call assert_fails("call str2float({})", 'E731:') 22487200413SBram Moolenaar call assert_fails("call str2float(function('string'))", 'E729:') 225453b576eSBram Moolenaarendfunc 226453b576eSBram Moolenaar 227863e80b4SBram Moolenaarfunc Test_float2nr() 228863e80b4SBram Moolenaar call assert_equal(1, float2nr(1.234)) 229863e80b4SBram Moolenaar call assert_equal(123, float2nr(1.234e2)) 230863e80b4SBram Moolenaar call assert_equal(12, float2nr(123.4e-1)) 231863e80b4SBram Moolenaar let max_number = 1/0 232863e80b4SBram Moolenaar let min_number = -max_number 233863e80b4SBram Moolenaar call assert_equal(max_number/2+1, float2nr(pow(2, 62))) 234863e80b4SBram Moolenaar call assert_equal(max_number, float2nr(pow(2, 63))) 235863e80b4SBram Moolenaar call assert_equal(max_number, float2nr(pow(2, 64))) 236863e80b4SBram Moolenaar call assert_equal(min_number/2-1, float2nr(-pow(2, 62))) 237863e80b4SBram Moolenaar call assert_equal(min_number, float2nr(-pow(2, 63))) 238863e80b4SBram Moolenaar call assert_equal(min_number, float2nr(-pow(2, 64))) 239863e80b4SBram Moolenaarendfunc 240863e80b4SBram Moolenaar 241453b576eSBram Moolenaarfunc Test_floor() 24262473611SBram Moolenaar call assert_equal('2.0', string(floor(2.0))) 24362473611SBram Moolenaar call assert_equal('2.0', string(floor(2.11))) 24462473611SBram Moolenaar call assert_equal('2.0', string(floor(2.99))) 24562473611SBram Moolenaar call assert_equal('-3.0', string(floor(-2.11))) 24662473611SBram Moolenaar call assert_equal('-3.0', string(floor(-2.99))) 24762473611SBram Moolenaar call assert_equal('nan', string(floor(0.0/0.0))) 24862473611SBram Moolenaar call assert_equal('inf', string(floor(1.0/0.0))) 24962473611SBram Moolenaar call assert_equal('-inf', string(floor(-1.0/0.0))) 25087200413SBram Moolenaar call assert_fails("call floor('')", 'E808:') 251453b576eSBram Moolenaarendfunc 252453b576eSBram Moolenaar 253453b576eSBram Moolenaarfunc Test_ceil() 25462473611SBram Moolenaar call assert_equal('2.0', string(ceil(2.0))) 25562473611SBram Moolenaar call assert_equal('3.0', string(ceil(2.11))) 25662473611SBram Moolenaar call assert_equal('3.0', string(ceil(2.99))) 25762473611SBram Moolenaar call assert_equal('-2.0', string(ceil(-2.11))) 25862473611SBram Moolenaar call assert_equal('-2.0', string(ceil(-2.99))) 25962473611SBram Moolenaar call assert_equal('nan', string(ceil(0.0/0.0))) 26062473611SBram Moolenaar call assert_equal('inf', string(ceil(1.0/0.0))) 26162473611SBram Moolenaar call assert_equal('-inf', string(ceil(-1.0/0.0))) 26287200413SBram Moolenaar call assert_fails("call ceil('')", 'E808:') 263453b576eSBram Moolenaarendfunc 264453b576eSBram Moolenaar 265453b576eSBram Moolenaarfunc Test_round() 26662473611SBram Moolenaar call assert_equal('2.0', string(round(2.1))) 26762473611SBram Moolenaar call assert_equal('3.0', string(round(2.5))) 26862473611SBram Moolenaar call assert_equal('3.0', string(round(2.9))) 26962473611SBram Moolenaar call assert_equal('-2.0', string(round(-2.1))) 27062473611SBram Moolenaar call assert_equal('-3.0', string(round(-2.5))) 27162473611SBram Moolenaar call assert_equal('-3.0', string(round(-2.9))) 27262473611SBram Moolenaar call assert_equal('nan', string(round(0.0/0.0))) 27362473611SBram Moolenaar call assert_equal('inf', string(round(1.0/0.0))) 27462473611SBram Moolenaar call assert_equal('-inf', string(round(-1.0/0.0))) 27587200413SBram Moolenaar call assert_fails("call round('')", 'E808:') 276453b576eSBram Moolenaarendfunc 277453b576eSBram Moolenaar 278453b576eSBram Moolenaarfunc Test_trunc() 27962473611SBram Moolenaar call assert_equal('2.0', string(trunc(2.1))) 28062473611SBram Moolenaar call assert_equal('2.0', string(trunc(2.5))) 28162473611SBram Moolenaar call assert_equal('2.0', string(trunc(2.9))) 28262473611SBram Moolenaar call assert_equal('-2.0', string(trunc(-2.1))) 28362473611SBram Moolenaar call assert_equal('-2.0', string(trunc(-2.5))) 28462473611SBram Moolenaar call assert_equal('-2.0', string(trunc(-2.9))) 28562473611SBram Moolenaar call assert_equal('nan', string(trunc(0.0/0.0))) 28662473611SBram Moolenaar call assert_equal('inf', string(trunc(1.0/0.0))) 28762473611SBram Moolenaar call assert_equal('-inf', string(trunc(-1.0/0.0))) 28887200413SBram Moolenaar call assert_fails("call trunc('')", 'E808:') 289453b576eSBram Moolenaarendfunc 290453b576eSBram Moolenaar 291fda1bff3SBram Moolenaarfunc Test_isinf() 292fda1bff3SBram Moolenaar call assert_equal(1, isinf(1.0/0.0)) 293fda1bff3SBram Moolenaar call assert_equal(-1, isinf(-1.0/0.0)) 294fda1bff3SBram Moolenaar call assert_false(isinf(1.0)) 295fda1bff3SBram Moolenaar call assert_false(isinf(0.0/0.0)) 296fda1bff3SBram Moolenaar call assert_false(isinf('a')) 297fda1bff3SBram Moolenaar call assert_false(isinf([])) 298fda1bff3SBram Moolenaar call assert_false(isinf({})) 299fda1bff3SBram Moolenaarendfunc 300fda1bff3SBram Moolenaar 301453b576eSBram Moolenaarfunc Test_isnan() 302fda1bff3SBram Moolenaar call assert_true(isnan(0.0/0.0)) 303fda1bff3SBram Moolenaar call assert_false(isnan(1.0)) 304fda1bff3SBram Moolenaar call assert_false(isnan(1.0/0.0)) 305fda1bff3SBram Moolenaar call assert_false(isnan(-1.0/0.0)) 306fda1bff3SBram Moolenaar call assert_false(isnan('a')) 307fda1bff3SBram Moolenaar call assert_false(isnan([])) 308fda1bff3SBram Moolenaar call assert_false(isnan({})) 309453b576eSBram Moolenaarendfunc 310863e80b4SBram Moolenaar 311863e80b4SBram Moolenaar" This was converted from test65 312863e80b4SBram Moolenaarfunc Test_float_misc() 313863e80b4SBram Moolenaar call assert_equal('123.456000', printf('%f', 123.456)) 314863e80b4SBram Moolenaar call assert_equal('1.234560e+02', printf('%e', 123.456)) 315863e80b4SBram Moolenaar call assert_equal('123.456', printf('%g', 123.456)) 316863e80b4SBram Moolenaar " += 317863e80b4SBram Moolenaar let v = 1.234 318863e80b4SBram Moolenaar let v += 6.543 319863e80b4SBram Moolenaar call assert_equal('7.777', printf('%g', v)) 320863e80b4SBram Moolenaar let v = 1.234 321863e80b4SBram Moolenaar let v += 5 322863e80b4SBram Moolenaar call assert_equal('6.234', printf('%g', v)) 323863e80b4SBram Moolenaar let v = 5 324863e80b4SBram Moolenaar let v += 3.333 325863e80b4SBram Moolenaar call assert_equal('8.333', string(v)) 326863e80b4SBram Moolenaar " == 327863e80b4SBram Moolenaar let v = 1.234 328863e80b4SBram Moolenaar call assert_true(v == 1.234) 329863e80b4SBram Moolenaar call assert_false(v == 1.2341) 330863e80b4SBram Moolenaar " add-subtract 331863e80b4SBram Moolenaar call assert_equal('5.234', printf('%g', 4 + 1.234)) 332863e80b4SBram Moolenaar call assert_equal('-6.766', printf('%g', 1.234 - 8)) 333863e80b4SBram Moolenaar " mult-div 334863e80b4SBram Moolenaar call assert_equal('4.936', printf('%g', 4 * 1.234)) 335863e80b4SBram Moolenaar call assert_equal('0.003241', printf('%g', 4.0 / 1234)) 336863e80b4SBram Moolenaar " dict 337863e80b4SBram Moolenaar call assert_equal("{'x': 1.234, 'y': -2.0e20}", string({'x': 1.234, 'y': -2.0e20})) 338863e80b4SBram Moolenaar " list 339863e80b4SBram Moolenaar call assert_equal('[-123.4, 2.0e-20]', string([-123.4, 2.0e-20])) 340863e80b4SBram Moolenaarendfunc 341863e80b4SBram Moolenaar 342863e80b4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 343