should be it
This commit is contained in:
92
external/duckdb/test/sql/function/numeric/test_trunc.test
vendored
Normal file
92
external/duckdb/test/sql/function/numeric/test_trunc.test
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
# name: test/sql/function/numeric/test_trunc.test
|
||||
# description: Truncation test
|
||||
# group: [numeric]
|
||||
|
||||
statement ok
|
||||
CREATE TABLE truncme(a DOUBLE, b INTEGER, c UINTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO truncme VALUES (42.123456, 3, 19), (-3.141592, -7, 5);
|
||||
|
||||
# Non-intergral should truncate
|
||||
foreach datatype DOUBLE FLOAT DECIMAL(10,6)
|
||||
|
||||
query R
|
||||
select trunc(42.12345::${datatype})
|
||||
----
|
||||
42.000000
|
||||
|
||||
query R
|
||||
select trunc(-42.12345::${datatype})
|
||||
----
|
||||
-42.000000
|
||||
|
||||
query R
|
||||
select trunc(127::${datatype})
|
||||
----
|
||||
127.000000
|
||||
|
||||
query R
|
||||
select trunc(-127::${datatype})
|
||||
----
|
||||
-127.000000
|
||||
|
||||
query R
|
||||
select trunc(0::${datatype})
|
||||
----
|
||||
0.000000
|
||||
|
||||
query I
|
||||
select trunc(a::${datatype}) from truncme
|
||||
----
|
||||
42.000000
|
||||
-3.000000
|
||||
|
||||
endloop
|
||||
|
||||
# Signed integers should be a NOP
|
||||
foreach signed TINYINT SMALLINT INTEGER BIGINT HUGEINT
|
||||
|
||||
query R
|
||||
select trunc(54::${signed})
|
||||
----
|
||||
54
|
||||
|
||||
query R
|
||||
select trunc(-27::${signed})
|
||||
----
|
||||
-27
|
||||
|
||||
query I
|
||||
select trunc(b::${signed}) from truncme
|
||||
----
|
||||
3
|
||||
-7
|
||||
|
||||
endloop
|
||||
|
||||
# Unsigned integers should be a NOP
|
||||
foreach unsigned UTINYINT USMALLINT UINTEGER UBIGINT UHUGEINT
|
||||
|
||||
query R
|
||||
select trunc(15::${unsigned})
|
||||
----
|
||||
15
|
||||
|
||||
query I
|
||||
select trunc(c::${unsigned}) from truncme
|
||||
----
|
||||
19
|
||||
5
|
||||
|
||||
endloop
|
||||
|
||||
# Test specials
|
||||
foreach special DOUBLE FLOAT
|
||||
|
||||
query III
|
||||
select trunc('NAN'::${special}), trunc('infinity'::${special}), trunc('-infinity'::${special});
|
||||
----
|
||||
NAN infinity -infinity
|
||||
|
||||
endloop
|
||||
Reference in New Issue
Block a user