Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/18/17 14:19:29 (7 years ago)
Author:
pfleck
Message:

#2809: Removed SearchLogic

Location:
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4
Files:
1 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/DataCompletenessChartContent.cs

    r15110 r15269  
    3232    }
    3333
    34     public SearchLogic SearchLogic { get; private set; }
     34    public ITransactionalPreprocessingData PreprocessingData { get; private set; }
    3535
    36     public DataCompletenessChartContent(SearchLogic searchLogic) {
    37       SearchLogic = searchLogic;
     36    public DataCompletenessChartContent(ITransactionalPreprocessingData preprocessingData) {
     37      PreprocessingData = preprocessingData;
    3838    }
    3939
    4040    public DataCompletenessChartContent(DataCompletenessChartContent content, Cloner cloner)
    4141      : base(content, cloner) {
    42       SearchLogic = content.SearchLogic;
     42      PreprocessingData = content.PreprocessingData;
    4343    }
    4444
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/ManipulationContent.cs

    r15110 r15269  
    3333
    3434    public ManipulationLogic ManipulationLogic { get; private set; }
    35     public SearchLogic SearchLogic { get; private set; }
    3635    public FilterLogic FilterLogic { get; private set; }
    3736
    38     public ManipulationContent(ManipulationLogic manipulationLogic, SearchLogic searchLogic, FilterLogic filterLogic) {
     37    public ManipulationContent(ManipulationLogic manipulationLogic, FilterLogic filterLogic) {
    3938      ManipulationLogic = manipulationLogic;
    40       SearchLogic = searchLogic;
    4139      FilterLogic = filterLogic;
    4240    }
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Data/FilteredPreprocessingData.cs

    r15110 r15269  
    2828
    2929namespace HeuristicLab.DataPreprocessing {
    30   public class FilteredPreprocessingData : NamedItem, IFilteredPreprocessingData {
     30  public sealed class FilteredPreprocessingData : NamedItem, IFilteredPreprocessingData {
    3131    private readonly ITransactionalPreprocessingData originalData;
    3232    private ITransactionalPreprocessingData filteredData;
     
    8383    }
    8484
    85     protected FilteredPreprocessingData(FilteredPreprocessingData original, Cloner cloner)
     85    private FilteredPreprocessingData(FilteredPreprocessingData original, Cloner cloner)
    8686      : base(original, cloner) {
    8787      originalData = original.originalData;
     
    9090    public override IDeepCloneable Clone(Cloner cloner) {
    9191      return new FilteredPreprocessingData(this, cloner);
     92    }
     93
     94    public bool IsCellEmpty(int columnIndex, int rowIndex) {
     95      return ActiveData.IsCellEmpty(columnIndex, rowIndex);
    9296    }
    9397
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Data/IPreprocessingData.cs

    r15110 r15269  
    2828namespace HeuristicLab.DataPreprocessing {
    2929  public interface IPreprocessingData : INamedItem {
     30    bool IsCellEmpty(int columnIndex, int rowIndex);
    3031    T GetCell<T>(int columnIndex, int rowIndex);
    3132
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Data/PreprocessingData.cs

    r15110 r15269  
    160160    }
    161161
     162    public static bool IsMissingValue(object value) {
     163      if (value is double) return double.IsNaN((double)value);
     164      if (value is string) return string.IsNullOrEmpty((string)value);
     165      if (value is DateTime) return ((DateTime)value).Equals(DateTime.MinValue);
     166      throw new ArgumentException();
     167    }
    162168
    163169    #region IPreprocessingData Members
     170    public abstract bool IsCellEmpty(int columnIndex, int rowIndex);
    164171    public abstract T GetCell<T>(int columnIndex, int rowIndex);
    165172
     
    173180
    174181    public abstract bool VariableHasType<T>(int columnIndex);
    175 
    176     [Obsolete("use the index based variant, is faster")]
    177     public abstract IList<T> GetValues<T>(string variableName, bool considerSelection);
    178182
    179183    public abstract IList<T> GetValues<T>(int columnIndex, bool considerSelection);
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Data/TransactionalPreprocessingData.cs

    r15110 r15269  
    8888
    8989    #region Overridden IPreprocessingData Members
     90    public override bool IsCellEmpty(int columnIndex, int rowIndex) {
     91      var value = variableValues[columnIndex][rowIndex];
     92      return IsMissingValue(value);
     93    }
     94
    9095    public override T GetCell<T>(int columnIndex, int rowIndex) {
    9196      return (T)variableValues[columnIndex][rowIndex];
     
    119124    public override bool VariableHasType<T>(int columnIndex) {
    120125      return columnIndex >= variableValues.Count || variableValues[columnIndex] is List<T>;
    121     }
    122 
    123     [Obsolete("use the index based variant, is faster")]
    124     public override IList<T> GetValues<T>(string variableName, bool considerSelection) {
    125       return GetValues<T>(GetColumnIndex(variableName), considerSelection);
    126126    }
    127127
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj

    r15268 r15269  
    146146    <Compile Include="PreprocessingContext.cs" />
    147147    <Compile Include="Data\TransactionalPreprocessingData.cs" />
    148     <Compile Include="Logic\SearchLogic.cs" />
    149148    <Compile Include="Logic\StatisticsLogic.cs" />
    150149    <Compile Include="Data\ITransactionalPreprocessingData.cs" />
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Logic/FilterLogic.cs

    r15110 r15269  
    7373    }
    7474
    75     public bool Result(bool current, bool addition, bool isAndCombination) {
     75    private bool Result(bool current, bool addition, bool isAndCombination) {
    7676      return isAndCombination ? current || addition : current && addition;
    7777    }
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Logic/ManipulationLogic.cs

    r15110 r15269  
    3030    private readonly ITransactionalPreprocessingData preprocessingData;
    3131    private readonly StatisticsLogic statisticsLogic;
    32     private readonly SearchLogic searchLogic;
    3332
    3433    public IEnumerable<string> VariableNames {
     
    4039    }
    4140
    42     public ManipulationLogic(ITransactionalPreprocessingData preprocessingData, SearchLogic theSearchLogic, StatisticsLogic theStatisticsLogic) {
     41    public ManipulationLogic(ITransactionalPreprocessingData preprocessingData, StatisticsLogic theStatisticsLogic) {
    4342      this.preprocessingData = preprocessingData;
    44       searchLogic = theSearchLogic;
    4543      statisticsLogic = theStatisticsLogic;
    4644    }
     
    187185    private int indexOfPrevPresentValue(int columnIndex, int start) {
    188186      int offset = start - 1;
    189       while (offset >= 0 && searchLogic.IsMissingValue(columnIndex, offset)) {
     187      while (offset >= 0 && preprocessingData.IsCellEmpty(columnIndex, offset)) {
    190188        offset--;
    191189      }
     
    196194    private int indexOfNextPresentValue(int columnIndex, int start) {
    197195      int offset = start + 1;
    198       while (offset < preprocessingData.Rows && searchLogic.IsMissingValue(columnIndex, offset)) {
     196      while (offset < preprocessingData.Rows && preprocessingData.IsCellEmpty(columnIndex, offset)) {
    199197        offset++;
    200198      }
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Logic/StatisticsLogic.cs

    r15110 r15269  
    2828  public class StatisticsLogic {
    2929    private readonly ITransactionalPreprocessingData preprocessingData;
    30     private readonly SearchLogic searchLogic;
    31 
    32     public StatisticsLogic(ITransactionalPreprocessingData thePreprocessingData, SearchLogic theSearchLogic) {
    33       preprocessingData = thePreprocessingData;
    34       searchLogic = theSearchLogic;
     30
     31    public StatisticsLogic(ITransactionalPreprocessingData preprocessingData) {
     32      this.preprocessingData = preprocessingData;
    3533    }
    3634
    3735    public int GetColumnCount() {
    38       return searchLogic.Columns;
     36      return preprocessingData.Columns;
    3937    }
    4038
    4139    public int GetRowCount() {
    42       return searchLogic.Rows;
     40      return preprocessingData.Rows;
    4341    }
    4442
     
    4644      int count = 0;
    4745
    48       for (int i = 0; i < searchLogic.Columns; ++i) {
     46      for (int i = 0; i < preprocessingData.Columns; ++i) {
    4947        if (preprocessingData.VariableHasType<double>(i)) {
    5048          ++count;
     
    5553
    5654    public int GetNominalColumnCount() {
    57       return searchLogic.Columns - GetNumericColumnCount();
     55      return preprocessingData.Columns - GetNumericColumnCount();
    5856    }
    5957
    6058    public int GetMissingValueCount() {
    6159      int count = 0;
    62       for (int i = 0; i < searchLogic.Columns; ++i) {
     60      for (int i = 0; i < preprocessingData.Columns; ++i) {
    6361        count += GetMissingValueCount(i);
    6462      }
     
    6765
    6866    public int GetMissingValueCount(int columnIndex) {
    69       return searchLogic.GetMissingValueIndices(columnIndex).Count();
     67      return Enumerable.Range(0, preprocessingData.Rows).Count(rowIndex => preprocessingData.IsCellEmpty(columnIndex, rowIndex));
     68    }
     69
     70    public int GetRowMissingValueCount(int rowIndex) {
     71      var columnIndexes = Enumerable.Range(0, preprocessingData.Columns);
     72      return columnIndexes.Count(columnIndex => !preprocessingData.IsCellEmpty(columnIndex, rowIndex));
     73    }
     74
     75    private IEnumerable<T> GetValuesWithoutNaN<T>(int columnIndex, bool considerSelection = false) {
     76      return preprocessingData.GetValues<T>(columnIndex, considerSelection).Where(x => !PreprocessingData.IsMissingValue(x)).ToList();
    7077    }
    7178
     
    185192    }
    186193
    187     public int GetRowMissingValueCount(int rowIndex) {
    188       int count = 0;
    189       for (int i = 0; i < preprocessingData.Columns; ++i) {
    190         if (searchLogic.IsMissingValue(i, rowIndex)) {
    191           ++count;
    192         }
    193       }
    194       return count;
    195     }
    196 
    197     public string GetVariableName(int columnIndex) {
    198       return preprocessingData.GetVariableName(columnIndex);
    199     }
     194
    200195
    201196    public bool VariableHasType<T>(int columnIndex) {
     
    218213    }
    219214
    220     private IEnumerable<T> GetValuesWithoutNaN<T>(int columnIndex, bool considerSelection = false) {
    221       return searchLogic.GetValuesWithoutNaN<T>(columnIndex, considerSelection);
    222     }
    223215
    224216    private DateTime GetSecondsAsDateTime(double seconds) {
Note: See TracChangeset for help on using the changeset viewer.