diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/random.out | 28 | ||||
-rw-r--r-- | src/test/regress/sql/random.sql | 24 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/test/regress/expected/random.out b/src/test/regress/expected/random.out index a919b28d8da..30bd8661389 100644 --- a/src/test/regress/expected/random.out +++ b/src/test/regress/expected/random.out @@ -51,3 +51,31 @@ SELECT AVG(random) FROM RANDOM_TBL ----- (0 rows) +-- now test random_normal() +TRUNCATE random_tbl; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal(0, 1) < 0; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal(0) < 0; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal() < 0; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal(stddev => 1, mean => 0) < 0; +-- expect similar, but not identical values +SELECT random, count(random) FROM random_tbl + GROUP BY random HAVING count(random) > 3; + random | count +--------+------- +(0 rows) + +-- approximately check expected distribution +SELECT AVG(random) FROM random_tbl + HAVING AVG(random) NOT BETWEEN 400 AND 600; + avg +----- +(0 rows) + diff --git a/src/test/regress/sql/random.sql b/src/test/regress/sql/random.sql index 8187b2c288a..3104af46b72 100644 --- a/src/test/regress/sql/random.sql +++ b/src/test/regress/sql/random.sql @@ -42,3 +42,27 @@ SELECT random, count(random) FROM RANDOM_TBL SELECT AVG(random) FROM RANDOM_TBL HAVING AVG(random) NOT BETWEEN 80 AND 120; + +-- now test random_normal() + +TRUNCATE random_tbl; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal(0, 1) < 0; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal(0) < 0; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal() < 0; +INSERT INTO random_tbl (random) + SELECT count(*) + FROM onek WHERE random_normal(stddev => 1, mean => 0) < 0; + +-- expect similar, but not identical values +SELECT random, count(random) FROM random_tbl + GROUP BY random HAVING count(random) > 3; + +-- approximately check expected distribution +SELECT AVG(random) FROM random_tbl + HAVING AVG(random) NOT BETWEEN 400 AND 600; |