Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/17/20 17:29:52 (4 years ago)
Author:
dpiringe
Message:

#3026:

  • added new CLI argument StringArgument
  • removed unnecessary check in StartArgument
  • changed output format from simple .txt to .json in HeuristicLab.JsonInterface.App.Runner
  • user has to enter output path now when executing JsonInterface on console
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.App/Runner.cs

    r17439 r17442  
    88using HeuristicLab.Optimization;
    99using HeuristicLab.SequentialEngine;
     10using Newtonsoft.Json.Linq;
    1011
    1112namespace HeuristicLab.JsonInterface.App {
    1213  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);
    1516      if(optimizer is EngineAlgorithm e)
    1617        e.Engine = new SequentialEngine.SequentialEngine();
     
    1819      Task task = optimizer.StartAsync();
    1920      while(!task.IsCompleted) {
    20         WriteResultsToFile(outputFile, optimizer);
     21        WriteResultsToFile(outputFile, optimizer, allowedResultNames);
    2122        Thread.Sleep(100);
    2223      }
    23       WriteResultsToFile(outputFile, optimizer);
     24      WriteResultsToFile(outputFile, optimizer, allowedResultNames);
    2425    }
    2526
    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));
    2829
    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     
    3133      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()));
    3337        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()));
    3540        }
    3641      }
    37       return sb.ToString();
     42      return SingleLineArrayJsonWriter.Serialize(arr);
    3843    }
    3944  }
Note: See TracChangeset for help on using the changeset viewer.