]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bc/tests/bc/scripts/rand.bc
Update to version 3.1.1
[FreeBSD/FreeBSD.git] / contrib / bc / tests / bc / scripts / rand.bc
1 #! /usr/bin/bc
2
3 define x(x) {
4         seed = x
5         seed@20
6         return seed
7 }
8
9 define y(x) {
10         auto s
11         seed@20
12         s = x(x)
13         seed@20
14         return s
15 }
16
17 define void u(x) {
18         seed = x
19         seed@20
20 }
21
22 define void v(x) {
23         u(x)
24         seed@20
25 }
26
27 define g(x) {
28         auto s
29         s = irand(x)
30         s < x
31         return seed
32 }
33
34 define h(x) {
35         auto s
36         s = g(x)
37         s == seed
38         return s
39 }
40
41 define j(x) {
42         auto s, r
43         seed@20
44         s = seed
45         r = rand()
46         seed = x
47         s != seed
48         return rand()
49 }
50
51 define k(x) {
52         auto s, r
53         s = seed
54         seed@20
55         r = j(x)
56         s != seed
57         seed = x
58         rand() == r
59         return r
60 }
61
62 define m(*a[]) {
63         auto i
64         seed = seed
65         for (i = 0; i < 100; ++i) {
66                 a[i] = rand()
67         }
68         return seed
69 }
70
71 v(50.5)
72 seed@20
73
74 s = y(75.25)
75 s@20
76 seed@20
77
78 r = rand()
79 i = irand(r)
80
81 i < r
82
83 s = h(maxrand() ^ 4)
84 s == seed
85
86 seed = 2398.0625
87 r = k(38.45)
88 seed = 38.45
89 r == rand()
90
91 s = m(a[])
92
93 for (i = 0; i < 100; ++i) {
94         rand() == a[i]
95 }
96
97 s == seed