示例#1
0
    def setUp(self):
        super().setUp()

        # Create default space
        self.dimension = (5, 5, 5)
        self.resolution = 4

        self.space = Space(
            dimension=self.dimension,
            space_factor_types=[SpaceFactor.TEMPERATURE, SpaceFactor.MATTER],
            resolution=self.resolution)
示例#2
0
    def test_space(self):
        space = Space((5, 5, 5), space_factor_types=[i for i in SpaceFactor])

        try:
            pickle.dumps(space)
        except PicklingError:
            self.fail('Space is NOT pickable')
示例#3
0
文件: System.py 项目: ys-warble/Mesh
    def put_space(self, dimension, resolution=1, space_factor_types=None):
        """

        :param dimension: tuple: representing 3-dimensional space measures
        :param resolution: int: resolution for each space measure
        :param space_factor_types: list: ...
        :return:
        """
        if space_factor_types is None:
            space_factor_types = []

        self.space = Space(dimension, resolution, space_factor_types)
示例#4
0
 def func6():
     space = Space(dimension=(5, 5, 5, 5, 5),
                   resolution='1',
                   space_factor_types=[
                       SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                   ])
示例#5
0
 def func5():
     space = Space(dimension=self.dimension,
                   resolution='1',
                   space_factor_types=[
                       SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                   ])
示例#6
0
class TestSpace(AppTestCase):
    def setUp(self):
        super().setUp()

        # Create default space
        self.dimension = (5, 5, 5)
        self.resolution = 4

        self.space = Space(
            dimension=self.dimension,
            space_factor_types=[SpaceFactor.TEMPERATURE, SpaceFactor.MATTER],
            resolution=self.resolution)

    def test_constructor_valid_1(self):
        def func1():
            return Space(dimension=self.dimension,
                         resolution=self.resolution,
                         space_factor_types=[
                             SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                         ])

        def func2():
            space = Space(dimension=self.dimension)
            return space

        self.assertTrue(isinstance(func1(), Space))
        self.assertTrue(isinstance(func2(), Space))

    def test_constructor_invalid_1(self):
        def func2():
            space = Space(dimension=('5', 5, 5),
                          resolution=self.resolution,
                          space_factor_types=[
                              SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                          ])

        def func3():
            space = Space(dimension=(5, '5', 5),
                          resolution=self.resolution,
                          space_factor_types=[
                              SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                          ])

        def func4():
            space = Space(dimension=(5, 5, '5'),
                          resolution=self.resolution,
                          space_factor_types=['TEMPERATURE'])

        def func5():
            space = Space(dimension=self.dimension,
                          resolution='1',
                          space_factor_types=[
                              SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                          ])

        def func6():
            space = Space(dimension=(5, 5, 5, 5, 5),
                          resolution='1',
                          space_factor_types=[
                              SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                          ])

        self.assertRaises(TypeError, func2)
        self.assertRaises(TypeError, func3)
        self.assertRaises(TypeError, func4)
        self.assertRaises(TypeError, func5)
        self.assertRaises(IndexError, func6)

    def test_add_space_factor_valid_single(self):
        total_space_factor = len(self.space.space_factors)
        space_factor_types = list(self.space.space_factors.keys())

        self.space.add_space_factor(SpaceFactor.AIR_MOVEMENT)
        self.space.add_space_factor(SpaceFactor.HUMIDITY)
        total_space_factor += 2
        space_factor_types.append(SpaceFactor.AIR_MOVEMENT)
        space_factor_types.append(SpaceFactor.HUMIDITY)

        self.assertEqual(total_space_factor, len(self.space.space_factors))
        self.assertEqual(space_factor_types,
                         list(self.space.space_factors.keys()))

        for a, b in self.space.space_factors.items():
            for c, d in b.items():
                self.assertEqual(
                    tuple([i * self.resolution for i in self.dimension]),
                    d.shape)

    def test_add_space_factor_valid_list(self):
        total_space_factor = len(self.space.space_factors)
        space_factor_types = list(self.space.space_factors.keys())

        self.space.add_space_factor([
            SpaceFactor.AIR_MOVEMENT, SpaceFactor.HUMIDITY,
            SpaceFactor.LUMINOSITY
        ])
        self.space.add_space_factor([])
        total_space_factor += 3
        space_factor_types.append(SpaceFactor.AIR_MOVEMENT)
        space_factor_types.append(SpaceFactor.HUMIDITY)
        space_factor_types.append(SpaceFactor.LUMINOSITY)

        self.assertEqual(total_space_factor, len(self.space.space_factors))
        self.assertEqual(space_factor_types,
                         list(self.space.space_factors.keys()))

        for a, b in self.space.space_factors.items():
            for c, d in b.items():
                self.assertEqual(
                    tuple([i * self.resolution for i in self.dimension]),
                    d.shape)

    def test_add_space_factor_invalid_single(self):
        def func1():
            self.space.add_space_factor(1)

        def func2():
            self.space.add_space_factor(['HUMIDITY'])

        self.assertRaises(TypeError, func1)
        self.assertRaises(TypeError, func2)

    def test_add_space_factor_invalid_list(self):
        def func1():
            self.space.add_space_factor([1, 2, 3])

        def func2():
            self.space.add_space_factor(['HUMIDITY', 'AIR_MOVEMENT'])

        self.assertRaises(TypeError, func1)
        self.assertRaises(TypeError, func2)
示例#7
0
 def func4():
     space = Space(dimension=(5, 5, '5'),
                   resolution=self.resolution,
                   space_factor_types=['TEMPERATURE'])
示例#8
0
 def func3():
     space = Space(dimension=(5, '5', 5),
                   resolution=self.resolution,
                   space_factor_types=[
                       SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                   ])
示例#9
0
 def func2():
     space = Space(dimension=self.dimension)
     return space
示例#10
0
 def func1():
     return Space(dimension=self.dimension,
                  resolution=self.resolution,
                  space_factor_types=[
                      SpaceFactor.TEMPERATURE, SpaceFactor.MATTER
                  ])