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