コード例 #1
0
    def test_partitioned_sections_are_linked(self): # pylint: disable=C0103
        """
        Partitioned sections should be linked together
        """
        partitioner = GridPartitioner('crypt',
                                      2,
                                      2,
                                      self.rng)
        sections = partitioner.partition_level(self.mock_level)

        assert_that(sections, has_length(4))
        assert_that(sections[0].connections, has_length(greater_than(0)))
コード例 #2
0
    def test_partitioning_returns_sections(self): # pylint: disable=C0103
        """
        Test that partitioning level returns default amount of sections
        """
        partitioner = GridPartitioner('crypt',
                                      3,
                                      3,
                                      self.rng)

        sections = partitioner.partition_level(self.mock_level)

        assert_that(sections, has_length(9))
コード例 #3
0
    def test_splitting_range(self):
        """
        Test that a line can be split into equal parts
        """
        partitioner = GridPartitioner(['crypt'],
                                      4,
                                      3,
                                      random.Random())

        ranges = partitioner.split_range_to_equals(10, 3)

        assert_that(ranges, has_length(3))

        assert_that(ranges[0], is_(equal_to((0, 2))))
        assert_that(ranges[1], is_(equal_to((3, 5))))
        assert_that(ranges[2], is_(equal_to((6, 8))))
コード例 #4
0
 def setup(self):
     """
     Setup tests
     """
     self.mock_level = mock(Level)
     when(self.mock_level).get_size().thenReturn((20, 20))
     self.rng = random.Random()
     self.partitioner = GridPartitioner('crypt',
                                        2,
                                        1,
                                        self.rng)
コード例 #5
0
class TestGridPartitioner:
    """
    Tests for GridPartitioner
    """
    def __init__(self):
        """
        Default constructor
        """
        self.mock_level = None
        self.partitioner = None
        self.rng = None

    def setup(self):
        """
        Setup tests
        """
        self.mock_level = mock(Level)
        when(self.mock_level).get_size().thenReturn((20, 20))
        self.rng = random.Random()
        self.partitioner = GridPartitioner('crypt',
                                           2,
                                           1,
                                           self.rng)

    def test_partitioning_returns_sections(self): # pylint: disable=C0103
        """
        Test that partitioning level returns default amount of sections
        """
        partitioner = GridPartitioner('crypt',
                                      3,
                                      3,
                                      self.rng)

        sections = partitioner.partition_level(self.mock_level)

        assert_that(sections, has_length(9))

    def test_sections_have_neighbours(self):
        """
        Test that sections are marked being neighbours
        """
        sections = self.partitioner.partition_level(self.mock_level)

        assert_that(sections[0].neighbours, has_length(1))

    def test_partitioned_sections_are_linked(self): # pylint: disable=C0103
        """
        Partitioned sections should be linked together
        """
        partitioner = GridPartitioner('crypt',
                                      2,
                                      2,
                                      self.rng)
        sections = partitioner.partition_level(self.mock_level)

        assert_that(sections, has_length(4))
        assert_that(sections[0].connections, has_length(greater_than(0)))

    def test_new_sections_are_on_level(self):
        """
        Test that created sections are linked to level
        """
        sections = self.partitioner.partition_level(self.mock_level)

        for section in sections:
            assert_that(section.level, is_(same_instance(self.mock_level)))