Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/16/21 15:27:07 (3 years ago)
Author:
dpiringe
Message:

#3026

  • added StorableTypeAttribute and StorableConstructorAttribute to all JsonItems
  • added a new JsonItem ListJsonItem + Interfaces IListJsonItem
  • renamed SymRegPythonProcessor to RunCollectionSRSolutionPythonFormatter
  • removed Interface IResultCollectionProcessor -> using the interface IRunCollectionModifier now (has aleady implementations)
  • renamed all related variables/fields/properties with a connection to ResultCollectionProcessor
  • added new implementations for IRunCollectionModifier
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.Optimization/3.3/RunCollectionModification/RunCollectionValueRemover.cs

    r17180 r18055  
    2727using HeuristicLab.Parameters;
    2828using HEAL.Attic;
     29using HeuristicLab.Collections;
    2930
    3031namespace HeuristicLab.Optimization {
     
    3839    }
    3940
     41    public IFixedValueParameter<BoolValue> InvertParameter {
     42      get { return (IFixedValueParameter<BoolValue>)Parameters["Invert"]; }
     43    }
     44
    4045    public IEnumerable<string> Values {
    4146      get { return ValuesParameter.Value.CheckedItems.Select(v => v.Value); }
    4247    }
     48
     49    public bool Invert => InvertParameter.Value.Value;
    4350
    4451    #region Construction & Cloning   
     
    4956    }
    5057    public RunCollectionValueRemover() {
    51       Parameters.Add(new ValueParameter<CheckedItemCollection<StringValue>>("Values", "The result or parameter values to be removed from each run."));     
     58      Parameters.Add(new ValueParameter<CheckedItemCollection<StringValue>>("Values", "The result or parameter values to be removed from each run."));
     59      Parameters.Add(new FixedValueParameter<BoolValue>("Invert", "Inverts the filter strategy: Blackbox <-> Whitebox (Default: Blackbox)", new BoolValue(false)));
    5260    }
    5361    public override IDeepCloneable Clone(Cloner cloner) {
     
    5664    #endregion   
    5765
    58     public void Modify(List<IRun> runs) {     
     66    public void Modify(List<IRun> runs) {
    5967      foreach (var run in runs) {
    60         foreach (var value in Values) {
    61           run.Parameters.Remove(value);
    62           run.Results.Remove(value);
    63         }       
    64       }     
     68        if (Invert) { //Whitebox
     69          var parametersCopy = new ObservableDictionary<string, IItem>(run.Parameters);
     70          var resultsCopy = new ObservableDictionary<string, IItem>(run.Results);
     71          foreach(var param in parametersCopy)
     72            if (!Values.Any(x => x == param.Key))
     73              run.Parameters.Remove(param.Key);
     74          foreach (var result in resultsCopy)
     75            if (!Values.Any(x => x == result.Key))
     76              run.Results.Remove(result.Key);
     77        } else { //Blackbox
     78          foreach (var value in Values) {
     79            run.Parameters.Remove(value);
     80            run.Results.Remove(value);
     81          }
     82        }
     83      }   
    6584    }
    6685   
Note: See TracChangeset for help on using the changeset viewer.