EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][de.uka.ipd.sdq.dsexplore.opt4j.representation]

COVERAGE SUMMARY FOR SOURCE FILE [DSENeighbor.java]

nameclass, %method, %block, %line, %
DSENeighbor.java0%   (0/1)0%   (0/2)0%   (0/11)0%   (0/4)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class DSENeighbor0%   (0/1)0%   (0/2)0%   (0/11)0%   (0/4)
DSENeighbor (NormalizeDouble, Rand): void 0%   (0/1)0%   (0/6)0%   (0/3)
neighbor (DesignDecisionGenotype): void 0%   (0/1)0%   (0/5)0%   (0/1)

1package de.uka.ipd.sdq.dsexplore.opt4j.representation;
2 
3import org.opt4j.operator.Apply;
4import org.opt4j.operator.neighbor.Neighbor;
5import org.opt4j.operator.normalize.NormalizeDouble;
6import org.opt4j.common.random.Rand;
7 
8import com.google.inject.Singleton;
9 
10import de.uka.ipd.sdq.dsexplore.opt4j.genotype.DesignDecisionGenotype;
11 
12@Singleton
13@Apply(DesignDecisionGenotype.class)
14public class DSENeighbor implements Neighbor<DesignDecisionGenotype> {
15        
16        public DSENeighbor(NormalizeDouble normalize, Rand random) {
17                System.out.print("using DSENeighbor");
18        }
19 
20        @Override
21        public void neighbor(DesignDecisionGenotype genotype) {
22 
23                
24                /*DesignDecisionGenotype vector = (DesignDecisionGenotype) genotype;
25 
26                int size = vector.size();
27 
28                int i = random.nextInt(size);
29                
30                
31 
32                if (Opt4JStarter.getProblem().getBounds().isInteger(i)){
33                        int currentValue = vector.get(i).intValue();
34                        
35                        //TODO: handle enums right
36                        
37                        if (Opt4JStarter.getProblem().getBounds().isEnum(i)){
38                                //handle enum: all are neighbors. Lower bound is 0, but maybe I change it later, so this is fool proof. 
39                                int choice = random.nextInt((int)(Opt4JStarter.getProblem().getBounds().getUpperBound(i) - Opt4JStarter.getProblem().getBounds().getLowerBound(i)));
40                                //shift one up if the value is larger than the current choice, as the current is no neighbor of itself and the upper bound cannot be produced by nextInt
41                                if (choice > currentValue){
42                                        choice ++;
43                                }
44                                vector.set(i, new Double(choice+ Opt4JStarter.getProblem().getBounds().getLowerBound(i)));
45                                
46                        } 
47                        //handle ordered integer 
48                        else if (Opt4JStarter.getProblem().getBounds().getLowerBound(i) == currentValue){
49                                vector.set(i, new Double(currentValue + 1));
50                        } else if (Opt4JStarter.getProblem().getBounds().getUpperBound(i) == currentValue){
51                                vector.set(i, new Double(currentValue - 1));
52                        } else {
53                                //decide whether going up or down
54                                boolean add = (random.nextInt(2) != 0);
55                                if (add){
56                                        vector.set(i, new Double(currentValue + 1));
57                                } else {
58                                        vector.set(i, new Double(currentValue - 1));
59                                }
60                        }
61                        
62                        
63                } else {
64                        //if double value, use the normal way
65                        //copied from superclass NeighborDouble
66                        double value = vector.get(i) + random.nextDouble() * 0.1 - 0.05;
67                        vector.set(i, value);
68 
69                        normalize.normalize(vector);
70                }
71        */
72        throw new UnsupportedOperationException("DSE Neighbour operator has not been implemented yet.");        
73 
74        }
75 
76}

[all classes][de.uka.ipd.sdq.dsexplore.opt4j.representation]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov