From 9cc1ae42b02541680950196ee93f10af28184de3 Mon Sep 17 00:00:00 2001 From: fiatcode Date: Tue, 24 Feb 2026 10:48:04 +0700 Subject: [PATCH] RED: test executing command sequences --- test/mars_rover_test.dart | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/mars_rover_test.dart b/test/mars_rover_test.dart index 4833dc7..1c23070 100644 --- a/test/mars_rover_test.dart +++ b/test/mars_rover_test.dart @@ -92,5 +92,41 @@ void main() { expect(rover.y, equals(0)); }); }); + + group('Executing Command Sequences:', () { + test('single command L', () { + final rover = Rover(x: 0, y: 0, direction: 'N'); + rover.execute('L'); + expect(rover.direction, equals('W')); + }); + + test('single command R', () { + final rover = Rover(x: 0, y: 0, direction: 'N'); + rover.execute('R'); + expect(rover.direction, equals('E')); + }); + + test('single command M', () { + final rover = Rover(x: 0, y: 0, direction: 'N'); + rover.execute('M'); + expect(rover.y, equals(1)); + }); + + test('complex sequence MMRMMLM', () { + final rover = Rover(x: 0, y: 0, direction: 'N'); + rover.execute('MMRMMLM'); + expect(rover.x, equals(2)); + expect(rover.y, equals(3)); + expect(rover.direction, equals('N')); + }); + + test('example from Mars Rover kata', () { + final rover = Rover(x: 1, y: 2, direction: 'N'); + rover.execute('LMLMLMLMM'); + expect(rover.x, equals(1)); + expect(rover.y, equals(3)); + expect(rover.direction, equals('N')); + }); + }); }); }