Пример #1
0
    def test_eq(self):
        """Two hexes with the same coordinates are equal.

        """
        h = hex_utils.Hex(1, 4)
        h2 = hex_utils.Hex(1, 4)
        self.assertEqual(h, h2)
Пример #2
0
    def test_distance(self):
        """Distance between hexes.

        """
        h = hex_utils.Hex(-1, -2)
        h2 = hex_utils.Hex(2, 2)
        self.assertEqual(7, h.distance(h2))
Пример #3
0
    def test_repr(self):
        """Hexes have a reasonable print value.

        """
        h = hex_utils.Hex(1, -4, 3)
        s = repr(h)
        self.assertEqual('Hex(1, -4, 3)', s)
Пример #4
0
    def test_init__floats(self):
        """A Hex created from floats has the highest value trimmed as necessary to land on valid coordinates.

        """
        h = hex_utils.Hex(1.3, 3.4, -4.9)
        self.assertEqual(1, h.x)
        self.assertEqual(4, h.y)
        self.assertEqual(-5, h.z)
Пример #5
0
    def test_init__integers_with_invalid_z(self):
        """Invalid z is overwritten.

        """
        h = hex_utils.Hex(-1, -7, 17)
        self.assertEqual(-1, h.x)
        self.assertEqual(-7, h.y)
        self.assertEqual(8, h.z)
Пример #6
0
    def test_init__integers_with_z(self):
        """A provided z value is set.

        """
        h = hex_utils.Hex(2, -4, 2)
        self.assertEqual(2, h.x)
        self.assertEqual(-4, h.y)
        self.assertEqual(2, h.z)
Пример #7
0
    def test_init__integers(self):
        """An absent z value is calculated.

        """
        h = hex_utils.Hex(1, 3)
        self.assertEqual(-4, h.z)
        self.assertEqual(1, h.x)
        self.assertEqual(3, h.y)
        self.assertEqual(-4, h.z)
Пример #8
0
    def test_add_direction(self):
        """Take a step in each direction.

        """
        h = hex_utils.Hex(0, 0)
        self.assertEqual(hex_utils.Hex(0, 1, -1),
                         h + hex_utils.DIRECTIONS['NW'])
        self.assertEqual(hex_utils.Hex(1, 0, -1),
                         h + hex_utils.DIRECTIONS['NE'])
        self.assertEqual(hex_utils.Hex(1, -1, 0),
                         h + hex_utils.DIRECTIONS['E'])
        self.assertEqual(hex_utils.Hex(0, -1, 1),
                         h + hex_utils.DIRECTIONS['SE'])
        self.assertEqual(hex_utils.Hex(-1, 0, 1),
                         h + hex_utils.DIRECTIONS['SW'])
        self.assertEqual(hex_utils.Hex(-1, 1, 0),
                         h + hex_utils.DIRECTIONS['W'])
Пример #9
0
    def test_line(self):
        """Distance between hexes.

        """
        h = hex_utils.Hex(-3, 2)
        h2 = hex_utils.Hex(1, 1)

        line = [x for x in h.line(h2)]

        self.assertEqual([
            hex_utils.Hex(-2, 2),
            hex_utils.Hex(-1, 2),
            hex_utils.Hex(0, 1),
            hex_utils.Hex(1, 1)
        ], line)
Пример #10
0
 def test_sub(self):
     h = hex_utils.Hex(0, 0)
     h2 = hex_utils.Hex(3, -1)
     self.assertEqual(h, h + h2 - h2)