xref: /vim-8.2.3635/src/testdir/test_random.vim (revision 6d91bcb4)
106b0b4bcSBram Moolenaar" Tests for srand() and rand()
206b0b4bcSBram Moolenaar
306b0b4bcSBram Moolenaarfunc Test_Rand()
406b0b4bcSBram Moolenaar  let r = srand(123456789)
5f8c1f920SBram Moolenaar  call assert_equal([1573771921, 319883699, 2742014374, 1324369493], r)
6f8c1f920SBram Moolenaar  call assert_equal(4284103975, rand(r))
7f8c1f920SBram Moolenaar  call assert_equal(1001954530, rand(r))
8f8c1f920SBram Moolenaar  call assert_equal(2701803082, rand(r))
9f8c1f920SBram Moolenaar  call assert_equal(2658065534, rand(r))
10f8c1f920SBram Moolenaar  call assert_equal(3104308804, rand(r))
1106b0b4bcSBram Moolenaar
1206b0b4bcSBram Moolenaar  call test_settime(12341234)
1306b0b4bcSBram Moolenaar  let s = srand()
144f645c54SBram Moolenaar  if !has('win32') && filereadable('/dev/urandom')
1507e4a197SBram Moolenaar    " using /dev/urandom
1607e4a197SBram Moolenaar    call assert_notequal(s, srand())
1707e4a197SBram Moolenaar  else
1807e4a197SBram Moolenaar    " using time()
1906b0b4bcSBram Moolenaar    call assert_equal(s, srand())
2006b0b4bcSBram Moolenaar    call test_settime(12341235)
2106b0b4bcSBram Moolenaar    call assert_notequal(s, srand())
2207e4a197SBram Moolenaar  endif
2306b0b4bcSBram Moolenaar
244f645c54SBram Moolenaar  call test_srand_seed(123456789)
254f645c54SBram Moolenaar  call assert_equal(4284103975, rand())
264f645c54SBram Moolenaar  call assert_equal(1001954530, rand())
274f645c54SBram Moolenaar  call test_srand_seed()
2806b0b4bcSBram Moolenaar
2968e9e5f7SBram Moolenaar  if has('float')
3068e9e5f7SBram Moolenaar    call assert_fails('echo srand(1.2)', 'E805:')
3168e9e5f7SBram Moolenaar  endif
3206b0b4bcSBram Moolenaar  call assert_fails('echo srand([1])', 'E745:')
3368e9e5f7SBram Moolenaar  call assert_fails('echo rand("burp")', 'E475:')
349b7bf9e9SBram Moolenaar  call assert_fails('echo rand([1, 2, 3])', 'E730:')
359b7bf9e9SBram Moolenaar  call assert_fails('echo rand([[1], 2, 3, 4])', 'E730:')
369b7bf9e9SBram Moolenaar  call assert_fails('echo rand([1, [2], 3, 4])', 'E730:')
379b7bf9e9SBram Moolenaar  call assert_fails('echo rand([1, 2, [3], 4])', 'E730:')
389b7bf9e9SBram Moolenaar  call assert_fails('echo rand([1, 2, 3, [4]])', 'E730:')
3907e4a197SBram Moolenaar
4007e4a197SBram Moolenaar  call test_settime(0)
4106b0b4bcSBram Moolenaarendfunc
424f645c54SBram Moolenaar
434f645c54SBram Moolenaarfunc Test_issue_5587()
444f645c54SBram Moolenaar  call rand()
454f645c54SBram Moolenaar  call garbagecollect()
464f645c54SBram Moolenaar  call rand()
474f645c54SBram Moolenaarendfunc
48*6d91bcb4SBram Moolenaar
49*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
50