From 4a22091d454a9e02964b09ee63f98aeb1d57e769 Mon Sep 17 00:00:00 2001 From: Ben North Date: Tue, 5 Jul 2016 20:03:02 +0100 Subject: [PATCH] Add tests for doubling row- and col-vectors Passing a non-contiguous one-dimensional numpy array gives incorrect results, so three of these tests fail. The only one passing is the simple case where the numpy array is contiguous and we are building a column-major vector. Subsequent commit will fix the three failing cases. --- example/eigen.py | 13 +++++++++++++ example/eigen.ref | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/example/eigen.py b/example/eigen.py index accaf236a..13e6301f2 100644 --- a/example/eigen.py +++ b/example/eigen.py @@ -9,6 +9,7 @@ from example import dense_r, dense_c from example import dense_passthrough_r, dense_passthrough_c from example import sparse_r, sparse_c from example import sparse_passthrough_r, sparse_passthrough_c +from example import double_row, double_col import numpy as np ref = np.array( @@ -42,3 +43,15 @@ print("pt_r(sparse_r) = %s" % check(sparse_passthrough_r(sparse_r()))) print("pt_c(sparse_c) = %s" % check(sparse_passthrough_c(sparse_c()))) print("pt_r(sparse_c) = %s" % check(sparse_passthrough_r(sparse_c()))) print("pt_c(sparse_r) = %s" % check(sparse_passthrough_c(sparse_r()))) + +def check_got_vs_ref(got_x, ref_x): + return 'OK' if np.array_equal(got_x, ref_x) else 'NOT OK' + +counting_mat = np.arange(9.0, dtype=np.float32).reshape((3, 3)) +first_row = counting_mat[0, :] +first_col = counting_mat[:, 0] + +print("double_row(first_row) = %s" % check_got_vs_ref(double_row(first_row), 2.0 * first_row)) +print("double_col(first_row) = %s" % check_got_vs_ref(double_col(first_row), 2.0 * first_row)) +print("double_row(first_col) = %s" % check_got_vs_ref(double_row(first_col), 2.0 * first_col)) +print("double_col(first_col) = %s" % check_got_vs_ref(double_col(first_col), 2.0 * first_col)) diff --git a/example/eigen.ref b/example/eigen.ref index b87f8ede3..460172872 100644 --- a/example/eigen.ref +++ b/example/eigen.ref @@ -16,3 +16,7 @@ pt_r(sparse_r) = OK pt_c(sparse_c) = OK pt_r(sparse_c) = OK pt_c(sparse_r) = OK +double_row(first_row) = OK +double_col(first_row) = OK +double_row(first_col) = OK +double_col(first_col) = OK