should be it
This commit is contained in:
116
external/duckdb/test/sql/aggregate/aggregates/test_entropy.test
vendored
Normal file
116
external/duckdb/test/sql/aggregate/aggregates/test_entropy.test
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
# name: test/sql/aggregate/aggregates/test_entropy.test
|
||||
# description: Test entropy function
|
||||
# group: [aggregates]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA verify_external
|
||||
|
||||
#Corner cases
|
||||
statement error
|
||||
select entropy()
|
||||
----
|
||||
|
||||
query I
|
||||
select entropy(NULL)
|
||||
----
|
||||
0
|
||||
|
||||
query I
|
||||
select entropy(1)
|
||||
----
|
||||
0
|
||||
|
||||
statement error
|
||||
select entropy(*)
|
||||
----
|
||||
|
||||
statement ok
|
||||
create table aggr(k int);
|
||||
|
||||
statement ok
|
||||
insert into aggr values (0),(1),(1),(1),(4),(0),(3),(3),(2),(2),(4),(4),(2),(4),(0),(0),(0),(1),(2),(3),(4),(2),(3),(3),(1);
|
||||
|
||||
query I
|
||||
select entropy(k) from aggr ;
|
||||
----
|
||||
2.321928
|
||||
|
||||
query I
|
||||
SELECT entropy(2) FROM range(100);
|
||||
----
|
||||
0
|
||||
|
||||
query I
|
||||
select entropy(k) from aggr group by k%2 order by all
|
||||
----
|
||||
1.000000
|
||||
1.584963
|
||||
|
||||
statement ok
|
||||
create table names (name string)
|
||||
|
||||
statement ok
|
||||
insert into names values ('pedro'), ('pedro'), ('pedro'),('hannes'),('hannes'),('mark'),(null);
|
||||
|
||||
query I
|
||||
select entropy(name) from names;
|
||||
----
|
||||
1.459148
|
||||
|
||||
# arrays
|
||||
statement ok
|
||||
create table array_names as select case when name is null then null else [name] end l from names
|
||||
|
||||
query I
|
||||
select entropy(l) from array_names;
|
||||
----
|
||||
1.459148
|
||||
|
||||
# array of structs
|
||||
statement ok
|
||||
create table array_of_structs as select case when name is null then null else [{'name': name}] end l from names
|
||||
|
||||
query I
|
||||
select entropy(l) from array_of_structs;
|
||||
----
|
||||
1.459148
|
||||
|
||||
query I rowsort
|
||||
select entropy(k) over (partition by k%2)
|
||||
from aggr;
|
||||
----
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.000000
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
1.584963
|
||||
|
||||
# Empty Table
|
||||
query I
|
||||
SELECT entropy(i) FROM range(100) tbl(i) WHERE 1=0;
|
||||
----
|
||||
0
|
||||
|
||||
Reference in New Issue
Block a user