Пример #1
0
    def test_mower_dont_go_out_of_lawn_by_east(self):
        lawn = (Point(0, 0), Point(0, 0))
        mower = Mower(ini_dir=Dir.EAST, ini_pos=Point(0, 0), program=[Cmd.FWD, Cmd.LEFT])

        mower.do_next_step(lawn=lawn, others=[])
        mower.do_next_step(lawn=lawn, others=[])
        self.assertEqual(mower.cur_pos, Point(0, 0))
        self.assertEqual(mower.cur_dir, Dir.NORTH)
Пример #2
0
    def test_mower_do_next_step(self):
        lawn = (Point(0, 0), Point(9, 9))
        mower = Mower(ini_dir=Dir.NORTH, ini_pos=Point(1, 2), program=[Cmd.RIGHT, Cmd.FWD])

        mower.do_next_step(lawn=lawn, others=[])
        self.assertEqual(mower.cur_pos, Point(1, 2))
        self.assertEqual(mower.cur_dir, Dir.EAST)

        mower.do_next_step(lawn=lawn, others=[])
        self.assertEqual(mower.cur_pos, Point(2, 2))
        self.assertEqual(mower.cur_dir, Dir.EAST)
Пример #3
0
    def test_mower_collide_first_wins(self):
        lawn = (Point(0, 0), Point(2, 2))
        m1 = Mower(ini_dir=Dir.EAST, ini_pos=Point(0, 1), program=[Cmd.FWD])
        m2 = Mower(ini_dir=Dir.WEST, ini_pos=Point(2, 1), program=[Cmd.FWD])
        m3 = Mower(ini_dir=Dir.SOUTH, ini_pos=Point(1, 2), program=[Cmd.FWD])

        m1.do_next_step(lawn=lawn, others=[m2, m3])
        m2.do_next_step(lawn=lawn, others=[m1, m3])
        m3.do_next_step(lawn=lawn, others=[m1, m2])

        self.assertEqual(m1.cur_pos, Point(1, 1))
        self.assertEqual(m1.cur_dir, Dir.EAST)

        self.assertEqual(m2.cur_pos, Point(2, 1))
        self.assertEqual(m2.cur_dir, Dir.WEST)

        self.assertEqual(m3.cur_pos, Point(1, 2))
        self.assertEqual(m3.cur_dir, Dir.SOUTH)