EMMA Coverage Report (generated Sun Feb 05 10:43:15 CET 2012)
[all classes][de.uka.ipd.sdq.measurement.strategies.activeresource.cpu]

COVERAGE SUMMARY FOR SOURCE FILE [SortArrayDemand.java]

nameclass, %method, %block, %line, %
SortArrayDemand.java0%   (0/1)0%   (0/9)0%   (0/155)0%   (0/31)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SortArrayDemand0%   (0/1)0%   (0/9)0%   (0/155)0%   (0/31)
SortArrayDemand (): void 0%   (0/1)0%   (0/39)0%   (0/8)
SortArrayDemand (int): void 0%   (0/1)0%   (0/42)0%   (0/9)
cleanup (): void 0%   (0/1)0%   (0/1)0%   (0/1)
getArray (int): double [] 0%   (0/1)0%   (0/5)0%   (0/1)
getCalibrationFileName (): String 0%   (0/1)0%   (0/28)0%   (0/2)
getName (): String 0%   (0/1)0%   (0/2)0%   (0/1)
getStrategysResource (): ResourceTypeEnum 0%   (0/1)0%   (0/2)0%   (0/1)
run (long): void 0%   (0/1)0%   (0/5)0%   (0/2)
sortArray (int): void 0%   (0/1)0%   (0/31)0%   (0/8)

1package de.uka.ipd.sdq.measurement.strategies.activeresource.cpu;
2 
3import java.util.Arrays;
4import java.util.Random;
5 
6import de.uka.ipd.sdq.measurement.strategies.activeresource.AbstractDemandStrategy;
7import de.uka.ipd.sdq.measurement.strategies.activeresource.CalibrationTable;
8import de.uka.ipd.sdq.measurement.strategies.activeresource.ResourceTypeEnum;
9 
10public class SortArrayDemand extends AbstractDemandStrategy {
11 
12        private double[] values = null;
13 
14        private int ARRAY_SIZE = 1024 * 1024; // Default: 1M Values
15 
16        /**
17         * always use the same seed for the random values to reduce the variability
18         * of the sorting algorithms (the same seed generates the same sequence of
19         * values)
20         */
21        private static final int SEED = 1234;
22 
23        public SortArrayDemand(int arraySize) {
24                super(-3,0,3,10000,50);
25                ARRAY_SIZE = arraySize;
26                values = new double[ARRAY_SIZE];
27                Random r = new Random(SEED);
28                for (int i = 0; i < values.length; i++) {
29                        values[i] = r.nextDouble();
30                }
31        }
32 
33        public SortArrayDemand() {
34                super(-3,0,3,10000,50);
35                values = new double[ARRAY_SIZE];
36                Random r = new Random(SEED);
37                for (int i = 0; i < values.length; i++) {
38                        values[i] = r.nextDouble();
39                }
40        }
41 
42        private void sortArray(int amountOfNumbers) {
43                int iterations = amountOfNumbers / ARRAY_SIZE;
44                int rest = amountOfNumbers % ARRAY_SIZE;
45                for (int i=0; i<iterations; i++){
46                        double[] lotsOfDoubles = getArray(ARRAY_SIZE);
47                        Arrays.sort(lotsOfDoubles);
48                }
49                double[] lotsOfDoubles = getArray(rest);
50                Arrays.sort(lotsOfDoubles);
51        }
52 
53        private double[] getArray(int amountOfNumbers) {
54                return Arrays.copyOf(values, amountOfNumbers);
55        }
56 
57        @Override
58        public void run(long initial) {
59                sortArray((int) initial);
60        }
61 
62        @Override
63        public ResourceTypeEnum getStrategysResource() {
64                return ResourceTypeEnum.CPU;
65        }
66 
67        @Override
68        public String getName() {
69                return "SortArray";
70        }
71        
72        @Override
73        protected String getCalibrationFileName() {
74                return getCalibrationPath() + getName() + "_"
75                                + CalibrationTable.DEFAULT_CALIBRATION_TABLE_SIZE + "_" + ARRAY_SIZE + "_" + this.degreeOfAccuracy.name() + ".ser";
76        }
77        
78        @Override
79        public void cleanup() {
80                // Do nothing.
81        }
82}

[all classes][de.uka.ipd.sdq.measurement.strategies.activeresource.cpu]
EMMA 2.0.9414 (unsupported private build) (C) Vladimir Roubtsov