1453b576eSBram Moolenaar" test float functions 2453b576eSBram Moolenaar 3453b576eSBram Moolenaarif !has('float') 4453b576eSBram Moolenaar finish 5453b576eSBram Moolenaarend 6453b576eSBram Moolenaar 7453b576eSBram Moolenaarfunc Test_abs() 862473611SBram Moolenaar call assert_equal('1.23', string(abs(1.23))) 962473611SBram Moolenaar call assert_equal('1.23', string(abs(-1.23))) 1062473611SBram Moolenaar call assert_equal('0.0', string(abs(0.0))) 1162473611SBram Moolenaar call assert_equal('0.0', string(abs(1.0/(1.0/0.0)))) 1262473611SBram Moolenaar call assert_equal('0.0', string(abs(-1.0/(1.0/0.0)))) 1362473611SBram Moolenaar call assert_equal('inf', string(abs(1.0/0.0))) 1462473611SBram Moolenaar call assert_equal('inf', string(abs(-1.0/0.0))) 1562473611SBram Moolenaar call assert_equal('nan', string(abs(0.0/0.0))) 16*17aca707SBram Moolenaar call assert_equal('12', string(abs('12abc'))) 1787200413SBram Moolenaar call assert_equal('12', string(abs('-12abc'))) 1887200413SBram Moolenaar call assert_fails("call abs([])", 'E745:') 1987200413SBram Moolenaar call assert_fails("call abs({})", 'E728:') 2087200413SBram Moolenaar call assert_fails("call abs(function('string'))", 'E703:') 21453b576eSBram Moolenaarendfunc 22453b576eSBram Moolenaar 23453b576eSBram Moolenaarfunc Test_sqrt() 2462473611SBram Moolenaar call assert_equal('0.0', string(sqrt(0.0))) 2562473611SBram Moolenaar call assert_equal('1.414214', string(sqrt(2.0))) 2662473611SBram Moolenaar call assert_equal('inf', string(sqrt(1.0/0.0))) 2762473611SBram Moolenaar call assert_equal('nan', string(sqrt(-1.0))) 2862473611SBram Moolenaar call assert_equal('nan', string(sqrt(0.0/0.0))) 2987200413SBram Moolenaar call assert_fails('call sqrt("")', 'E808:') 30453b576eSBram Moolenaarendfunc 31453b576eSBram Moolenaar 32453b576eSBram Moolenaarfunc Test_log() 3362473611SBram Moolenaar call assert_equal('0.0', string(log(1.0))) 3462473611SBram Moolenaar call assert_equal('-0.693147', string(log(0.5))) 3562473611SBram Moolenaar call assert_equal('-inf', string(log(0.0))) 3662473611SBram Moolenaar call assert_equal('nan', string(log(-1.0))) 3762473611SBram Moolenaar call assert_equal('inf', string(log(1.0/0.0))) 3862473611SBram Moolenaar call assert_equal('nan', string(log(0.0/0.0))) 3987200413SBram Moolenaar call assert_fails('call log("")', 'E808:') 40453b576eSBram Moolenaarendfunc 41453b576eSBram Moolenaar 42453b576eSBram Moolenaarfunc Test_log10() 4362473611SBram Moolenaar call assert_equal('0.0', string(log10(1.0))) 4462473611SBram Moolenaar call assert_equal('2.0', string(log10(100.0))) 4562473611SBram Moolenaar call assert_equal('2.079181', string(log10(120.0))) 4662473611SBram Moolenaar call assert_equal('-inf', string(log10(0.0))) 4762473611SBram Moolenaar call assert_equal('nan', string(log10(-1.0))) 4862473611SBram Moolenaar call assert_equal('inf', string(log10(1.0/0.0))) 4962473611SBram Moolenaar call assert_equal('nan', string(log10(0.0/0.0))) 5087200413SBram Moolenaar call assert_fails('call log10("")', 'E808:') 51453b576eSBram Moolenaarendfunc 52453b576eSBram Moolenaar 53453b576eSBram Moolenaarfunc Test_exp() 5462473611SBram Moolenaar call assert_equal('1.0', string(exp(0.0))) 5562473611SBram Moolenaar call assert_equal('7.389056', string(exp(2.0))) 5662473611SBram Moolenaar call assert_equal('0.367879', string(exp(-1.0))) 5762473611SBram Moolenaar call assert_equal('inf', string(exp(1.0/0.0))) 5862473611SBram Moolenaar call assert_equal('0.0', string(exp(-1.0/0.0))) 5962473611SBram Moolenaar call assert_equal('nan', string(exp(0.0/0.0))) 6087200413SBram Moolenaar call assert_fails('call exp("")', 'E808:') 61453b576eSBram Moolenaarendfunc 62453b576eSBram Moolenaar 63453b576eSBram Moolenaarfunc Test_sin() 6462473611SBram Moolenaar call assert_equal('0.0', string(sin(0.0))) 6562473611SBram Moolenaar call assert_equal('0.841471', string(sin(1.0))) 6662473611SBram Moolenaar call assert_equal('-0.479426', string(sin(-0.5))) 6762473611SBram Moolenaar call assert_equal('nan', string(sin(0.0/0.0))) 6862473611SBram Moolenaar call assert_equal('nan', string(sin(1.0/0.0))) 6962473611SBram Moolenaar call assert_equal('0.0', string(sin(1.0/(1.0/0.0)))) 7062473611SBram Moolenaar call assert_equal('-0.0', string(sin(-1.0/(1.0/0.0)))) 7187200413SBram Moolenaar call assert_fails('call sin("")', 'E808:') 72453b576eSBram Moolenaarendfunc 73453b576eSBram Moolenaar 74453b576eSBram Moolenaarfunc Test_asin() 7562473611SBram Moolenaar call assert_equal('0.0', string(asin(0.0))) 7662473611SBram Moolenaar call assert_equal('1.570796', string(asin(1.0))) 7762473611SBram Moolenaar call assert_equal('-0.523599', string(asin(-0.5))) 7862473611SBram Moolenaar call assert_equal('nan', string(asin(1.1))) 7962473611SBram Moolenaar call assert_equal('nan', string(asin(1.0/0.0))) 8062473611SBram Moolenaar call assert_equal('nan', string(asin(0.0/0.0))) 8187200413SBram Moolenaar call assert_fails('call asin("")', 'E808:') 82453b576eSBram Moolenaarendfunc 83453b576eSBram Moolenaar 84453b576eSBram Moolenaarfunc Test_sinh() 8562473611SBram Moolenaar call assert_equal('0.0', string(sinh(0.0))) 8662473611SBram Moolenaar call assert_equal('0.521095', string(sinh(0.5))) 8762473611SBram Moolenaar call assert_equal('-1.026517', string(sinh(-0.9))) 8862473611SBram Moolenaar call assert_equal('inf', string(sinh(1.0/0.0))) 8962473611SBram Moolenaar call assert_equal('-inf', string(sinh(-1.0/0.0))) 9062473611SBram Moolenaar call assert_equal('nan', string(sinh(0.0/0.0))) 9187200413SBram Moolenaar call assert_fails('call sinh("")', 'E808:') 92453b576eSBram Moolenaarendfunc 93453b576eSBram Moolenaar 94453b576eSBram Moolenaarfunc Test_cos() 9562473611SBram Moolenaar call assert_equal('1.0', string(cos(0.0))) 9662473611SBram Moolenaar call assert_equal('0.540302', string(cos(1.0))) 9762473611SBram Moolenaar call assert_equal('0.877583', string(cos(-0.5))) 9862473611SBram Moolenaar call assert_equal('nan', string(cos(0.0/0.0))) 9962473611SBram Moolenaar call assert_equal('nan', string(cos(1.0/0.0))) 10087200413SBram Moolenaar call assert_fails('call cos("")', 'E808:') 101453b576eSBram Moolenaarendfunc 102453b576eSBram Moolenaar 103453b576eSBram Moolenaarfunc Test_acos() 10462473611SBram Moolenaar call assert_equal('1.570796', string(acos(0.0))) 10562473611SBram Moolenaar call assert_equal('0.0', string(acos(1.0))) 10662473611SBram Moolenaar call assert_equal('3.141593', string(acos(-1.0))) 10762473611SBram Moolenaar call assert_equal('2.094395', string(acos(-0.5))) 10862473611SBram Moolenaar call assert_equal('nan', string(acos(1.1))) 10962473611SBram Moolenaar call assert_equal('nan', string(acos(1.0/0.0))) 11062473611SBram Moolenaar call assert_equal('nan', string(acos(0.0/0.0))) 11187200413SBram Moolenaar call assert_fails('call acos("")', 'E808:') 112453b576eSBram Moolenaarendfunc 113453b576eSBram Moolenaar 114453b576eSBram Moolenaarfunc Test_cosh() 11562473611SBram Moolenaar call assert_equal('1.0', string(cosh(0.0))) 11662473611SBram Moolenaar call assert_equal('1.127626', string(cosh(0.5))) 11762473611SBram Moolenaar call assert_equal('inf', string(cosh(1.0/0.0))) 11862473611SBram Moolenaar call assert_equal('inf', string(cosh(-1.0/0.0))) 11962473611SBram Moolenaar call assert_equal('nan', string(cosh(0.0/0.0))) 12087200413SBram Moolenaar call assert_fails('call cosh("")', 'E808:') 121453b576eSBram Moolenaarendfunc 122453b576eSBram Moolenaar 123453b576eSBram Moolenaarfunc Test_tan() 12462473611SBram Moolenaar call assert_equal('0.0', string(tan(0.0))) 12562473611SBram Moolenaar call assert_equal('0.546302', string(tan(0.5))) 12662473611SBram Moolenaar call assert_equal('-0.546302', string(tan(-0.5))) 12762473611SBram Moolenaar call assert_equal('nan', string(tan(1.0/0.0))) 12862473611SBram Moolenaar call assert_equal('nan', string(cos(0.0/0.0))) 12962473611SBram Moolenaar call assert_equal('0.0', string(tan(1.0/(1.0/0.0)))) 13062473611SBram Moolenaar call assert_equal('-0.0', string(tan(-1.0/(1.0/0.0)))) 13187200413SBram Moolenaar call assert_fails('call tan("")', 'E808:') 132453b576eSBram Moolenaarendfunc 133453b576eSBram Moolenaar 134453b576eSBram Moolenaarfunc Test_atan() 13562473611SBram Moolenaar call assert_equal('0.0', string(atan(0.0))) 13662473611SBram Moolenaar call assert_equal('0.463648', string(atan(0.5))) 13762473611SBram Moolenaar call assert_equal('-0.785398', string(atan(-1.0))) 13862473611SBram Moolenaar call assert_equal('1.570796', string(atan(1.0/0.0))) 13962473611SBram Moolenaar call assert_equal('-1.570796', string(atan(-1.0/0.0))) 14062473611SBram Moolenaar call assert_equal('nan', string(atan(0.0/0.0))) 14187200413SBram Moolenaar call assert_fails('call atan("")', 'E808:') 142453b576eSBram Moolenaarendfunc 143453b576eSBram Moolenaar 144453b576eSBram Moolenaarfunc Test_atan2() 14562473611SBram Moolenaar call assert_equal('-2.356194', string(atan2(-1, -1))) 14662473611SBram Moolenaar call assert_equal('2.356194', string(atan2(1, -1))) 14762473611SBram Moolenaar call assert_equal('0.0', string(atan2(1.0, 1.0/0.0))) 14862473611SBram Moolenaar call assert_equal('1.570796', string(atan2(1.0/0.0, 1.0))) 14962473611SBram Moolenaar call assert_equal('nan', string(atan2(0.0/0.0, 1.0))) 15087200413SBram Moolenaar call assert_fails('call atan2("", -1)', 'E808:') 15187200413SBram Moolenaar call assert_fails('call atan2(-1, "")', 'E808:') 152453b576eSBram Moolenaarendfunc 153453b576eSBram Moolenaar 154453b576eSBram Moolenaarfunc Test_tanh() 15562473611SBram Moolenaar call assert_equal('0.0', string(tanh(0.0))) 15662473611SBram Moolenaar call assert_equal('0.462117', string(tanh(0.5))) 15762473611SBram Moolenaar call assert_equal('-0.761594', string(tanh(-1.0))) 15862473611SBram Moolenaar call assert_equal('1.0', string(tanh(1.0/0.0))) 15962473611SBram Moolenaar call assert_equal('-1.0', string(tanh(-1.0/0.0))) 16062473611SBram Moolenaar call assert_equal('nan', string(tanh(0.0/0.0))) 16187200413SBram Moolenaar call assert_fails('call tanh("")', 'E808:') 162453b576eSBram Moolenaarendfunc 163453b576eSBram Moolenaar 164453b576eSBram Moolenaarfunc Test_fmod() 16562473611SBram Moolenaar call assert_equal('0.13', string(fmod(12.33, 1.22))) 16662473611SBram Moolenaar call assert_equal('-0.13', string(fmod(-12.33, 1.22))) 16762473611SBram Moolenaar call assert_equal('nan', string(fmod(1.0/0.0, 1.0))) 16862473611SBram Moolenaar " On Windows we get "nan" instead of 1.0, accept both. 16962473611SBram Moolenaar let res = string(fmod(1.0, 1.0/0.0)) 17062473611SBram Moolenaar if res != 'nan' 17162473611SBram Moolenaar call assert_equal('1.0', res) 17262473611SBram Moolenaar endif 17362473611SBram Moolenaar call assert_equal('nan', string(fmod(1.0, 0.0))) 17487200413SBram Moolenaar call assert_fails("call fmod('', 1.22)", 'E808:') 17587200413SBram Moolenaar call assert_fails("call fmod(12.33, '')", 'E808:') 176453b576eSBram Moolenaarendfunc 177453b576eSBram Moolenaar 178453b576eSBram Moolenaarfunc Test_pow() 17962473611SBram Moolenaar call assert_equal('1.0', string(pow(0.0, 0.0))) 18062473611SBram Moolenaar call assert_equal('8.0', string(pow(2.0, 3.0))) 18162473611SBram Moolenaar call assert_equal('nan', string(pow(2.0, 0.0/0.0))) 18262473611SBram Moolenaar call assert_equal('nan', string(pow(0.0/0.0, 3.0))) 18362473611SBram Moolenaar call assert_equal('nan', string(pow(0.0/0.0, 3.0))) 18462473611SBram Moolenaar call assert_equal('inf', string(pow(2.0, 1.0/0.0))) 18562473611SBram Moolenaar call assert_equal('inf', string(pow(1.0/0.0, 3.0))) 18687200413SBram Moolenaar call assert_fails("call pow('', 2.0)", 'E808:') 18787200413SBram Moolenaar call assert_fails("call pow(2.0, '')", 'E808:') 188453b576eSBram Moolenaarendfunc 189453b576eSBram Moolenaar 190453b576eSBram Moolenaarfunc Test_str2float() 19162473611SBram Moolenaar call assert_equal('1.0', string(str2float('1'))) 19208243d26SBram Moolenaar call assert_equal('1.0', string(str2float(' 1 '))) 19308243d26SBram Moolenaar call assert_equal('1.0', string(str2float(' 1.0 '))) 19462473611SBram Moolenaar call assert_equal('1.23', string(str2float('1.23'))) 19562473611SBram Moolenaar call assert_equal('1.23', string(str2float('1.23abc'))) 19662473611SBram Moolenaar call assert_equal('1.0e40', string(str2float('1e40'))) 19787200413SBram Moolenaar call assert_equal('-1.23', string(str2float('-1.23'))) 19887200413SBram Moolenaar call assert_equal('1.23', string(str2float(' + 1.23 '))) 19908243d26SBram Moolenaar 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 call assert_equal('1.0', string(str2float(' + 1 '))) 20408243d26SBram Moolenaar 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 call assert_equal('-1.0', string(str2float(' - 1 '))) 20908243d26SBram Moolenaar 21087200413SBram Moolenaar call assert_equal('0.0', string(str2float('+0.0'))) 21187200413SBram Moolenaar call assert_equal('-0.0', string(str2float('-0.0'))) 21262473611SBram Moolenaar call assert_equal('inf', string(str2float('1e1000'))) 21362473611SBram Moolenaar call assert_equal('inf', string(str2float('inf'))) 21462473611SBram Moolenaar call assert_equal('-inf', string(str2float('-inf'))) 21587200413SBram Moolenaar call assert_equal('inf', string(str2float('+inf'))) 21662473611SBram Moolenaar call assert_equal('inf', string(str2float('Inf'))) 21787200413SBram Moolenaar call assert_equal('inf', string(str2float(' +inf '))) 21862473611SBram Moolenaar call assert_equal('nan', string(str2float('nan'))) 21962473611SBram Moolenaar call assert_equal('nan', string(str2float('NaN'))) 22087200413SBram Moolenaar call assert_equal('nan', string(str2float(' nan '))) 22187200413SBram Moolenaar 22287200413SBram Moolenaar call assert_fails("call str2float(1.2)", 'E806:') 22387200413SBram Moolenaar call assert_fails("call str2float([])", 'E730:') 22487200413SBram Moolenaar call assert_fails("call str2float({})", 'E731:') 22587200413SBram Moolenaar call assert_fails("call str2float(function('string'))", 'E729:') 226453b576eSBram Moolenaarendfunc 227453b576eSBram Moolenaar 228863e80b4SBram Moolenaarfunc Test_float2nr() 229863e80b4SBram Moolenaar call assert_equal(1, float2nr(1.234)) 230863e80b4SBram Moolenaar call assert_equal(123, float2nr(1.234e2)) 231863e80b4SBram Moolenaar call assert_equal(12, float2nr(123.4e-1)) 232863e80b4SBram Moolenaar let max_number = 1/0 233863e80b4SBram Moolenaar let min_number = -max_number 234863e80b4SBram Moolenaar call assert_equal(max_number/2+1, float2nr(pow(2, 62))) 235863e80b4SBram Moolenaar call assert_equal(max_number, float2nr(pow(2, 63))) 236863e80b4SBram Moolenaar call assert_equal(max_number, float2nr(pow(2, 64))) 237863e80b4SBram Moolenaar call assert_equal(min_number/2-1, float2nr(-pow(2, 62))) 238863e80b4SBram Moolenaar call assert_equal(min_number, float2nr(-pow(2, 63))) 239863e80b4SBram Moolenaar call assert_equal(min_number, float2nr(-pow(2, 64))) 240863e80b4SBram Moolenaarendfunc 241863e80b4SBram Moolenaar 242453b576eSBram Moolenaarfunc Test_floor() 24362473611SBram Moolenaar call assert_equal('2.0', string(floor(2.0))) 24462473611SBram Moolenaar call assert_equal('2.0', string(floor(2.11))) 24562473611SBram Moolenaar call assert_equal('2.0', string(floor(2.99))) 24662473611SBram Moolenaar call assert_equal('-3.0', string(floor(-2.11))) 24762473611SBram Moolenaar call assert_equal('-3.0', string(floor(-2.99))) 24862473611SBram Moolenaar call assert_equal('nan', string(floor(0.0/0.0))) 24962473611SBram Moolenaar call assert_equal('inf', string(floor(1.0/0.0))) 25062473611SBram Moolenaar call assert_equal('-inf', string(floor(-1.0/0.0))) 25187200413SBram Moolenaar call assert_fails("call floor('')", 'E808:') 252453b576eSBram Moolenaarendfunc 253453b576eSBram Moolenaar 254453b576eSBram Moolenaarfunc Test_ceil() 25562473611SBram Moolenaar call assert_equal('2.0', string(ceil(2.0))) 25662473611SBram Moolenaar call assert_equal('3.0', string(ceil(2.11))) 25762473611SBram Moolenaar call assert_equal('3.0', string(ceil(2.99))) 25862473611SBram Moolenaar call assert_equal('-2.0', string(ceil(-2.11))) 25962473611SBram Moolenaar call assert_equal('-2.0', string(ceil(-2.99))) 26062473611SBram Moolenaar call assert_equal('nan', string(ceil(0.0/0.0))) 26162473611SBram Moolenaar call assert_equal('inf', string(ceil(1.0/0.0))) 26262473611SBram Moolenaar call assert_equal('-inf', string(ceil(-1.0/0.0))) 26387200413SBram Moolenaar call assert_fails("call ceil('')", 'E808:') 264453b576eSBram Moolenaarendfunc 265453b576eSBram Moolenaar 266453b576eSBram Moolenaarfunc Test_round() 26762473611SBram Moolenaar call assert_equal('2.0', string(round(2.1))) 26862473611SBram Moolenaar call assert_equal('3.0', string(round(2.5))) 26962473611SBram Moolenaar call assert_equal('3.0', string(round(2.9))) 27062473611SBram Moolenaar call assert_equal('-2.0', string(round(-2.1))) 27162473611SBram Moolenaar call assert_equal('-3.0', string(round(-2.5))) 27262473611SBram Moolenaar call assert_equal('-3.0', string(round(-2.9))) 27362473611SBram Moolenaar call assert_equal('nan', string(round(0.0/0.0))) 27462473611SBram Moolenaar call assert_equal('inf', string(round(1.0/0.0))) 27562473611SBram Moolenaar call assert_equal('-inf', string(round(-1.0/0.0))) 27687200413SBram Moolenaar call assert_fails("call round('')", 'E808:') 277453b576eSBram Moolenaarendfunc 278453b576eSBram Moolenaar 279453b576eSBram Moolenaarfunc Test_trunc() 28062473611SBram Moolenaar call assert_equal('2.0', string(trunc(2.1))) 28162473611SBram Moolenaar call assert_equal('2.0', string(trunc(2.5))) 28262473611SBram Moolenaar call assert_equal('2.0', string(trunc(2.9))) 28362473611SBram Moolenaar call assert_equal('-2.0', string(trunc(-2.1))) 28462473611SBram Moolenaar call assert_equal('-2.0', string(trunc(-2.5))) 28562473611SBram Moolenaar call assert_equal('-2.0', string(trunc(-2.9))) 28662473611SBram Moolenaar call assert_equal('nan', string(trunc(0.0/0.0))) 28762473611SBram Moolenaar call assert_equal('inf', string(trunc(1.0/0.0))) 28862473611SBram Moolenaar call assert_equal('-inf', string(trunc(-1.0/0.0))) 28987200413SBram Moolenaar call assert_fails("call trunc('')", 'E808:') 290453b576eSBram Moolenaarendfunc 291453b576eSBram Moolenaar 292fda1bff3SBram Moolenaarfunc Test_isinf() 293fda1bff3SBram Moolenaar call assert_equal(1, isinf(1.0/0.0)) 294fda1bff3SBram Moolenaar call assert_equal(-1, isinf(-1.0/0.0)) 295fda1bff3SBram Moolenaar call assert_false(isinf(1.0)) 296fda1bff3SBram Moolenaar call assert_false(isinf(0.0/0.0)) 297fda1bff3SBram Moolenaar call assert_false(isinf('a')) 298fda1bff3SBram Moolenaar call assert_false(isinf([])) 299fda1bff3SBram Moolenaar call assert_false(isinf({})) 300fda1bff3SBram Moolenaarendfunc 301fda1bff3SBram Moolenaar 302453b576eSBram Moolenaarfunc Test_isnan() 303fda1bff3SBram Moolenaar call assert_true(isnan(0.0/0.0)) 304fda1bff3SBram Moolenaar call assert_false(isnan(1.0)) 305fda1bff3SBram Moolenaar call assert_false(isnan(1.0/0.0)) 306fda1bff3SBram Moolenaar call assert_false(isnan(-1.0/0.0)) 307fda1bff3SBram Moolenaar call assert_false(isnan('a')) 308fda1bff3SBram Moolenaar call assert_false(isnan([])) 309fda1bff3SBram Moolenaar call assert_false(isnan({})) 310453b576eSBram Moolenaarendfunc 311863e80b4SBram Moolenaar 312863e80b4SBram Moolenaar" This was converted from test65 313863e80b4SBram Moolenaarfunc Test_float_misc() 314863e80b4SBram Moolenaar call assert_equal('123.456000', printf('%f', 123.456)) 315863e80b4SBram Moolenaar call assert_equal('1.234560e+02', printf('%e', 123.456)) 316863e80b4SBram Moolenaar call assert_equal('123.456', printf('%g', 123.456)) 317863e80b4SBram Moolenaar " += 318863e80b4SBram Moolenaar let v = 1.234 319863e80b4SBram Moolenaar let v += 6.543 320863e80b4SBram Moolenaar call assert_equal('7.777', printf('%g', v)) 321863e80b4SBram Moolenaar let v = 1.234 322863e80b4SBram Moolenaar let v += 5 323863e80b4SBram Moolenaar call assert_equal('6.234', printf('%g', v)) 324863e80b4SBram Moolenaar let v = 5 325863e80b4SBram Moolenaar let v += 3.333 326863e80b4SBram Moolenaar call assert_equal('8.333', string(v)) 327863e80b4SBram Moolenaar " == 328863e80b4SBram Moolenaar let v = 1.234 329863e80b4SBram Moolenaar call assert_true(v == 1.234) 330863e80b4SBram Moolenaar call assert_false(v == 1.2341) 331863e80b4SBram Moolenaar " add-subtract 332863e80b4SBram Moolenaar call assert_equal('5.234', printf('%g', 4 + 1.234)) 333863e80b4SBram Moolenaar call assert_equal('-6.766', printf('%g', 1.234 - 8)) 334863e80b4SBram Moolenaar " mult-div 335863e80b4SBram Moolenaar call assert_equal('4.936', printf('%g', 4 * 1.234)) 336863e80b4SBram Moolenaar call assert_equal('0.003241', printf('%g', 4.0 / 1234)) 337863e80b4SBram Moolenaar " dict 338863e80b4SBram Moolenaar call assert_equal("{'x': 1.234, 'y': -2.0e20}", string({'x': 1.234, 'y': -2.0e20})) 339863e80b4SBram Moolenaar " list 340863e80b4SBram Moolenaar call assert_equal('[-123.4, 2.0e-20]', string([-123.4, 2.0e-20])) 341863e80b4SBram Moolenaarendfunc 342863e80b4SBram Moolenaar 343863e80b4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 344