| Index: samples/pop_pop_win/test/game_test.dart
|
| diff --git a/samples/pop_pop_win/test/game_test.dart b/samples/pop_pop_win/test/game_test.dart
|
| deleted file mode 100644
|
| index 61d3b3aade5457be2c6c79a0856fc9b951d9d826..0000000000000000000000000000000000000000
|
| --- a/samples/pop_pop_win/test/game_test.dart
|
| +++ /dev/null
|
| @@ -1,274 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -library pop_pop_win.game_test;
|
| -
|
| -import 'dart:math';
|
| -
|
| -import 'package:pop_pop_win/src/game.dart';
|
| -import 'package:unittest/unittest.dart';
|
| -
|
| -import 'test_util.dart';
|
| -
|
| -void main() {
|
| - test('initial values', _testInitial);
|
| - test('setFlag', _testSetFlag);
|
| - test('cannot reveal flagged', _testCannotRevealFlagged);
|
| - test('cannot flag revealed', _testCannotFlagRevealed);
|
| - test('reveal zero', _testRevealZero);
|
| - test('loss', _testLoss);
|
| - test('win', _testWin);
|
| - test('random winner', _testRandomField);
|
| - test('good chord', _testGoodChord);
|
| - test('bad chord', _testBadChord);
|
| - test('no-op chord', _testNoopChord);
|
| - test('canReveal', _testCanReveal);
|
| - test('canFlag', _testCanFlag);
|
| - test('cannot re-reveal', _testCannotReReveal);
|
| -}
|
| -
|
| -void _testCannotReReveal() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.canReveal(5, 3), isTrue);
|
| - var r = g.reveal(5, 3);
|
| -
|
| - g.setFlag(4, 2, true);
|
| -
|
| - expect(g.canReveal(5, 3), isTrue);
|
| - r = g.reveal(5, 3);
|
| -
|
| - expect(g.canReveal(5, 3), isFalse);
|
| -}
|
| -
|
| -void _testCanFlag() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.canToggleFlag(0, 0), isTrue);
|
| - expect(g.state, GameState.reset);
|
| - g.setFlag(0, 0, true);
|
| - expect(g.state, GameState.started);
|
| - expect(g.canToggleFlag(0, 0), isTrue);
|
| - g.setFlag(0, 0, false);
|
| - expect(g.canToggleFlag(0, 0), isTrue);
|
| -
|
| - expect(g.canToggleFlag(5, 4), isTrue);
|
| - g.reveal(5, 4);
|
| - expect(g.canToggleFlag(5, 4), isFalse);
|
| -}
|
| -
|
| -void _testCanReveal() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.canReveal(0, 0), isTrue);
|
| - expect(g.state, GameState.reset);
|
| - g.setFlag(0, 0, true);
|
| - expect(g.state, GameState.started);
|
| - expect(g.canReveal(0, 0), isFalse);
|
| -
|
| - expect(g.canReveal(5, 4), isTrue);
|
| - g.reveal(5, 4);
|
| - expect(g.canReveal(5, 4), isFalse);
|
| -
|
| - g.setFlag(4, 2, true);
|
| - expect(g.canReveal(5, 3), isTrue);
|
| - expect(g.canReveal(4, 3), isFalse);
|
| - g.setFlag(3, 2, true);
|
| - expect(g.canReveal(4, 3), isTrue);
|
| -
|
| - // now we'll over flag
|
| - expect(g.canReveal(5, 3), isTrue);
|
| - g.setFlag(5, 2, true);
|
| - expect(g.canReveal(5, 3), isFalse);
|
| -}
|
| -
|
| -void _testBadChord() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.bombsLeft, equals(13));
|
| - var startReveals = f.length - 13;
|
| - expect(g.revealsLeft, equals(startReveals));
|
| - expect(g.state, equals(GameState.reset));
|
| -
|
| - g.reveal(2, 3);
|
| - g.setFlag(1, 2, true);
|
| - g.setFlag(3, 2, true);
|
| -
|
| - expect(g.bombsLeft, equals(11));
|
| - expect(g.revealsLeft, equals(startReveals - 1));
|
| -
|
| - var revealed = g.reveal(2, 3);
|
| - expect(revealed, isNull);
|
| - expect(g.state, equals(GameState.lost));
|
| -}
|
| -
|
| -// Adjacent flag count != square count
|
| -// so nothing happens
|
| -void _testNoopChord() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.bombsLeft, equals(13));
|
| - var startReveals = f.length - 13;
|
| - expect(g.revealsLeft, equals(startReveals));
|
| - expect(g.state, equals(GameState.reset));
|
| -
|
| - var revealed = g.reveal(2, 3);
|
| - expect(revealed, unorderedEquals([const Point(2, 3)]));
|
| -
|
| - g.setFlag(2, 2, true);
|
| -
|
| - expect(g.bombsLeft, equals(12));
|
| - expect(g.revealsLeft, equals(startReveals - 1));
|
| -
|
| - expect(() => g.reveal(2, 3), throwsException);
|
| -}
|
| -
|
| -void _testGoodChord() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.bombsLeft, equals(13));
|
| - var startReveals = f.length - 13;
|
| - expect(g.revealsLeft, equals(startReveals));
|
| - expect(g.state, equals(GameState.reset));
|
| -
|
| - g.reveal(2, 3);
|
| - g.setFlag(2, 2, true);
|
| - g.setFlag(3, 2, true);
|
| -
|
| - expect(g.bombsLeft, equals(11));
|
| - expect(g.revealsLeft, equals(startReveals - 1));
|
| -
|
| - g.reveal(2, 3);
|
| - expect(g.bombsLeft, equals(11));
|
| - expect(g.revealsLeft, equals(startReveals - 11));
|
| - expect(g.duration, isNot(isNull));
|
| -}
|
| -
|
| -// Test 5 random fields five times
|
| -void _testRandomField() {
|
| - var rnd = new Random();
|
| - for (int i = 0; i < 5; i++) {
|
| - var f = new Field();
|
| -
|
| - for (int j = 0; j < 5; j++) {
|
| - var g = new Game(f);
|
| - while (g.revealsLeft > 0) {
|
| - var x = rnd.nextInt(f.width);
|
| - var y = rnd.nextInt(f.height);
|
| - if (g.getSquareState(x, y) == SquareState.hidden) {
|
| - if (f.get(x, y)) {
|
| - g.setFlag(x, y, true);
|
| - } else if (!f.get(x, y)) {
|
| - g.reveal(x, y);
|
| - }
|
| - }
|
| - }
|
| - expect(g.state == GameState.won, isTrue);
|
| - }
|
| - }
|
| -}
|
| -
|
| -void _testRevealZero() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.bombsLeft, equals(13));
|
| - var startReveals = f.length - 13;
|
| - expect(g.revealsLeft, equals(startReveals));
|
| - expect(g.state, equals(GameState.reset));
|
| -
|
| - g.reveal(5, 4);
|
| - expect(g.revealsLeft, equals(startReveals - 10));
|
| -}
|
| -
|
| -void _testInitial() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - expect(g.bombsLeft, equals(13));
|
| - expect(g.revealsLeft, equals(f.length - 13));
|
| - expect(g.state, equals(GameState.reset));
|
| - expect(g.duration, isNull);
|
| -
|
| - for (int x = 0; x < f.width; x++) {
|
| - for (int y = 0; y < f.height; y++) {
|
| - expect(g.getSquareState(x, y), equals(SquareState.hidden));
|
| - }
|
| - }
|
| -}
|
| -
|
| -void _testSetFlag() {
|
| - var g = new Game(getSampleField());
|
| -
|
| - expect(g.getSquareState(0, 0), equals(SquareState.hidden));
|
| - g.setFlag(0, 0, true);
|
| - expect(g.getSquareState(0, 0), equals(SquareState.flagged));
|
| - expect(g.bombsLeft, equals(12));
|
| - expect(g.state, equals(GameState.started));
|
| -}
|
| -
|
| -void _testCannotRevealFlagged() {
|
| - var g = new Game(getSampleField());
|
| -
|
| - expect(g.getSquareState(0, 0), equals(SquareState.hidden));
|
| - g.setFlag(0, 0, true);
|
| - expect(g.getSquareState(0, 0), equals(SquareState.flagged));
|
| - expect(g.bombsLeft, equals(12));
|
| - expect(g.state, equals(GameState.started));
|
| -
|
| - expect(() => g.reveal(0, 0), throwsException);
|
| -}
|
| -
|
| -void _testCannotFlagRevealed() {
|
| - var g = new Game(getSampleField());
|
| -
|
| - expect(g.getSquareState(1, 1), equals(SquareState.hidden));
|
| - g.reveal(1, 1);
|
| - expect(g.getSquareState(1, 1), equals(SquareState.revealed));
|
| - expect(g.state, equals(GameState.started));
|
| -
|
| - expect(() => g.setFlag(1, 1, true), throwsException);
|
| -}
|
| -
|
| -void _testLoss() {
|
| - var g = new Game(getSampleField());
|
| -
|
| - expect(g.getSquareState(0, 0), equals(SquareState.hidden));
|
| - var revealed = g.reveal(0, 0);
|
| - expect(revealed, isNull);
|
| - expect(g.state, equals(GameState.lost));
|
| - expect(g.getSquareState(0, 0), equals(SquareState.bomb));
|
| -}
|
| -
|
| -void _testWin() {
|
| - var f = getSampleField();
|
| - var g = new Game(f);
|
| -
|
| - int bombsLleft = f.bombCount;
|
| - expect(g.revealsLeft, equals(f.length - 13));
|
| - int revealsLeft = g.revealsLeft;
|
| - for (int x = 0; x < f.width; x++) {
|
| - for (int y = 0; y < f.height; y++) {
|
| - if (f.get(x, y)) {
|
| - g.setFlag(x, y, true);
|
| - bombsLleft--;
|
| - expect(g.bombsLeft, equals(bombsLleft));
|
| - } else if (g.getSquareState(x, y) == SquareState.hidden) {
|
| - revealsLeft -= g.reveal(x, y).length;
|
| - expect(revealsLeft, equals(g.revealsLeft));
|
| - } else {
|
| - expect(g.getSquareState(x, y), equals(SquareState.revealed));
|
| - }
|
| - expect(g.state, isNot(equals(GameState.reset)));
|
| - expect(g.state, isNot(equals(GameState.lost)));
|
| - }
|
| - }
|
| -
|
| - expect(g.state, equals(GameState.won));
|
| -}
|
|
|