// TODO: no opt tours for SOP, VRP, ATSP with known distance for validation private static void AssertTourDistance(FileType problemType, string problemFileName, string tourFileName, int expectedDistance) { var problemTspFile = Path.Combine(RootDir, problemFileName); var tourTspFile = TspFile.Load(Path.Combine(RootDir, tourFileName)); Assert.IsNotNull(problemTspFile); Assert.IsNotNull(tourTspFile); IProblem problem = null; switch (problemType) { case FileType.TSP: case FileType.ATSP: problem = TravelingSalesmanProblem.FromFile(problemTspFile); break; case FileType.CVRP: problem = CapacitatedVehicleRoutingProblem.FromFile(problemTspFile); break; case FileType.SOP: problem = SequentialOrderingProblem.FromFile(problemTspFile); break; } Assert.IsNotNull(problem); ITour tour = Tour.FromTspFile(tourTspFile); Assert.IsNotNull(tour); Assert.AreEqual(expectedDistance, problem.TourDistance(tour)); }
public void ConstructSequentialOrderingProblems() { var files = new List <string>(Directory.EnumerateFiles(RootDir, "*.sop", SearchOption.AllDirectories)); foreach (var fileName in files) { var problem = SequentialOrderingProblem.FromFile(fileName); Assert.IsNotNull(problem); } }