Example #1
0
        public void basic_test()
        {
            MemoryStream stream = new MemoryStream();
            StreamWriter writer = new StreamWriter(stream);

            writer.Write(str);
            writer.Flush();
            stream.Position = 0;
            loader          = new FileLoader(stream);

            Problem p = loader.LoadProblem();

            DvrpTaskSolver.FixClientsStartTimes(p);
            stream.Position = 0;
            double sol = loader.LoadSolution();

            ProblemDivider       divider = new ProblemDivider();
            PartialProblemSolver solver  = new PartialProblemSolver();
            SolutionMerger       merger  = new SolutionMerger();

            var partproblmes = divider.DivideProblem(p);

            List <PartialSolution> soluts = new List <PartialSolution>();

            foreach (var part in partproblmes /*.Where(ee => ee.SetId == 17)*/)
            {
                soluts.Add(solver.SolvePartialProblem(part, p));
            }

            var ssss = merger.MergeSolution(soluts, p);

            ssss.Result.ShouldBeInRange(sol - 5, sol + 5);
        }