Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/17/20 12:33:35 (4 years ago)
Author:
dpiringe
Message:

#3026:

  • refactored JsonTemplateInstantiator -> now returns a InstantiatorResult which contains the optimizer and an IEnumerable of IResultJsonItem
  • code cleanup in JCGenerator
  • relocated the serialization of json items into IJsonItem with method GenerateJObject (virtual base implementation in JsonItem)
    • this allows custom serialization for json items (example: ValueLookupJsonItem)
    • items of interface IIntervalRestrictedJsonItem have a custom implementation of GenerateJObject -> hides Minimum and Maximum if the values are the physically min/max of their type
  • code cleanup in BaseConverter
File:
1 edited

Legend:

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

    r17464 r17477  
    1616  internal static class Runner {
    1717    internal static void Run(string template, string config, string outputFile) {
    18       IOptimizer optimizer = JsonTemplateInstantiator.Instantiate(template, config, out IEnumerable<string> allowedResultNames);
     18      InstantiatorResult instantiatorResult = JsonTemplateInstantiator.Instantiate(template, config);
     19      IOptimizer optimizer = instantiatorResult.Optimizer;
     20      IEnumerable<IResultJsonItem> configuredResultItem = instantiatorResult.ConfiguredResultItems;
     21
    1922      optimizer.Runs.Clear();
    2023      if(optimizer is EngineAlgorithm e)
     
    2326      Task task = optimizer.StartAsync();
    2427      while(!task.IsCompleted) {
    25         WriteResultsToFile(outputFile, optimizer, allowedResultNames);
     28        WriteResultsToFile(outputFile, optimizer, configuredResultItem);
    2629        Thread.Sleep(100);
    2730      }
    2831     
    29       WriteResultsToFile(outputFile, optimizer, allowedResultNames);
     32      WriteResultsToFile(outputFile, optimizer, configuredResultItem);
    3033    }
    3134
    32     private static void WriteResultsToFile(string file, IOptimizer optimizer, IEnumerable<string> allowedResultNames) =>
    33       File.WriteAllText(file, FetchResults(optimizer, allowedResultNames));
     35    private static void WriteResultsToFile(string file, IOptimizer optimizer, IEnumerable<IResultJsonItem> configuredResultItem) =>
     36      File.WriteAllText(file, FetchResults(optimizer, configuredResultItem));
    3437
    35     private static string FetchResults(IOptimizer optimizer, IEnumerable<string> allowedResultNames) {
     38    private static string FetchResults(IOptimizer optimizer, IEnumerable<IResultJsonItem> configuredResultItem) {
    3639      JArray arr = new JArray();
    37      
     40      IEnumerable<string> configuredResults = configuredResultItem.Select(x => x.Name);
     41
    3842      foreach (var run in optimizer.Runs) {
    3943        JObject obj = new JObject();
     
    4145        obj.Add("Run", JToken.FromObject(run.ToString()));
    4246        foreach (var res in run.Results) {
    43           if (allowedResultNames.Contains(res.Key)) {
     47          if (configuredResults.Contains(res.Key)) {
    4448            if (res.Value is ISymbolicRegressionSolution solution) {
    4549              var formatter = new SymbolicDataAnalysisExpressionMATLABFormatter();
Note: See TracChangeset for help on using the changeset viewer.