public void Constructor_passes_values_through()
        {
            int        color = 3;
            Vector2Int from  = new Vector2Int(1, 2);
            Vector2Int to    = new Vector2Int(4, 5);
            Tile       tile  = new Tile(color, Vector2Int.zero);

            MovedTile movedTile = new MovedTile(tile, from, to);

            Assert.That(movedTile.Tile, Is.SameAs(tile));
            Assert.That(movedTile.From, Is.EqualTo(from));
            Assert.That(movedTile.To, Is.EqualTo(to));
        }
        public void Convenience_constructor_uses_tile_position_as_destination()
        {
            int        color = 3;
            Vector2Int from  = new Vector2Int(1, 2);
            Vector2Int to    = new Vector2Int(4, 5);
            Tile       tile  = new Tile(color, to);

            MovedTile movedTile = new MovedTile(tile, from);

            Assert.That(movedTile.Tile, Is.SameAs(tile));
            Assert.That(movedTile.From, Is.EqualTo(from));
            Assert.That(movedTile.To, Is.EqualTo(to));
        }
        public void Can_move_tile_from_off_the_board()
        {
            var board = new Board(5, 5);
            var from  = new Vector2Int(3, 8);
            var to    = new Vector2Int(1, 2);
            var tile  = new Tile(3, from);

            MovedTile movedTile = board.MoveTile(tile, to);

            Assert.That(board[to], Is.SameAs(tile));
            Assert.That(movedTile.Tile, Is.SameAs(tile));
            Assert.That(movedTile.From, Is.EqualTo(from));
            Assert.That(movedTile.To, Is.EqualTo(to));
        }
        public void Move_tile_via_integer_coordinates()
        {
            var board = new Board(5, 5);
            var from  = new Vector2Int(3, 4);
            var to    = new Vector2Int(1, 2);
            var tile  = new Tile(3);

            board[from] = tile;

            MovedTile movedTile = board.MoveTile(tile, to.x, to.y);

            Assert.That(board[from], Is.Null);
            Assert.That(board[to], Is.SameAs(tile));
            Assert.That(movedTile.Tile, Is.SameAs(tile));
            Assert.That(movedTile.From, Is.EqualTo(from));
            Assert.That(movedTile.To, Is.EqualTo(to));
        }