test_interface.py 2.24 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Theo Steininger's avatar
Theo Steininger committed
13
14
15
16
17
#
# Copyright(C) 2013-2017 Max-Planck-Society
#
# NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik
# and financially supported by the Studienstiftung des deutschen Volkes.
18

Jait Dixit's avatar
Jait Dixit committed
19
20
import unittest
import numpy as np
21
from numpy.testing import assert_, assert_equal
Jait Dixit's avatar
Jait Dixit committed
22
23

from itertools import product
Jait Dixit's avatar
Jait Dixit committed
24
from types import LambdaType
25
from test.common import expand, generate_spaces, generate_harmonic_spaces
Jait Dixit's avatar
Jait Dixit committed
26

Martin Reinecke's avatar
Martin Reinecke committed
27
from nifty2go.spaces import *
28

Jait Dixit's avatar
Jait Dixit committed
29
30

class SpaceInterfaceTests(unittest.TestCase):
Martin Reinecke's avatar
Martin Reinecke committed
31
    @expand(product(generate_spaces(), [
Jait Dixit's avatar
Jait Dixit committed
32
33
34
35
36
                    ['harmonic', bool],
                    ['shape', tuple],
                    ['dim', int],
                    ['total_volume', np.float]]))
    def test_property_ret_type(self, space, attr_expected_type):
37
38
        assert_(isinstance(getattr(space, attr_expected_type[0]),
                           attr_expected_type[1]))
Jait Dixit's avatar
Jait Dixit committed
39

40
    @expand(product(generate_harmonic_spaces(), [
Martin Reinecke's avatar
Martin Reinecke committed
41
        ['get_distance_array', np.ndarray],
Jait Dixit's avatar
Jait Dixit committed
42
43
44
        ['get_fft_smoothing_kernel_function', 2.0, LambdaType],
        ]))
    def test_method_ret_type(self, space, method_expected_type):
45
46
47
        assert_(type(getattr(space, method_expected_type[0])(
                          *method_expected_type[1:-1])) is
                method_expected_type[-1])
48
49
50
51
52
53
54

    @expand([[space] for space in generate_spaces()])
    def test_copy(self, space):
        # make sure it's a deep copy
        assert_(space is not space.copy())
        # make sure contents are the same
        assert_equal(space, space.copy())
55
56
57
58

    @expand([[space] for space in generate_spaces()])
    def test_repr(self, space):
        assert_(space == eval(space.__repr__()))