View Javadoc
1 /*** 2 * B94Collector 3 * 4 * This class is responsible for gathering and 5 * interpreting results. 6 */ 7 8 package junit.quilt.cover.ball94; 9 10 import org.apache.commons.graph.*; 11 12 import cern.colt.matrix.*; 13 import cern.colt.matrix.impl.*; 14 import cern.colt.matrix.linalg.*; 15 16 import junit.quilt.framework.*; 17 import junit.quilt.cover.generic.*; 18 19 import java.util.Set; 20 import java.util.List; 21 import java.util.HashSet; 22 import java.util.Iterator; 23 24 public class B94Collector 25 extends QuiltCollectorImpl 26 { 27 private DoubleMatrix2D edgeMatrix = null; 28 private ControlFlowGraph graph = null; 29 private List edges = null; 30 private List vertices = null; 31 private int stats[]; 32 33 private static String capabilities[] = { 34 BRANCH_COVERAGE 35 }; 36 37 /*** 38 * Create a new collector for the particular 39 * graph. The matrix provided is in the format: 40 * 41 * e0 e1 e2 ... eE 42 * i0 43 * i1 44 * . 45 * . 46 * iI 47 * v0 48 * v1 49 * . 50 * . 51 * vV 52 * 53 * This is why Lists are passed around, and not Sets. 54 */ 55 public B94Collector( List vertices, 56 List edges, 57 DoubleMatrix2D edgeMatrix, 58 int stats[]) 59 { 60 super( capabilities ); 61 this.stats = stats; 62 this.graph = graph; 63 this.vertices = vertices; 64 this.edges = edges; 65 this.edgeMatrix = edgeMatrix; 66 } 67 68 public Set getBranchCoverage() { 69 Algebra alg = new Algebra(0.001); 70 DoubleMatrix2D C = new DenseDoubleMatrix2D( (vertices.size() + 71 stats.length), 1 ); 72 73 for (int i = 0; i < stats.length; i++) { 74 C.set( i, 0, stats[i]); 75 } 76 77 DoubleMatrix2D X = alg.solve( edgeMatrix, C ); 78 79 Set RC = new HashSet(); 80 for (int i = 0; i < X.rows(); i++) { 81 BranchSegment BS = 82 new BranchSegment("Unknown", 83 (FlowControlEdge) edges.get(i)); 84 BS.setNumVisits( (int) Math.abs( X.get( i, 0 ) )); 85 RC.add( BS ); 86 } 87 88 return RC; 89 } 90 91 92 public Set getAll( String coverage ) { 93 if (coverage.equals(BRANCH_COVERAGE)) { 94 return getBranchCoverage(); 95 } 96 return null; 97 } 98 99 public void reset() { 100 for (int i = 0; i < stats.length; i++) { 101 stats[i] = 0; 102 } 103 } 104 }

This page was automatically generated by Maven