0002-Expand-tests-for-factorial.patch
text/plain
Filename: 0002-Expand-tests-for-factorial.patch
Type: text/plain
Part: 1
Message:
factorial of negative numbers
Patch
Format: format-patch
Series: patch 0002
Subject: Expand tests for factorial
| File | + | − |
|---|---|---|
| src/test/regress/expected/int4.out | 0 | 12 |
| src/test/regress/expected/numeric.out | 35 | 0 |
| src/test/regress/sql/int4.sql | 0 | 4 |
| src/test/regress/sql/numeric.sql | 10 | 0 |
From 4e8b05d209f61be222c7eb776edffa206b706299 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 15 Jun 2020 08:59:19 +0200
Subject: [PATCH 2/3] Expand tests for factorial
Move from int4 to numeric test. (They were originally int4 functions,
but were reimplemented for numeric in
04a4821adef38155b7920ba9eb83c4c3c29156f8.) Add some tests for edge
cases.
---
src/test/regress/expected/int4.out | 12 ---------
src/test/regress/expected/numeric.out | 35 +++++++++++++++++++++++++++
src/test/regress/sql/int4.sql | 4 ---
src/test/regress/sql/numeric.sql | 10 ++++++++
4 files changed, 45 insertions(+), 16 deletions(-)
diff --git a/src/test/regress/expected/int4.out b/src/test/regress/expected/int4.out
index c384af18ee..77f43739a7 100644
--- a/src/test/regress/expected/int4.out
+++ b/src/test/regress/expected/int4.out
@@ -299,18 +299,6 @@ SELECT int4 '1000' < int4 '999' AS false;
f
(1 row)
-SELECT 4! AS twenty_four;
- twenty_four
--------------
- 24
-(1 row)
-
-SELECT !!3 AS six;
- six
------
- 6
-(1 row)
-
SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
ten
-----
diff --git a/src/test/regress/expected/numeric.out b/src/test/regress/expected/numeric.out
index c7fe63d037..05e9a2b9e9 100644
--- a/src/test/regress/expected/numeric.out
+++ b/src/test/regress/expected/numeric.out
@@ -2315,3 +2315,38 @@ FROM (VALUES (0::numeric, 0::numeric),
SELECT lcm(9999 * (10::numeric)^131068 + (10::numeric^131068 - 1), 2); -- overflow
ERROR: value overflows numeric format
+--
+-- Tests for factorial
+--
+SELECT 4!;
+ ?column?
+----------
+ 24
+(1 row)
+
+SELECT !!3;
+ ?column?
+----------
+ 6
+(1 row)
+
+SELECT factorial(15);
+ factorial
+---------------
+ 1307674368000
+(1 row)
+
+SELECT 100000!;
+ERROR: value overflows numeric format
+SELECT 0!;
+ ?column?
+----------
+ 1
+(1 row)
+
+SELECT factorial(-4);
+ factorial
+-----------
+ 1
+(1 row)
+
diff --git a/src/test/regress/sql/int4.sql b/src/test/regress/sql/int4.sql
index a9e90a96c4..b00c9dea2a 100644
--- a/src/test/regress/sql/int4.sql
+++ b/src/test/regress/sql/int4.sql
@@ -114,10 +114,6 @@ CREATE TABLE INT4_TBL(f1 int4);
SELECT int4 '1000' < int4 '999' AS false;
-SELECT 4! AS twenty_four;
-
-SELECT !!3 AS six;
-
SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
SELECT 2 + 2 / 2 AS three;
diff --git a/src/test/regress/sql/numeric.sql b/src/test/regress/sql/numeric.sql
index 41475a9a24..483c81b9cd 100644
--- a/src/test/regress/sql/numeric.sql
+++ b/src/test/regress/sql/numeric.sql
@@ -1111,3 +1111,13 @@ CREATE TABLE num_input_test (n1 numeric);
(4232.820::numeric, 132.72000::numeric)) AS v(a, b);
SELECT lcm(9999 * (10::numeric)^131068 + (10::numeric^131068 - 1), 2); -- overflow
+
+--
+-- Tests for factorial
+--
+SELECT 4!;
+SELECT !!3;
+SELECT factorial(15);
+SELECT 100000!;
+SELECT 0!;
+SELECT factorial(-4);
--
2.27.0