1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
"""
If numpy's present, is numpy stuff ok?
"""
import os
import unittest
import param
from .utils import check_defaults
try:
import numpy
import numpy.testing
except ImportError:
if os.getenv('PARAM_TEST_NUMPY','0') == '1':
raise ImportError("PARAM_TEST_NUMPY=1 but numpy not available.")
else:
raise unittest.SkipTest("numpy not available")
def _is_array_and_equal(test, ref):
if not type(test) == numpy.ndarray:
raise AssertionError
numpy.testing.assert_array_equal(test,ref)
# TODO: incomplete
class TestNumpy(unittest.TestCase):
def _check_defaults(self, p):
assert p.default is None
assert p.allow_None is True
assert p.instantiate is True
assert p.is_instance is True
assert p.class_ == numpy.ndarray
def test_defaults_class(self):
class P(param.Parameterized):
s = param.Array()
check_defaults(P.param.s, label='S', skip=['instantiate'])
self._check_defaults(P.param.s)
def test_defaults_inst(self):
class P(param.Parameterized):
s = param.Array()
p = P()
check_defaults(p.param.s, label='S', skip=['instantiate'])
self._check_defaults(p.param.s)
def test_defaults_unbound(self):
s = param.Array()
check_defaults(s, label=None, skip=['instantiate'])
self._check_defaults(s)
def test_array_param(self):
class Z(param.Parameterized):
z = param.Array(default=numpy.array([1]))
_is_array_and_equal(Z.z,[1])
z = Z(z=numpy.array([1,2]))
_is_array_and_equal(z.z,[1,2])
def test_array_param_positional(self):
class Z(param.Parameterized):
z = param.Array(numpy.array([1]))
_is_array_and_equal(Z.z,[1])
z = Z(z=numpy.array([1,2]))
_is_array_and_equal(z.z,[1,2])
def test_array_pprint(self):
class MatParam(param.Parameterized):
mat = param.Array(numpy.zeros((2, 2)))
mp = MatParam()
mp.param.pprint()
|