Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/18/09 22:20:34 (15 years ago)
Author:
gkronber
Message:

Added enumerable type for model results and changed analyzer model, the database backend and the model analysis operators to use the enumerable type instead of hard-coded strings. #755 (Hard-coded strings for variable names of data-modeling results)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Modeling/3.2/AnalyzerModel.cs

    r2369 r2370  
    2525using HeuristicLab.Core;
    2626using HeuristicLab.DataAnalysis;
     27using HeuristicLab.Data;
    2728
    2829namespace HeuristicLab.Modeling {
     
    6364    }
    6465
    65     private Dictionary<string, double> results = new Dictionary<string, double>();
    66     public IEnumerable<KeyValuePair<string, double>> Results {
     66    private Dictionary<ModelingResult, double> results = new Dictionary<ModelingResult, double>();
     67    public IEnumerable<KeyValuePair<ModelingResult, double>> Results {
    6768      get { return results; }
    6869    }
    6970
    70     public void SetResult(string name, double value) {
    71       results.Add(name, value);
     71    public void ExtractResult(IScope scope, ModelingResult result) {
     72      SetResult(result, scope.GetVariableValue<DoubleData>(result.ToString(), false).Data);
    7273    }
    7374
    74     public double GetResult(string name) {
    75       return results[name];
     75
     76    public void SetResult(ModelingResult result, double value) {
     77      results.Add(result, value);
     78    }
     79
     80    public double GetResult(ModelingResult result) {
     81      return results[result];
    7682    }
    7783
     
    8995    }
    9096
    91     public double GetVariableQualityImpact(string variableName) {
    92       if (variableQualityImpacts.ContainsKey(variableName)) return variableQualityImpacts[variableName];
    93       else throw new ArgumentException("Impact of variable " + variableName + " is not available.");
     97    private Dictionary<string, Dictionary<ModelingResult, double>> variableResults = new Dictionary<string, Dictionary<ModelingResult, double>>();
     98    public double GetVariableResult(ModelingResult result, string variableName) {
     99      if (variableResults.ContainsKey(variableName)) {
     100        if (variableResults[variableName].ContainsKey(result)) {
     101          return variableResults[variableName][result];
     102        } else throw new ArgumentException("No value for modeling result: " + result + ".");
     103      } else throw new ArgumentException("No variable result for variable " + variableName + ".");
    94104    }
    95105
    96     public double GetVariableEvaluationImpact(string variableName) {
    97       if (variableEvaluationImpacts.ContainsKey(variableName)) return variableEvaluationImpacts[variableName];
    98       else throw new ArgumentException("Impact of variable " + variableName + " is not available.");
     106    public void SetVariableResult(ModelingResult result, string variableName, double value) {
     107      if (!variableResults.ContainsKey(variableName)) {
     108        variableResults.Add(variableName, new Dictionary<ModelingResult, double>());
     109      }
     110      variableResults[variableName][result] = value;
     111    }
     112
     113    public IEnumerable<KeyValuePair<ModelingResult, double>> GetVariableResults(string variableName) {
     114      return variableResults[variableName];
    99115    }
    100116
     
    103119    #endregion
    104120
    105     private Dictionary<string, double> variableQualityImpacts = new Dictionary<string, double>();
    106     public void SetVariableQualityImpact(string variableName, double impact) {
    107       variableQualityImpacts[variableName] = impact;
    108     }
    109 
    110     public void SetVariableQualityImpact(int variableIndex, double impact) {
    111       variableQualityImpacts[dataset.GetVariableName(variableIndex)] = impact;
    112     }
    113 
    114     private Dictionary<string, double> variableEvaluationImpacts = new Dictionary<string, double>();
    115     public void SetVariableEvaluationImpact(string variableName, double impact) {
    116       variableEvaluationImpacts[variableName] = impact;
    117     }
    118 
    119     public void SetVariableEvaluationImpact(int variableIndex, double impact) {
    120       variableEvaluationImpacts[dataset.GetVariableName(variableIndex)] = impact;
    121     }
    122121  }
    123122}
Note: See TracChangeset for help on using the changeset viewer.