Ignore:
Timestamp:
05/03/16 15:17:36 (8 years ago)
Author:
sherbold
Message:
  • updated new result storage concept and cross-project experiments to first check if a result is available. If this is the case, the experiment is not executed.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/execution/AbstractCrossProjectExperiment.java

    r68 r69  
    2929import de.ugoe.cs.cpdp.dataselection.ISetWiseDataselectionStrategy; 
    3030import de.ugoe.cs.cpdp.eval.IEvaluationStrategy; 
     31import de.ugoe.cs.cpdp.eval.IResultStorage; 
    3132import de.ugoe.cs.cpdp.loader.IVersionLoader; 
    3233import de.ugoe.cs.cpdp.training.ISetWiseTestdataAwareTrainingStrategy; 
     
    163164                                              config.getExperimentName(), versionCount, 
    164165                                              testVersionCount, testVersion.getVersion())); 
     166                if (resultsAvailable(testVersion)) { 
     167                    Console.traceln(Level.INFO, 
     168                                    String.format( 
     169                                                  "[%s] [%02d/%02d] %s: results already available; skipped", 
     170                                                  config.getExperimentName(), versionCount, 
     171                                                  testVersionCount, testVersion.getVersion())); 
     172                    versionCount++; 
     173                    continue; 
     174                } 
    165175 
    166176                // Setup testdata and training data 
     
    299309                            config.getExperimentName() + ".csv"); 
    300310                    } 
    301                     evaluator.apply(testdata, traindata, allTrainers, writeHeader, config.getResultStorages()); 
     311                    evaluator.apply(testdata, traindata, allTrainers, writeHeader, 
     312                                    config.getResultStorages()); 
    302313                    writeHeader = false; 
    303314                } 
     
    327338        return result; 
    328339    } 
     340 
     341    private boolean resultsAvailable(SoftwareVersion version) { 
     342        if (config.getResultStorages().isEmpty()) { 
     343            return false; 
     344        } 
     345        boolean available = true; 
     346        for (IResultStorage storage : config.getResultStorages()) { 
     347            available &= storage.containsResult(config.getExperimentName(), version.getVersion()); 
     348        } 
     349        return available; 
     350    } 
    329351} 
Note: See TracChangeset for help on using the changeset viewer.