512 lines
6.8 KiB
SQL
512 lines
6.8 KiB
SQL
# name: test/sql/function/numeric/test_trigo.test
|
|
# description: Test trigonometric function
|
|
# group: [numeric]
|
|
|
|
statement ok
|
|
SET default_null_order='nulls_first';
|
|
|
|
statement ok
|
|
CREATE TABLE numbers(n DOUBLE)
|
|
|
|
statement ok
|
|
INSERT INTO numbers VALUES (-42),(-1),(0), (1), (42), (NULL)
|
|
|
|
query I
|
|
SELECT cast(SIN(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
917
|
|
-841
|
|
0
|
|
841
|
|
-917
|
|
|
|
query I
|
|
SELECT cast(SIN(n::smallint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
917
|
|
-841
|
|
0
|
|
841
|
|
-917
|
|
|
|
query I
|
|
SELECT cast(SIN(n::integer)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
917
|
|
-841
|
|
0
|
|
841
|
|
-917
|
|
|
|
query I
|
|
SELECT cast(SIN(n::bigint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
917
|
|
-841
|
|
0
|
|
841
|
|
-917
|
|
|
|
query I
|
|
SELECT cast(SIN(n::float)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
917
|
|
-841
|
|
0
|
|
841
|
|
-917
|
|
|
|
query I
|
|
SELECT cast(SIN(n::double)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
917
|
|
-841
|
|
0
|
|
841
|
|
-917
|
|
|
|
query I
|
|
SELECT cast(COS(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-400
|
|
540
|
|
1000
|
|
540
|
|
-400
|
|
|
|
query I
|
|
SELECT cast(COS(n::smallint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-400
|
|
540
|
|
1000
|
|
540
|
|
-400
|
|
|
|
query I
|
|
SELECT cast(COS(n::integer)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-400
|
|
540
|
|
1000
|
|
540
|
|
-400
|
|
|
|
query I
|
|
SELECT cast(COS(n::bigint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-400
|
|
540
|
|
1000
|
|
540
|
|
-400
|
|
|
|
query I
|
|
SELECT cast(COS(n::float)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-400
|
|
540
|
|
1000
|
|
540
|
|
-400
|
|
|
|
query I
|
|
SELECT cast(COS(n::double)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-400
|
|
540
|
|
1000
|
|
540
|
|
-400
|
|
|
|
query I
|
|
SELECT cast(TAN(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-2291
|
|
-1557
|
|
0
|
|
1557
|
|
2291
|
|
|
|
query I
|
|
SELECT cast(TAN(n::smallint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-2291
|
|
-1557
|
|
0
|
|
1557
|
|
2291
|
|
|
|
query I
|
|
SELECT cast(TAN(n::integer)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-2291
|
|
-1557
|
|
0
|
|
1557
|
|
2291
|
|
|
|
query I
|
|
SELECT cast(TAN(n::bigint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-2291
|
|
-1557
|
|
0
|
|
1557
|
|
2291
|
|
|
|
query I
|
|
SELECT cast(TAN(n::float)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-2291
|
|
-1557
|
|
0
|
|
1557
|
|
2291
|
|
|
|
query I
|
|
SELECT cast(TAN(n::double)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-2291
|
|
-1557
|
|
0
|
|
1557
|
|
2291
|
|
|
|
query I
|
|
SELECT cast(ATAN(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-1547
|
|
-785
|
|
0
|
|
785
|
|
1547
|
|
|
|
query I
|
|
SELECT cast(ATAN(n::smallint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-1547
|
|
-785
|
|
0
|
|
785
|
|
1547
|
|
|
|
query I
|
|
SELECT cast(ATAN(n::integer)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-1547
|
|
-785
|
|
0
|
|
785
|
|
1547
|
|
|
|
query I
|
|
SELECT cast(ATAN(n::bigint)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-1547
|
|
-785
|
|
0
|
|
785
|
|
1547
|
|
|
|
query I
|
|
SELECT cast(ATAN(n::float)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-1547
|
|
-785
|
|
0
|
|
785
|
|
1547
|
|
|
|
query I
|
|
SELECT cast(ATAN(n::double)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-1547
|
|
-785
|
|
0
|
|
785
|
|
1547
|
|
|
|
query I
|
|
SELECT cast(ASIN(n::tinyint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
-1571
|
|
0
|
|
1571
|
|
|
|
query I
|
|
SELECT cast(ASIN(n::smallint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
-1571
|
|
0
|
|
1571
|
|
|
|
query I
|
|
SELECT cast(ASIN(n::integer)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
-1571
|
|
0
|
|
1571
|
|
|
|
query I
|
|
SELECT cast(ASIN(n::bigint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
-1571
|
|
0
|
|
1571
|
|
|
|
query I
|
|
SELECT cast(ASIN(n::float)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
-1571
|
|
0
|
|
1571
|
|
|
|
query I
|
|
SELECT cast(ASIN(n::double)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
-1571
|
|
0
|
|
1571
|
|
|
|
query I
|
|
SELECT cast(ACOS(n::tinyint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
3142
|
|
1571
|
|
0
|
|
|
|
query I
|
|
SELECT cast(ACOS(n::smallint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
3142
|
|
1571
|
|
0
|
|
|
|
query I
|
|
SELECT cast(ACOS(n::integer)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
3142
|
|
1571
|
|
0
|
|
|
|
query I
|
|
SELECT cast(ACOS(n::bigint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
3142
|
|
1571
|
|
0
|
|
|
|
query I
|
|
SELECT cast(ACOS(n::float)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
3142
|
|
1571
|
|
0
|
|
|
|
query I
|
|
SELECT cast(ACOS(n::double)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n
|
|
----
|
|
3142
|
|
1571
|
|
0
|
|
|
|
statement error
|
|
SELECT cast(ASIN(n)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
|
|
query I
|
|
SELECT cast(COT(n::tinyint)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n
|
|
----
|
|
-436
|
|
-642
|
|
642
|
|
436
|
|
|
|
query I
|
|
SELECT cast(COT(n::smallint)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n
|
|
----
|
|
-436
|
|
-642
|
|
642
|
|
436
|
|
|
|
query I
|
|
SELECT cast(COT(n::integer)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n
|
|
----
|
|
-436
|
|
-642
|
|
642
|
|
436
|
|
|
|
query I
|
|
SELECT cast(COT(n::bigint)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n
|
|
----
|
|
-436
|
|
-642
|
|
642
|
|
436
|
|
|
|
query I
|
|
SELECT cast(COT(n::float)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n
|
|
----
|
|
-436
|
|
-642
|
|
642
|
|
436
|
|
|
|
query I
|
|
SELECT cast(COT(n::double)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n
|
|
----
|
|
-436
|
|
-642
|
|
642
|
|
436
|
|
|
|
query I
|
|
SELECT cast(ATAN2(n::tinyint, 42)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-785
|
|
-24
|
|
0
|
|
24
|
|
785
|
|
|
|
query I
|
|
SELECT cast(ATAN2(n::smallint, 42)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-785
|
|
-24
|
|
0
|
|
24
|
|
785
|
|
|
|
query I
|
|
SELECT cast(ATAN2(n::integer, 42)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-785
|
|
-24
|
|
0
|
|
24
|
|
785
|
|
|
|
query I
|
|
SELECT cast(ATAN2(n::bigint, 42)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-785
|
|
-24
|
|
0
|
|
24
|
|
785
|
|
|
|
query I
|
|
SELECT cast(ATAN2(n::float, 42)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-785
|
|
-24
|
|
0
|
|
24
|
|
785
|
|
|
|
query I
|
|
SELECT cast(ATAN2(n::double, 42)*1000 as bigint) FROM numbers ORDER BY n
|
|
----
|
|
NULL
|
|
-785
|
|
-24
|
|
0
|
|
24
|
|
785
|
|
|
|
statement error
|
|
select asin(-2);
|
|
----
|
|
Invalid Input Error: ASIN is undefined outside [-1,1]
|
|
|
|
statement error
|
|
select acos(-2);
|
|
----
|
|
Invalid Input Error: ACOS is undefined outside [-1,1]
|
|
|
|
|
|
# Hyperbolic trigo functions
|
|
|
|
# ATANH
|
|
foreach value 1.1 -1.1
|
|
|
|
statement error
|
|
select atanh(${value});
|
|
----
|
|
Invalid Input Error: ATANH is undefined outside [-1,1]
|
|
|
|
endloop
|
|
|
|
query II
|
|
select atanh(1), atanh(-1);
|
|
----
|
|
inf inf
|
|
|
|
query III
|
|
select atanh(-0.5), atanh(0), atanh(0.5);
|
|
----
|
|
-0.5493061443340549 0.0 0.5493061443340549
|
|
|
|
# ACOSH
|
|
query IIII
|
|
select acosh(-1), acosh(0), acosh(1), acosh(2);
|
|
----
|
|
NaN NaN 0.0 1.3169578969248166
|
|
|
|
# ASINH
|
|
query III
|
|
select asinh(-1), asinh(0), asinh(2);
|
|
----
|
|
-0.881373587019543 0.0 1.4436354751788103
|
|
|
|
# TANH
|
|
query IIII
|
|
select tanh(-0.5), tanh(0), tanh(0.5), tanh(1000);
|
|
----
|
|
-0.46211715726000974 0.0 0.46211715726000974 1.0
|
|
|
|
# COSH
|
|
query IIII
|
|
select cosh(-1), cosh(0), cosh(1), cosh(1000);
|
|
----
|
|
1.5430806348152437 1.0 1.5430806348152437 inf
|
|
|
|
# SINH
|
|
query IIII
|
|
select sinh(-1), sinh(0), sinh(1), sinh(1000);
|
|
----
|
|
-1.1752011936438014 0.0 1.1752011936438014 inf
|