Ignore:
Timestamp:
12/12/11 13:52:31 (13 years ago)
Author:
sherbold
Message:
  • code documentation and formatting
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/commands/CMDgenerateGreedy.java

    r293 r294  
    2121/** 
    2222 * <p> 
    23  * Command to generate test suite with a greedy strategy to achieve a desired coverage. 
     23 * Command to generate test suite with a greedy strategy to achieve a desired 
     24 * coverage. 
    2425 * </p> 
     26 *  
    2527 * @author Steffen Herbold 
    2628 * @version 1.0 
    2729 */ 
    2830public class CMDgenerateGreedy implements Command { 
    29          
     31 
     32        /** 
     33         * <p> 
     34         * Tolerance for double comparisons 
     35         * </p> 
     36         */ 
    3037        final double eps = 0.000000000001; 
    3138 
     39        /* 
     40         * (non-Javadoc) 
     41         *  
     42         * @see de.ugoe.cs.util.console.Command#run(java.util.List) 
     43         */ 
    3244        @Override 
    3345        public void run(List<Object> parameters) { 
     
    6072                } 
    6173                model = (IStochasticProcess) dataObject; 
    62                  
     74 
    6375                // set up everything 
    6476                List<List<? extends Event<?>>> allSequences = new ArrayList<List<? extends Event<?>>>(); 
     
    6779                } 
    6880                Console.traceln("" + allSequences.size() + " possible"); 
    69                  
    70                 Set<List<? extends Event<?>>> allSubSeqs = SequenceTools.containedSubSequences(allSequences, coverageDepth); 
    71                 Map<List<? extends Event<?>>, Double> weightMap = SequenceTools.generateWeights(model, allSubSeqs); 
     81 
     82                Set<List<? extends Event<?>>> allSubSeqs = SequenceTools 
     83                                .containedSubSequences(allSequences, coverageDepth); 
     84                Map<List<? extends Event<?>>, Double> weightMap = SequenceTools 
     85                                .generateWeights(model, allSubSeqs); 
    7286                Set<List<? extends Event<?>>> coveredSubSeqs = new LinkedHashSet<List<? extends Event<?>>>(); 
    73                  
    74                 List<Set<List<? extends Event<?>>>> containedSubSeqs = new ArrayList<Set<List<? extends Event<?>>>>(allSequences.size()); 
    75                 for( List<? extends Event<?>> sequence : allSequences ) { 
    76                         List<List<? extends Event<?>>>  wrapper = new LinkedList<List<? extends Event<?>>>(); 
     87 
     88                List<Set<List<? extends Event<?>>>> containedSubSeqs = new ArrayList<Set<List<? extends Event<?>>>>( 
     89                                allSequences.size()); 
     90                for (List<? extends Event<?>> sequence : allSequences) { 
     91                        List<List<? extends Event<?>>> wrapper = new LinkedList<List<? extends Event<?>>>(); 
    7792                        wrapper.add(sequence); 
    78                         Set<List<? extends Event<?>>> currentSubSeqs = SequenceTools.containedSubSequences(wrapper, coverageDepth); 
     93                        Set<List<? extends Event<?>>> currentSubSeqs = SequenceTools 
     94                                        .containedSubSequences(wrapper, coverageDepth); 
    7995                        containedSubSeqs.add(currentSubSeqs); 
    8096                } 
    81                  
     97 
    8298                Double[] sequenceGain = new Double[allSequences.size()]; 
    8399                List<List<? extends Event<?>>> testSuite = new LinkedList<List<? extends Event<?>>>(); 
    84                 CoverageCalculatorProcess coverageCalculator = new CoverageCalculatorProcess(model, testSuite, coverageDepth); 
     100                CoverageCalculatorProcess coverageCalculator = new CoverageCalculatorProcess( 
     101                                model, testSuite, coverageDepth); 
    85102                double currentCoverage = 0.0d; 
    86                  
     103 
    87104                // Build test suite 
    88                 while( currentCoverage<desiredCoverage ) { 
    89                         for( int i=0 ; i<allSequences.size() ; i++ ) { 
     105                while (currentCoverage < desiredCoverage) { 
     106                        for (int i = 0; i < allSequences.size(); i++) { 
    90107                                double gain = 0.0d; 
    91                                 for( List<? extends Event<?>> subSeq : containedSubSeqs.get(i) ) { 
    92                                         if( !coveredSubSeqs.contains(subSeq) ) { 
     108                                for (List<? extends Event<?>> subSeq : containedSubSeqs.get(i)) { 
     109                                        if (!coveredSubSeqs.contains(subSeq)) { 
    93110                                                gain += weightMap.get(subSeq); 
    94111                                        } 
     
    97114                        } 
    98115                        int maxIndex = ArrayTools.findMax(sequenceGain); 
    99                         if( sequenceGain[maxIndex] <= 0.0+eps ) { 
     116                        if (sequenceGain[maxIndex] <= 0.0 + eps) { 
    100117                                Console.traceln("No gain anymore! Desired coverage cannot be satisfied!"); 
    101118                                break; 
     
    106123                        currentCoverage = coverageCalculator.getCoveragePossibleWeight(); 
    107124                } 
    108                  
     125 
    109126                if (GlobalDataContainer.getInstance().addData(sequencesName, testSuite)) { 
    110127                        CommandHelpers.dataOverwritten(sequencesName); 
     
    114131        } 
    115132 
     133        /* 
     134         * (non-Javadoc) 
     135         *  
     136         * @see de.ugoe.cs.util.console.Command#help() 
     137         */ 
    116138        @Override 
    117139        public void help() { 
Note: See TracChangeset for help on using the changeset viewer.