summaryrefslogtreecommitdiff
path: root/test/test_function.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_function.py')
-rw-r--r--test/test_function.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/test/test_function.py b/test/test_function.py
index c0fb3fd..ed7d6bc 100644
--- a/test/test_function.py
+++ b/test/test_function.py
@@ -10,18 +10,18 @@ Distributed under the MIT License (MIT)
from __future__ import print_function
import numpy as np
from copy import copy
-from numpy.testing import assert_equal, assert_almost_equal, \
- assert_array_almost_equal
+from numpy.testing import assert_almost_equal, assert_array_almost_equal
import pyspike as spk
+
def test_pwc():
# some random data
x = [0.0, 1.0, 2.0, 2.5, 4.0]
y = [1.0, -0.5, 1.5, 0.75]
f = spk.PieceWiseConstFunc(x, y)
xp, yp = f.get_plottable_data()
-
+
xp_expected = [0.0, 1.0, 1.0, 2.0, 2.0, 2.5, 2.5, 4.0]
yp_expected = [1.0, 1.0, -0.5, -0.5, 1.5, 1.5, 0.75, 0.75]
assert_array_almost_equal(xp, xp_expected, decimal=16)
@@ -51,17 +51,18 @@ def test_pwc_add():
f2.add(f)
assert_array_almost_equal(f2.x, x_expected, decimal=16)
assert_array_almost_equal(f2.y, y_expected, decimal=16)
-
+
f1.add(f2)
# same x, but y doubled
assert_array_almost_equal(f1.x, f2.x, decimal=16)
assert_array_almost_equal(f1.y, 2*f2.y, decimal=16)
+
def test_pwc_mul():
x = [0.0, 1.0, 2.0, 2.5, 4.0]
y = [1.0, -0.5, 1.5, 0.75]
f = spk.PieceWiseConstFunc(x, y)
-
+
f.mul_scalar(1.5)
assert_array_almost_equal(f.x, x, decimal=16)
assert_array_almost_equal(f.y, 1.5*np.array(y), decimal=16)
@@ -75,15 +76,15 @@ def test_pwl():
y2 = [1.5, -0.4, 1.5, 0.25]
f = spk.PieceWiseLinFunc(x, y1, y2)
xp, yp = f.get_plottable_data()
-
+
xp_expected = [0.0, 1.0, 1.0, 2.0, 2.0, 2.5, 2.5, 4.0]
yp_expected = [1.0, 1.5, -0.5, -0.4, 1.5, 1.5, 0.75, 0.25]
assert_array_almost_equal(xp, xp_expected, decimal=16)
assert_array_almost_equal(yp, yp_expected, decimal=16)
-
+
avrg_expected = (1.25 - 0.45 + 0.75 + 1.5*0.5) / 4.0
assert_almost_equal(f.avrg(), avrg_expected, decimal=16)
-
+
abs_avrg_expected = (1.25 + 0.45 + 0.75 + 1.5*0.5) / 4.0
assert_almost_equal(f.abs_avrg(), abs_avrg_expected, decimal=16)
@@ -113,7 +114,7 @@ def test_pwl_add():
assert_array_almost_equal(f2.x, x_expected, decimal=16)
assert_array_almost_equal(f2.y1, y1_expected, decimal=16)
assert_array_almost_equal(f2.y2, y2_expected, decimal=16)
-
+
f1.add(f2)
# same x, but y doubled
assert_array_almost_equal(f1.x, f2.x, decimal=16)
@@ -121,12 +122,12 @@ def test_pwl_add():
assert_array_almost_equal(f1.y2, 2*f2.y2, decimal=16)
-def test_pwc_mul():
+def test_pwl_mul():
x = [0.0, 1.0, 2.0, 2.5, 4.0]
y1 = [1.0, -0.5, 1.5, 0.75]
y2 = [1.5, -0.4, 1.5, 0.25]
f = spk.PieceWiseLinFunc(x, y1, y2)
-
+
f.mul_scalar(1.5)
assert_array_almost_equal(f.x, x, decimal=16)
assert_array_almost_equal(f.y1, 1.5*np.array(y1), decimal=16)
@@ -137,3 +138,8 @@ def test_pwc_mul():
if __name__ == "__main__":
test_pwc()
+ test_pwc_add()
+ test_pwc_mul()
+ test_pwl()
+ test_pwl_add()
+ test_pwl_mul()