コード例 #1
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_left(self):
        subject = Robot()
        subject.left()

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 0)
        self.assertEqual(subject.facing, 'WEST')
コード例 #2
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move(self):
        subject = Robot()
        subject.move()

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 1)
        self.assertEqual(subject.facing, 'NORTH')
コード例 #3
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_place(self):
        subject = Robot()
        subject.place('4,2,EAST')

        self.assertEqual(subject.x, 4)
        self.assertEqual(subject.y, 2)
        self.assertEqual(subject.facing, 'EAST')
コード例 #4
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_call_move(self):
        subject = Robot()
        subject.call('MOVE')

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 1)
        self.assertEqual(subject.facing, 'NORTH')
コード例 #5
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_call_unknown(self):
        subject = Robot()
        subject.call('UNKNOWN')

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 0)
        self.assertEqual(subject.facing, 'NORTH')
コード例 #6
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_call_left(self):
        subject = Robot()
        subject.call('LEFT')

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 0)
        self.assertEqual(subject.facing, 'WEST')
コード例 #7
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_call_place(self):
        subject = Robot()
        subject.call('PLACE', '4,2,EAST')

        self.assertEqual(subject.x, 4)
        self.assertEqual(subject.y, 2)
        self.assertEqual(subject.facing, 'EAST')
コード例 #8
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_right(self):
        subject = Robot()
        subject.right()

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 0)
        self.assertEqual(subject.facing, 'EAST')
コード例 #9
0
def test_turn_right_on_robot_not_placed():
    with pytest.raises(MissingPlaceCommandException) as e:
        robot = Robot()
        robot.turn_right()
    assert str(e.value) == 'Robot not placed.'
    assert robot.x_coordinate is None
    assert robot.y_coordinate is None
    assert robot.facing is None
コード例 #10
0
def test_move_on_robot_placed(input_params, x, y, direction):
    robot = Robot()
    robot.place(input_params)
    robot.move()
    assert robot.x_coordinate == x
    assert robot.y_coordinate == y
    assert robot.facing == direction
コード例 #11
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move_west_from_place_2_2_west(self):
        subject = Robot()
        subject.place('2,2,WEST')
        subject.move()

        self.assertEqual(subject.x, 1)
        self.assertEqual(subject.y, 2)
        self.assertEqual(subject.facing, 'WEST')
コード例 #12
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move_east_from_origin(self):
        subject = Robot()
        subject.right()
        subject.move()

        self.assertEqual(subject.x, 1)
        self.assertEqual(subject.y, 0)
        self.assertEqual(subject.facing, 'EAST')
コード例 #13
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move_south_from_place_2_2_south(self):
        subject = Robot()
        subject.place('2,2,SOUTH')
        subject.move()

        self.assertEqual(subject.x, 2)
        self.assertEqual(subject.y, 1)
        self.assertEqual(subject.facing, 'SOUTH')
コード例 #14
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move_east_from_place_2_2_east(self):
        subject = Robot()
        subject.place('2,2,EAST')
        subject.move()

        self.assertEqual(subject.x, 3)
        self.assertEqual(subject.y, 2)
        self.assertEqual(subject.facing, 'EAST')
コード例 #15
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move_north_from_place_2_2_north(self):
        subject = Robot()
        subject.place('2,2,NORTH')
        subject.move()

        self.assertEqual(subject.x, 2)
        self.assertEqual(subject.y, 3)
        self.assertEqual(subject.facing, 'NORTH')
コード例 #16
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move_west_from_origin(self):
        subject = Robot()
        subject.left()
        subject.move()

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 0)
        self.assertEqual(subject.facing, 'WEST')
コード例 #17
0
def test_move_for_robot_out_of_bounds(input_params, x, y, direction):
    with pytest.raises(MoveOutOfBoundsException) as e:
        robot = Robot()
        robot.place(input_params)
        robot.move()
    assert str(e.value) == 'Cannot move robot. Coordinates out of bound.'
    assert robot.x_coordinate == x
    assert robot.y_coordinate == y
    assert robot.facing == direction
コード例 #18
0
def test_report_on_robot_placed(capsys):
    robot = Robot()
    robot.place([0, 0, 'NORTH'])
    robot.report()
    assert robot.x_coordinate == 0
    assert robot.y_coordinate == 0
    assert robot.facing == 'NORTH'
    captured = capsys.readouterr()
    assert captured.out.replace('\n', '') == 'Output: 0, 0, NORTH'
コード例 #19
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
    def test_robot_move_south_from_origin(self):
        subject = Robot()
        subject.left()
        subject.left()
        subject.move()

        self.assertEqual(subject.x, 0)
        self.assertEqual(subject.y, 0)
        self.assertEqual(subject.facing, 'SOUTH')
コード例 #20
0
def test_turn_left_on_robot_placed(input_params, expected_direction):
    robot = Robot()
    robot.place(input_params)
    robot.turn_left()
    assert robot.facing == expected_direction
コード例 #21
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
 def test_robot_default_constructor(self):
     subject = Robot()
     self.assertEqual(subject.x, 0)
     self.assertEqual(subject.y, 0)
     self.assertEqual(subject.facing, 'NORTH')
コード例 #22
0
def test_invoke_for_report(mock_report):
    robot = Robot()
    robot.invoke('REPORT', None)
    mock_report.assert_called_once_with(robot)
コード例 #23
0
def test_invoke_for_turn_right(mock_turn_right):
    robot = Robot()
    robot.invoke('RIGHT', None)
    mock_turn_right.assert_called_once_with(robot)
コード例 #24
0
def test_invoke_for_turn_left(mock_turn_left):
    robot = Robot()
    robot.invoke('LEFT', None)
    mock_turn_left.assert_called_once_with(robot)
コード例 #25
0
def test_invoke_for_place(mock_place):
    robot = Robot()
    robot.invoke('PLACE', [0, 0, 'NORTH'])
    mock_place.assert_called_once_with(robot, [0, 0, 'NORTH'])
コード例 #26
0
def test_place_with_valid_params():
    robot = Robot()
    robot.place([0, 0, 'NORTH'])
    assert robot.x_coordinate == 0
    assert robot.y_coordinate == 0
    assert robot.facing == 'NORTH'
コード例 #27
0
def test_invoke_for_move(mock_move):
    robot = Robot()
    robot.invoke('MOVE', None)
    mock_move.assert_called_once_with(robot)
コード例 #28
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
 def test_robot_constructor(self):
     subject = Robot(1, 2, 'SOUTH')
     self.assertEqual(subject.x, 1)
     self.assertEqual(subject.y, 2)
     self.assertEqual(subject.facing, 'SOUTH')
コード例 #29
0
ファイル: robot_test.py プロジェクト: Sonna/toy-robot-python
 def test_robot_report(self):
     subject = Robot()
     with OutputBuffer() as bf:
         self.assertIsNone(subject.report())
     self.assertEqual(bf.out, '0, 0, NORTH\n')