Files
labirynt/test/widget_test.dart
2026-02-07 10:20:50 +01:00

58 lines
1.6 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:labirynt/maze.dart';
import 'package:labirynt/player.dart';
import 'package:labirynt/main.dart';
void main() {
group('Maze', () {
test('generates maze with open start and end', () {
final maze = Maze(15, 15);
expect(maze.grid[1][1], 0);
expect(maze.grid[13][13], 0);
});
test('borders are walls', () {
final maze = Maze(15, 15);
expect(maze.isWall(0, 0), true);
expect(maze.isWall(14, 0), true);
expect(maze.isWall(0, 14), true);
});
test('isGoal detects goal position', () {
final maze = Maze(15, 15);
expect(maze.isGoal(13, 13), true);
expect(maze.isGoal(1, 1), false);
});
});
group('Player', () {
test('starts at given position', () {
final player = Player(x: 1.5, y: 1.5);
expect(player.x, 1.5);
expect(player.y, 1.5);
});
test('rotates left and right', () {
final player = Player(x: 1.5, y: 1.5, angle: 0);
player.rotateRight();
expect(player.angle, greaterThan(0));
player.rotateLeft();
player.rotateLeft();
expect(player.angle, lessThan(0));
});
test('moves forward in open space', () {
final maze = Maze(15, 15);
final player = Player(x: 1.5, y: 1.5, angle: 0);
final oldX = player.x;
player.moveForward(maze);
expect(player.x, greaterThan(oldX));
});
});
testWidgets('app renders without errors', (tester) async {
await tester.pumpWidget(const LabiryntApp());
expect(find.byType(LabiryntApp), findsOneWidget);
});
}