test_random.vim (1602B)
1 " Tests for srand() and rand() 2 3 source check.vim 4 source shared.vim 5 6 func Test_Rand() 7 let r = srand(123456789) 8 call assert_equal([1573771921, 319883699, 2742014374, 1324369493], r) 9 call assert_equal(4284103975, rand(r)) 10 call assert_equal(1001954530, rand(r)) 11 call assert_equal(2701803082, rand(r)) 12 call assert_equal(2658065534, rand(r)) 13 call assert_equal(3104308804, rand(r)) 14 15 let s = srand() 16 " using /dev/urandom or used time, result is different each time 17 call assert_notequal(s, srand()) 18 19 " Nvim does not support test_srand_seed 20 " call test_srand_seed(123456789) 21 " call assert_equal(4284103975, rand()) 22 " call assert_equal(1001954530, rand()) 23 " call test_srand_seed() 24 25 if has('float') 26 call assert_fails('echo srand(1.2)', 'E805:') 27 endif 28 call assert_fails('echo srand([1])', 'E745:') 29 call assert_fails('echo rand("burp")', 'E475:') 30 call assert_fails('echo rand([1, 2, 3])', 'E730:') 31 call assert_fails('echo rand([[1], 2, 3, 4])', 'E730:') 32 call assert_fails('echo rand([1, [2], 3, 4])', 'E730:') 33 call assert_fails('echo rand([1, 2, [3], 4])', 'E730:') 34 call assert_fails('echo rand([1, 2, 3, [4]])', 'E730:') 35 endfunc 36 37 func Test_issue_5587() 38 call rand() 39 call garbagecollect() 40 call rand() 41 endfunc 42 43 func Test_srand() 44 CheckNotGui 45 46 let cmd = GetVimCommand() .. ' -V -es -c "echo rand()" -c qa!' 47 let bad = 0 48 for _ in range(10) 49 echo cmd 50 let result1 = system(cmd) 51 let result2 = system(cmd) 52 if result1 ==# result2 53 let bad += 1 54 endif 55 endfor 56 call assert_inrange(0, 4, bad) 57 endfunc 58 59 " vim: shiftwidth=2 sts=2 expandtab