private static bool HasFilledNeighbour(Cell testCell, HexBoard board)
        {
            Cell[] neighbours = board.Neighbours(testCell);

            foreach (Cell neighbour in neighbours)
            {
                if (!neighbour.IsEmpty())
                {
                    return true;
                }
            }

            Cell[][] neighbours2 = board.Neighbours2(testCell);

            foreach (Cell[] triple in neighbours2)
            {
                if (!triple[0].IsEmpty())
                {
                    return true;
                }
            }

            return false;
        }
        public void BoardNeighbours2Test()
        {
            HexBoard hexBoard = new HexBoard(BoardSize);

            for (int x = 0; x < hexBoard.Size; x++)
            {
                for (int y = 0; y < hexBoard.Size; y++)
                {
                    Cell cell = hexBoard.GetCellAt(x, y);

                    var neigbours2 = hexBoard.Neighbours2(cell);

                    Assert.IsNotNull(neigbours2);

                    /* all cells have at least 1 neighbours, and at most 6 */
                    Assert.Greater(neigbours2.GetLength(0), 0);
                    Assert.Less(neigbours2.GetLength(0), 7);

                    foreach (Cell[] triplet in neigbours2)
                    {
                        TestNeighbour2Triplet(cell, triplet);
                    }
                }
            }
        }