internal static IRandomNumberGenerator GetGenerator(int testNum)
        {
            var generator = new FakeRandomNumberGenerator();

            switch (testNum)
            {
            case 1:
                generator.PopulateEnum(Compass4Points.South);
                generator.PopulateDice(0, 1, 1, 1);
                break;

            case 2:
                generator.PopulateEnum(Compass4Points.South, Compass4Points.East);
                generator.PopulateDice(0, 1, 0, 9, 4, 5, 5, 8);
                break;

            default: throw new ArgumentException($"Didn't have Generator for [{testNum}]");
            }

            return(generator);
        }
        internal static IRandomNumberGenerator GetGenerator(Test test)
        {
            var generator = new FakeRandomNumberGenerator();

            switch (test)
            {
            case Test.TopLeft:
                generator.PopulateEnum(Compass4Points.West, Compass4Points.North, Compass4Points.East, Compass4Points.East, Compass4Points.East);
                generator.PopulateDice(0, 1);
                break;

            case Test.TopRight:
                generator.PopulateEnum(Compass4Points.North, Compass4Points.East, Compass4Points.South, Compass4Points.East, Compass4Points.East);
                generator.PopulateDice(1, 1);
                break;

            case Test.BottomRight:
                generator.PopulateEnum(Compass4Points.South, Compass4Points.West, Compass4Points.East, Compass4Points.East, Compass4Points.East);
                generator.PopulateDice(1, 0);
                break;

            case Test.BottomLeft:
                generator.PopulateEnum(Compass4Points.South, Compass4Points.West, Compass4Points.North, Compass4Points.East, Compass4Points.East);
                generator.PopulateDice(0, 0);
                break;

            case Test.Cornered:
                generator.PopulateEnum(Compass4Points.West, Compass4Points.South, Compass4Points.East, Compass4Points.East, Compass4Points.East);
                generator.PopulateDice(3, 4, 0, 0, 1, 1, 4, 2);
                break;

            default: throw new ArgumentException($"Didn't have Generator for [{test}]");
            }

            return(generator);
        }
        internal static IRandomNumberGenerator CreateGenerator(int numBlocks)
        {
            var random = new FakeRandomNumberGenerator();

            random.PopulateEnum(
                Compass4Points.East,
                Compass4Points.East,
                Compass4Points.South,
                Compass4Points.North,
                Compass4Points.East,
                Compass4Points.North,
                Compass4Points.West,
                Compass4Points.South,
                Compass4Points.South,
                Compass4Points.West,
                Compass4Points.West
                );

            var start             = 1;
            var posOfNonConnected = numBlocks - 1;

            random.PopulateDice(start, start, posOfNonConnected, posOfNonConnected, -1, 0, 1, 3, 0, 0, 2);
            return(random);
        }