Changeset 14697 for trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs
- Timestamp:
- 02/23/17 14:42:04 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs
r14185 r14697 47 47 protected abstract T LoadInstance(TSPLIBParser parser, IDataDescriptor descriptor = null); 48 48 protected abstract void LoadSolution(TSPLIBParser parser, T instance); 49 protected abstract void LoadQuality(double? bestQuality, T instance); 49 50 50 51 public override IEnumerable<IDataDescriptor> GetDataDescriptors() { … … 57 58 } 58 59 } 60 61 Dictionary<string, double> qualities = new Dictionary<string, double>(); 62 var qualitiesArchiveName = GetResourceName(FileExtension + @"\.qual"); 63 if (!String.IsNullOrEmpty(qualitiesArchiveName)) { 64 using (var qualitiesReader = new StreamReader(GetType().Assembly.GetManifestResourceStream(qualitiesArchiveName))) { 65 while (!qualitiesReader.EndOfStream) { 66 var line = qualitiesReader.ReadLine().Split(';'); 67 qualities.Add(line[0] + "." + FileExtension, double.Parse(line[1])); 68 } 69 } 70 } 71 59 72 var instanceArchiveName = GetResourceName(FileExtension + @"\.zip"); 60 73 if (String.IsNullOrEmpty(instanceArchiveName)) yield break; … … 62 75 using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) { 63 76 foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) { 64 yield return new TSPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetInstanceDescription(), entry, solutions.ContainsKey(entry) ? solutions[entry] : String.Empty); 77 yield return new TSPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), 78 GetInstanceDescription(), 79 entry, 80 solutions.ContainsKey(entry) ? solutions[entry] : String.Empty, 81 qualities.ContainsKey(entry) ? (double?)qualities[entry] : null); 65 82 } 66 83 } … … 75 92 var parser = new TSPLIBParser(stream); 76 93 var instance = LoadInstance(parser, id); 94 LoadQuality(descriptor.BestQuality, instance); 77 95 78 96 if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
Note: See TracChangeset
for help on using the changeset viewer.