Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 42 additions & 13 deletions datafusion/sqllogictest/test_files/math.slt
Original file line number Diff line number Diff line change
Expand Up @@ -580,11 +580,46 @@ CREATE TABLE signed_integers(
(4, NULL, NULL, -512, NULL, NULL)
;

query II
select gcd(20, 1000), lcm(20, 1000);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test has been split and moved.


## gcd

# gcd scalar function
query IIIIII rowsort
select gcd(0, 0), gcd(2, 0), gcd(0, 2), gcd(2, 3), gcd(15, 10), gcd(20, 1000)
----
0 2 2 1 5 20

# gcd with negative values
query IIIII
select gcd(-100, 0), gcd(0, -100), gcd(-2, 3), gcd(15, -10), gcd(-20, -1000)
----
100 100 1 5 20

# gcd scalar nulls
query III
select gcd(null, 64), gcd(2, null), gcd(null, null);
----
NULL NULL NULL

# scalar maxes and/or negative 1
query III
select
gcd(9223372036854775807, -9223372036854775808), -- i64::MAX, i64::MIN
gcd(9223372036854775807, -1), -- i64::MAX, -1
gcd(-9223372036854775808, -1); -- i64::MIN, -1
----
1 1 1

# gcd with columns and expresions
query II rowsort
select gcd(a, b), gcd(c*d + 1, abs(e)) + f from signed_integers;
----
20 1000
1 11
1 13
2 -10
NULL NULL

# gcd(i64::MIN, i64::MIN)
query error DataFusion error: Arrow error: Compute error: Signed integer overflow in GCD\(\-9223372036854775808, \-9223372036854775808\)
select gcd(-9223372036854775808, -9223372036854775808);

Expand All @@ -596,20 +631,14 @@ select gcd(-9223372036854775808, 0);
query error DataFusion error: Arrow error: Compute error: Signed integer overflow in GCD\(0, \-9223372036854775808\)
select gcd(0, -9223372036854775808);

# Test gcd with zero and negative values
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was combined with other examples I think

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. gcd(0, 0) was duplicated with another test, and negative tests was moved too.

query III
select gcd(0, 0), gcd(-100, 0), gcd(0, -100);
----
0 100 100


## lcm

# Basic cases
query IIIII
select lcm(0, 0), lcm(0, 2), lcm(3, 0), lcm(2, 3), lcm(15, 10);
query IIIIII
select lcm(0, 0), lcm(0, 2), lcm(3, 0), lcm(2, 3), lcm(15, 10), lcm(20, 1000)
----
0 0 0 6 30
0 0 0 6 30 1000

# Test lcm with negative numbers
query IIIII
Expand Down Expand Up @@ -652,4 +681,4 @@ query error DataFusion error: Arrow error: Compute error: Overflow happened on F
select FACTORIAL(350943270);

statement ok
drop table signed_integers
drop table signed_integers
45 changes: 0 additions & 45 deletions datafusion/sqllogictest/test_files/scalar.slt
Original file line number Diff line number Diff line change
Expand Up @@ -448,51 +448,6 @@ select floor(a), floor(b), floor(c) from signed_integers;
2 -1000 123
4 NULL NULL

## gcd

# gcd scalar function
query III rowsort
select gcd(0, 0), gcd(2, 3), gcd(15, 10);
----
0 1 5

# gcd scalar nulls
query I rowsort
select gcd(null, 64);
----
NULL

# gcd scalar nulls #1
query I rowsort
select gcd(2, null);
----
NULL

# gcd scalar nulls #2
query I rowsort
select gcd(null, null);
----
NULL

# scalar maxes and/or negative 1
query III rowsort
select
gcd(9223372036854775807, -9223372036854775808), -- i64::MIN, i64::MAX
-- wait till fix, cause it fails gcd(-9223372036854775808, -9223372036854775808), -- -i64::MIN, i64::MIN
gcd(9223372036854775807, -1), -- i64::MAX, -1
gcd(-9223372036854775808, -1); -- i64::MIN, -1
----
1 1 1

# gcd with columns
query III rowsort
select gcd(a, b), gcd(c, d), gcd(e, f) from signed_integers;
----
1 1 2
1 2 6
2 1 1
NULL NULL NULL

## ln

# ln scalar function
Expand Down