public void RandomAutomataIntegrityTest(int n, int problemCountPerN, int seed)
 {
     for (; n >= 1; n -= 1)
     {
         VerifyIntegrity(solvers, RandomProblemGenerator.Generate(n, seed).Take(problemCountPerN));
     }
 }
        public void BasicCountMatch()
        {
            const int problemCountPerN = 10_000;
            const int seed             = 87654321;

            for (int n = 12; n >= 1; n -= 1)
            {
                var solutions = RandomProblemGenerator.Generate(n, seed).SelectAsSolved().Take(problemCountPerN);
                Assert.Equal(problemCountPerN, solutions.Count());

                solutions = RandomProblemGenerator.Generate(n, seed + 1).Take(problemCountPerN).SelectAsSolved();
                Assert.Equal(problemCountPerN, solutions.Count());
            }

            var solutions2 = RandomProblemGenerator.Generate(16, seed + 2).SelectAsSolved <PowerAutomatonReusableSolutionMapperFastMaximum16>().Take(problemCountPerN);

            Assert.Equal(problemCountPerN, solutions2.Count());
        }
 public void RandomExactAutomataIntegrityTest(int n, int problemCountPerN, int seed)
 {
     for (; n >= 1; n -= 1)
     {
         VerifyIntegrity(solvers.Append(new PowerAutomatonReusableSolutionMapperSlowBruteForce()), RandomProblemGenerator.Generate(n, seed).Take(problemCountPerN));
     }
 }