Changeset: 652b14f1d3c2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=652b14f1d3c2
Modified Files:
sql/backends/monet5/Tests/pyapi10.sql
sql/backends/monet5/Tests/pyapi10.stable.err
sql/backends/monet5/Tests/pyapi10.stable.out
sql/backends/monet5/Tests/pyapi11.sql
sql/backends/monet5/Tests/pyapi11.stable.out
sql/backends/monet5/Tests/pyapi13.sql
sql/backends/monet5/Tests/pyapi13.stable.out
Branch: pythonudf
Log Message:
Modify tests to use vectorized operations instead of non-vectorized operations.
diffs (240 lines):
diff --git a/sql/backends/monet5/Tests/pyapi10.sql
b/sql/backends/monet5/Tests/pyapi10.sql
--- a/sql/backends/monet5/Tests/pyapi10.sql
+++ b/sql/backends/monet5/Tests/pyapi10.sql
@@ -8,27 +8,16 @@ START TRANSACTION;
CREATE FUNCTION pyapi10_random_table(entries integer) returns table (i
integer, j integer)
language P
{
- import random
- random.seed(123)
- results = [numpy.zeros(entries), numpy.zeros(entries)]
- for i in range(0,entries):
- results[0][i] = random.randint(0,100)
- results[1][i] = random.randint(0,100)
- return(results)
+ numpy.random.seed(123)
+ return {'i': numpy.random.randint(0, 100, entries), 'j':
numpy.random.randint(0, 100, entries)}
};
CREATE FUNCTION pyapi10_random_table_nulls(entries integer) returns table (i
integer, j integer)
language P
{
- import random
- random.seed(123)
- results = [numpy.ma.masked_array(numpy.zeros(entries), 0),
numpy.ma.masked_array(numpy.zeros(entries), 0)]
- for i in range(0,entries):
- for j in range(0,2):
- results[j][i] = random.randint(0,100)
- if results[j][i] < 50:
- results[j].mask[i] = True
- return(results)
+ numpy.random.seed(123)
+ res = {'i': numpy.random.randint(0, 100, entries), 'j':
numpy.random.randint(0, 100, entries)}
+ return {'i': numpy.ma.masked_array(res['i'], mask=res['i'] < 50), 'j':
numpy.ma.masked_array(res['j'], mask=res['j'] < 50)}
};
@@ -62,15 +51,9 @@ START TRANSACTION;
CREATE FUNCTION pyapi10_random_table_nulls(entries integer) returns table (i
integer, j integer)
language P
{
- import random
- random.seed(123)
- results = [numpy.ma.masked_array(numpy.zeros(entries), 0),
numpy.ma.masked_array(numpy.zeros(entries), 0)]
- for i in range(0,entries):
- for j in range(0,2):
- results[j][i] = random.randint(0,100)
- if results[j][i] < 50:
- results[j].mask[i] = True
- return(results)
+ numpy.random.seed(123)
+ res = {'i': numpy.random.randint(0, 100, entries), 'j':
numpy.random.randint(0, 100, entries)}
+ return {'i': numpy.ma.masked_array(res['i'], mask=res['i'] < 50), 'j':
numpy.ma.masked_array(res['j'], mask=res['j'] < 50)}
};
# This function is incorrect on purpose
@@ -121,19 +104,12 @@ language PYTHON_MAP
# Let's try a runtime exception
START TRANSACTION;
-
CREATE FUNCTION pyapi10_random_table_nulls(entries integer) returns table (i
integer, j integer)
language P
{
- import random
- random.seed(123)
- results = [numpy.ma.masked_array(numpy.zeros(entries), 0),
numpy.ma.masked_array(numpy.zeros(entries), 0)]
- for i in range(0,entries):
- for j in range(0,2):
- results[j][i] = random.randint(0,100)
- if results[j][i] < 50:
- results[j].mask[i] = True
- return(results)
+ numpy.random.seed(123)
+ res = {'i': numpy.random.randint(0, 100, entries), 'j':
numpy.random.randint(0, 100, entries)}
+ return {'i': numpy.ma.masked_array(res['i'], mask=res['i'] < 50), 'j':
numpy.ma.masked_array(res['j'], mask=res['j'] < 50)}
};
# This function is incorrect on purpose
diff --git a/sql/backends/monet5/Tests/pyapi10.stable.err
b/sql/backends/monet5/Tests/pyapi10.stable.err
--- a/sql/backends/monet5/Tests/pyapi10.stable.err
+++ b/sql/backends/monet5/Tests/pyapi10.stable.err
@@ -31,7 +31,7 @@ stderr of test 'pyapi10` in directory 's
# 15:32:31 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-27693" "--port=33372"
# 15:32:31 >
-MAPI = (monetdb) /var/tmp/mtest-28978/.s.monetdb.30135
+MAPI = (monetdb) /var/tmp/mtest-30156/.s.monetdb.35525
QUERY = SELECT AVG(pyapi10_error(i,j)) FROM pyapi10_random_table_nulls(5000);
ERROR = !MALException:pyapi.eval:Could not parse Python code
!
@@ -39,7 +39,7 @@ ERROR = !MALException:pyapi.eval:Could n
!> 2. return(i*j
! 3.
!invalid syntax (<string>, line 2)
-MAPI = (monetdb) /var/tmp/mtest-28978/.s.monetdb.30135
+MAPI = (monetdb) /var/tmp/mtest-30156/.s.monetdb.35525
QUERY = SELECT AVG(pyapi10_indentation_error(i,j)) FROM
pyapi10_random_table_nulls(5000);
ERROR = !MALException:pyapi.eval:Could not parse Python code
! 7. f = 6
@@ -48,7 +48,7 @@ ERROR = !MALException:pyapi.eval:Could n
! 10. i = 9
! 11. j = 10
!unexpected indent (<string>, line 9)
-MAPI = (monetdb) /var/tmp/mtest-28978/.s.monetdb.30135
+MAPI = (monetdb) /var/tmp/mtest-30156/.s.monetdb.35525
QUERY = SELECT AVG(pyapi10_runtime_exception(i,j)) FROM
pyapi10_random_table_nulls(5000);
ERROR = !MALException:pyapi.eval:Python exception
! 4. mydivision = 0
diff --git a/sql/backends/monet5/Tests/pyapi10.stable.out
b/sql/backends/monet5/Tests/pyapi10.stable.out
--- a/sql/backends/monet5/Tests/pyapi10.stable.out
+++ b/sql/backends/monet5/Tests/pyapi10.stable.out
@@ -69,13 +69,13 @@ Ready.
% L2 # name
% double # type
% 24 # length
-[ 2507.2468 ]
+[ 2487.9556 ]
#SELECT AVG(pyapi10_mult(i,j)) FROM pyapi10_random_table_nulls(5000);
% .L2 # table_name
% L2 # name
% double # type
% 24 # length
-[ 5661.349765 ]
+[ 5603.14638 ]
#DROP FUNCTION pyapi10_random_table;
#DROP FUNCTION pyapi10_mult;
#ROLLBACK;
diff --git a/sql/backends/monet5/Tests/pyapi11.sql
b/sql/backends/monet5/Tests/pyapi11.sql
--- a/sql/backends/monet5/Tests/pyapi11.sql
+++ b/sql/backends/monet5/Tests/pyapi11.sql
@@ -6,15 +6,9 @@ START TRANSACTION;
CREATE FUNCTION pyapi11_random_table_nulls(entries integer) returns table (i
integer, j integer)
language P
{
- import random
- random.seed(123)
- results = [numpy.ma.masked_array(numpy.zeros(entries), 0),
numpy.ma.masked_array(numpy.zeros(entries), 0)]
- for i in range(0,entries):
- for j in range(0,2):
- results[j][i] = random.randint(0,100)
- if results[j][i] < 50:
- results[j].mask[i] = True
- return(results)
+ numpy.random.seed(123)
+ res = {'i': numpy.random.randint(0, 100, entries), 'j':
numpy.random.randint(0, 100, entries)}
+ return {'i': numpy.ma.masked_array(res['i'], mask=res['i'] < 50), 'j':
numpy.ma.masked_array(res['j'], mask=res['j'] < 50)}
};
diff --git a/sql/backends/monet5/Tests/pyapi11.stable.out
b/sql/backends/monet5/Tests/pyapi11.stable.out
--- a/sql/backends/monet5/Tests/pyapi11.stable.out
+++ b/sql/backends/monet5/Tests/pyapi11.stable.out
@@ -58,7 +58,7 @@ Ready.
% pyapi11_mean_pyapi11_mult_i # name
% double # type
% 24 # length
-[ 5661.349765 ]
+[ 5603.14638 ]
#DROP FUNCTION pyapi11_random_table_nulls;
#DROP FUNCTION pyapi11_mean;
#DROP FUNCTION pyapi11_mult;
diff --git a/sql/backends/monet5/Tests/pyapi13.sql
b/sql/backends/monet5/Tests/pyapi13.sql
--- a/sql/backends/monet5/Tests/pyapi13.sql
+++ b/sql/backends/monet5/Tests/pyapi13.sql
@@ -6,15 +6,9 @@ START TRANSACTION;
CREATE FUNCTION pyapi13_random_table_nulls(entries integer) returns table (i
integer, j integer)
language P
{
- import random
- random.seed(123)
- results = [numpy.ma.masked_array(numpy.zeros(entries), 0),
numpy.ma.masked_array(numpy.zeros(entries), 0)]
- for i in range(0,entries):
- for j in range(0,2):
- results[j][i] = random.randint(0,100)
- if results[j][i] < 50:
- results[j].mask[i] = True
- return(results)
+ numpy.random.seed(123)
+ res = {'i': numpy.random.randint(0, 100, entries), 'j':
numpy.random.randint(0, 100, entries)}
+ return {'i': numpy.ma.masked_array(res['i'], mask=res['i'] < 50), 'j':
numpy.ma.masked_array(res['j'], mask=res['j'] < 50)}
};
#"normal" indentation
diff --git a/sql/backends/monet5/Tests/pyapi13.stable.out
b/sql/backends/monet5/Tests/pyapi13.stable.out
--- a/sql/backends/monet5/Tests/pyapi13.stable.out
+++ b/sql/backends/monet5/Tests/pyapi13.stable.out
@@ -94,7 +94,7 @@ Addition in python is not inconsistent!
% L2 # name
% wrd # type
% 4 # length
-[ 1278 ]
+[ 1257 ]
#DROP FUNCTION pyapi13_mult;
#CREATE FUNCTION pyapi13_mult(i integer,j integer) returns integer
#language PYTHON_MAP { return(i*j)
@@ -104,7 +104,7 @@ Addition in python is not inconsistent!
% L2 # name
% wrd # type
% 4 # length
-[ 1278 ]
+[ 1257 ]
#DROP FUNCTION pyapi13_mult;
#CREATE FUNCTION pyapi13_mult(i integer,j integer) returns integer language
PYTHON_MAP { return(i*j) };
#SELECT COUNT(pyapi13_mult(i,j)) FROM pyapi13_random_table_nulls(5000);
@@ -112,7 +112,7 @@ Addition in python is not inconsistent!
% L2 # name
% wrd # type
% 4 # length
-[ 1278 ]
+[ 1257 ]
#DROP FUNCTION pyapi13_mult;
#CREATE FUNCTION pyapi13_mult(i integer,j integer) returns integer
#language PYTHON_MAP
@@ -126,7 +126,7 @@ Addition in python is not inconsistent!
% L2 # name
% wrd # type
% 4 # length
-[ 1278 ]
+[ 1257 ]
#DROP FUNCTION pyapi13_mult;
#CREATE FUNCTION pyapi13_mult(i integer,j integer) returns integer
#language PYTHON_MAP
@@ -147,7 +147,7 @@ Addition in python is not inconsistent!
% L2 # name
% wrd # type
% 4 # length
-[ 1278 ]
+[ 1257 ]
#DROP FUNCTION pyapi13_mult;
#CREATE FUNCTION pyapi13_mult(i integer,j integer) returns integer
#language PYTHON_MAP
@@ -170,7 +170,7 @@ Addition in python is not inconsistent!
% L2 # name
% wrd # type
% 4 # length
-[ 1278 ]
+[ 1257 ]
#DROP FUNCTION pyapi13_mult;
#DROP FUNCTION pyapi13_random_table_nulls;
#ROLLBACK;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list