Changeset: e61216483f04 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e61216483f04
Added Files:
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_00.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_01.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_02.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_03.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_04.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_05.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_06.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_07.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_09.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_10.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_11.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_12.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_13.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_16.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_17.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_18.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_20.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_21.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_23.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_24.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_26.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_27.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_28.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_30.test
sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_32.test
sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_01.test
sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_02.test
sql/backends/monet5/UDF/pyapi3/Tests/pyloader3_05.test
Branch: mtest
Log Message:
Updated pypapi3 tests directory
diffs (truncated from 2317 to 300 lines):
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_00.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_00.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_00.test
@@ -0,0 +1,26 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE FUNCTION pyapi00() returns table (d integer)
+language P
+{
+ return(list(range(1,11)))
+}
+
+query I rowsort
+SELECT * FROM pyapi00() AS R WHERE d > 5
+----
+10
+6
+7
+8
+9
+
+statement ok
+DROP FUNCTION pyapi00
+
+statement ok
+ROLLBACK
+
+
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_01.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_01.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_01.test
@@ -0,0 +1,24 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE FUNCTION pyapi01(i integer) returns table (i integer, d double)
+language P
+{
+ x = range(1, i + 1)
+ y = [42.0] * i
+ return([x,y])
+}
+
+query IR rowsort
+SELECT i,d FROM pyapi01(42) AS R WHERE i>30
+----
+24 values hashing to 22df6777abf083682aa4beba08040ac5
+
+statement ok
+DROP FUNCTION pyapi01
+
+statement ok
+ROLLBACK
+
+
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_02.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_02.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_02.test
@@ -0,0 +1,44 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE rval(i integer,j integer)
+
+statement ok
+INSERT INTO rval VALUES (1,4), (2,3), (3,2), (4,1)
+
+statement error
+CREATE FUNCTION pyapi02(i integer,j integer,z integer) returns integer
+language P
+{
+ x = i * sum(j) * z
+
+statement error
+ return(x)
+
+statement error
+}
+
+statement error
+SELECT pyapi02(i,j,2) FROM rval
+
+statement error
+DROP FUNCTION pyapi02
+
+statement error
+CREATE FUNCTION pyapi02(i integer) returns integer
+language P
+{
+ return numpy.min(i)
+}
+
+statement error
+SELECT pyapi02(i) FROM rval
+
+statement error
+DROP TABLE rval
+
+statement ok
+ROLLBACK
+
+
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_03.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_03.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_03.test
@@ -0,0 +1,28 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE rval(i integer)
+
+statement ok
+INSERT INTO rval VALUES (1),(2),(3),(4),(-1),(0)
+
+statement ok
+CREATE FUNCTION pyapi03(i integer,z integer) returns boolean language P
{return(numpy.greater(i,z))}
+
+query I rowsort
+SELECT * FROM rval WHERE pyapi03(i,2)
+----
+3
+4
+
+statement ok
+DROP FUNCTION pyapi03
+
+statement ok
+DROP TABLE rval
+
+statement ok
+ROLLBACK
+
+
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_04.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_04.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_04.test
@@ -0,0 +1,34 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE dval(i integer)
+
+statement ok
+INSERT INTO dval VALUES (1),(2),(3),(4)
+
+statement ok
+CREATE FUNCTION pyapi04() returns boolean
+language P
+{
+ return [True] * 4
+}
+
+query T rowsort
+SELECT pyapi04() FROM dval
+----
+True
+True
+True
+True
+
+statement ok
+DROP FUNCTION pyapi04
+
+statement ok
+DROP TABLE dval
+
+statement ok
+ROLLBACK
+
+
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_05.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_05.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_05.test
@@ -0,0 +1,43 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE xdata (x float)
+
+statement ok
+INSERT INTO xdata values
(-0.389410695032248),(0.628726838993798),(0.137964349185122),(0.547052722115739),(-0.285410070922731),(-0.202390786128771),(-0.259905641264271),(0.00971359683446567),(-0.521267150089632),(0.0159231195505075),(0.577474725871033),(0.223287062631593),(-0.066875141140296),(-0.0170753669716841),(0.117185399554633),(-0.0480598509921151),(-0.129129967553087),(-0.0466626051014605),(0.0263456359193208),(-0.0974973754556838),(-0.180056213888209),(-0.157380108227166),(0.635775033790671),(0.238406429376603),(0.100439668088313),(-0.169065320099862),(-0.0400168536365489),(0.513426164708468),(0.335535283793148),(-0.220402896984814),(0.476485240842118),(-0.667662669259098),(-0.0890368732815401),(-0.113422216797009),(0.00984741405585595),(-0.0151482347446424),(0.167896344184941),(0.43904811714262),(-0.0422320586227086),(-0.028208969761727),(-0.4275301298165),(0.0467051407589069),(0.365019153825165),(-0.0516634038370302),(0.0454306083669088),(-0.000386971871032756),(0.0576751
01204374),(-0.231344619590922),(0.341647364709072),(-0.302169977160809),(0.542151765040462),(0.696867682165396),(0.901450330200742),(0.978171631034533),(1.44036576988475),(0.609289102868709),(1.26871684262261),(0.980333871102418),(1.00101773810314),(0.798393099666261),(1.15328842276957),(1.04034614204703),(1.15458504793287),(1.36791086766857),(1.37203985601059),(0.561889675743039),(0.598007204844274),(0.716169894705479),(1.16185329547318),(1.18976831107129),(1.58237642589276),(0.982777404364492),(1.11837075656137),(1.06781420935443),(0.62643874002307),(1.25846521365276),(0.649477963200452),(0.601579222384029),(1.26267984342523),(1.12136426149563),(1.24966942688189),(0.959032873478579),(0.706955531509477),(1.04035944412593),(0.649697044302177),(0.932638070087457),(1.04885840822282),(1.05823112508253),(0.926464738239801),(0.940499054329297),(0.664395876769679),(0.793561721876957),(0.646756224513572),(1.03361950221238),(1.05333016469207),(0.80407222796769),(0.740844349514946),(0.805539
88011549),(1.10095022809124),(0.98036424370252)
+
+statement ok
+CREATE FUNCTION kmeans(d float, ncluster integer) returns integer
+language P
+{
+ import scipy.cluster.vq as vq
+ whitened = vq.whiten(d)
+ kmeans = (vq.kmeans(whitened,ncluster))[0]
+ groups = numpy.zeros(whitened.size)
+ for i in range(0,whitened.size):
+ min = 999999999
+ grp = -1
+ for j in range(0,kmeans.size):
+ dist = abs(whitened[i] - kmeans[j])
+ if dist < min:
+ min = dist
+ grp = j + 1
+ groups[i] = grp
+ return(groups)
+}
+
+statement error
+SELECT cluster FROM (SELECT MIN(x) AS minx, MAX(x) AS maxx, kmeans(x,5) AS
cluster FROM xdata
+ GROUP BY cluster) as cdata ORDER BY cluster
+
+statement error
+DROP FUNCTION kmeans
+
+statement error
+DROP TABLE xdata
+
+statement ok
+ROLLBACK
+
+
diff --git a/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_06.test
b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_06.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_06.test
@@ -0,0 +1,76 @@
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE rval(groupcol integer,datacol integer)
+
+statement ok
+INSERT INTO rval VALUES (1,42), (1,84), (2,42), (2,21)
+
+statement ok
+CREATE AGGREGATE aggrmedian(val integer) RETURNS integer LANGUAGE P {
+ if 'aggr_group' in locals():
+ unique = numpy.unique(aggr_group)
+ x = numpy.zeros(shape=(unique.size))
+ for i in range(0,unique.size):
+ x[i] =
numpy.median(val[numpy.where(aggr_group==unique[i])])
+ return(x)
+ else:
+ return(numpy.median(val))
+}
+
+query I rowsort
+SELECT aggrmedian(datacol) FROM rval
+----
+42
+
+query II rowsort
+SELECT groupcol,aggrmedian(datacol) FROM rval GROUP BY groupcol
+----
+1
+63
+2
+31
+
+statement ok
+DROP AGGREGATE aggrmedian
+
+statement ok
+DROP TABLE rval
+
+statement ok
+ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE rval(groupcol integer, secondgroupcol integer, datacol integer)
+
+statement ok
+INSERT INTO rval VALUES (0, 0, 1), (0, 0, 2), (0, 1, 3), (0, 1, 4), (1, 0, 5),
(1, 0, 6), (1, 1, 7), (1, 1, 8)
+
+statement ok
+CREATE AGGREGATE aggrsum(val integer) RETURNS integer LANGUAGE P {
+ unique = numpy.unique(aggr_group)
+ x = numpy.zeros(shape=(unique.size))
+ for i in range(0, unique.size):
+ x[i] = numpy.sum(val[numpy.where(aggr_group==unique[i])])
+ return x
+}
+
+query III rowsort
+SELECT groupcol,secondgroupcol,aggrsum(datacol) FROM rval GROUP BY
groupcol,secondgroupcol
+----
+12 values hashing to 372c7b7cff92fad4cfb8b283b6b5823f
+
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list