- Timestamp:
- 02/17/20 17:29:52 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/Runner.cs
r17439 r17442 8 8 using HeuristicLab.Optimization; 9 9 using HeuristicLab.SequentialEngine; 10 using Newtonsoft.Json.Linq; 10 11 11 12 namespace HeuristicLab.JsonInterface.App { 12 13 internal static class Runner { 13 internal static void Run(string template, string config, string outputFile = @"C:\Workspace\test.txt") {14 IOptimizer optimizer = JsonTemplateInstantiator.Instantiate(template, config );14 internal static void Run(string template, string config, string outputFile) { 15 IOptimizer optimizer = JsonTemplateInstantiator.Instantiate(template, config, out IEnumerable<string> allowedResultNames); 15 16 if(optimizer is EngineAlgorithm e) 16 17 e.Engine = new SequentialEngine.SequentialEngine(); … … 18 19 Task task = optimizer.StartAsync(); 19 20 while(!task.IsCompleted) { 20 WriteResultsToFile(outputFile, optimizer );21 WriteResultsToFile(outputFile, optimizer, allowedResultNames); 21 22 Thread.Sleep(100); 22 23 } 23 WriteResultsToFile(outputFile, optimizer );24 WriteResultsToFile(outputFile, optimizer, allowedResultNames); 24 25 } 25 26 26 private static void WriteResultsToFile(string file, IOptimizer optimizer ) =>27 File.WriteAllText(file, FetchResults(optimizer ));27 private static void WriteResultsToFile(string file, IOptimizer optimizer, IEnumerable<string> allowedResultNames) => 28 File.WriteAllText(file, FetchResults(optimizer, allowedResultNames)); 28 29 29 private static string FetchResults(IOptimizer optimizer) { 30 StringBuilder sb = new StringBuilder(); 30 private static string FetchResults(IOptimizer optimizer, IEnumerable<string> allowedResultNames) { 31 JArray arr = new JArray(); 32 31 33 foreach (var run in optimizer.Runs) { 32 sb.AppendLine($"--- {run.ToString()} ---"); 34 JObject obj = new JObject(); 35 arr.Add(obj); 36 obj.Add("Run", JToken.FromObject(run.ToString())); 33 37 foreach (var res in run.Results) { 34 sb.AppendLine($"{res.Key}: {res.Value}"); 38 if (allowedResultNames.Contains(res.Key)) 39 obj.Add(res.Key, JToken.FromObject(res.Value.ToString())); 35 40 } 36 41 } 37 return sb.ToString();42 return SingleLineArrayJsonWriter.Serialize(arr); 38 43 } 39 44 }
Note: See TracChangeset
for help on using the changeset viewer.