diff --git a/jcoverage/src/main/org/apache/maven/jcoveragereport/Coverage.java b/jcoverage/src/main/org/apache/maven/jcoveragereport/Coverage.java index 29949718..380046bc 100644 --- a/jcoverage/src/main/org/apache/maven/jcoveragereport/Coverage.java +++ b/jcoverage/src/main/org/apache/maven/jcoveragereport/Coverage.java @@ -26,7 +26,7 @@ import java.util.HashMap; /** * @author Emmanuel Venisse - * @version $Id: Coverage.java,v 1.4 2004/03/06 22:41:56 evenisse Exp $ + * @version $Id: Coverage.java,v 1.5 2004/09/03 07:58:59 evenisse Exp $ */ public class Coverage { @@ -123,13 +123,15 @@ public class Coverage public String getCoveredPercentBranch() { - double total = 0.00d; + double totalLines = 0.00d; + double total = 0.00d; if (getLineCoverage() > 0.00d) { for (Iterator iter = getClasses().iterator(); iter.hasNext(); ) { Clazz theClass = (Clazz) iter.next(); + int classLines = theClass.getLines().size(); double rate = 0; try { @@ -139,30 +141,38 @@ public class Coverage { rate = 0; } - total += rate; + total += (rate*classLines); + totalLines += classLines; } + + total /= totalLines; } - return String.valueOf(total / getClasses().size()); + return String.valueOf(total); } - + private double getLineCoverage() { - double total = 0.00d; + double totalLines = 0.00d; + double totalTestedLines = 0.00d; for (Iterator iter = getClasses().iterator(); iter.hasNext(); ) { Clazz theClass = (Clazz) iter.next(); + int classLines = theClass.getLines().size(); double rate = 0; try - { + { rate = new Double(theClass.getLineRate()).floatValue(); } catch(NumberFormatException e) { rate = 0; } - total += rate; + totalTestedLines += (rate * classLines); + totalLines += classLines; } - return total / getClasses().size(); + + return (totalTestedLines / totalLines); + } } diff --git a/jcoverage/src/main/org/apache/maven/jcoveragereport/Package.java b/jcoverage/src/main/org/apache/maven/jcoveragereport/Package.java index e5dfa931..07f427e0 100644 --- a/jcoverage/src/main/org/apache/maven/jcoveragereport/Package.java +++ b/jcoverage/src/main/org/apache/maven/jcoveragereport/Package.java @@ -24,7 +24,7 @@ import java.util.List; /** * @author Emmanuel Venisse - * @version $Id: Package.java,v 1.5 2004/03/06 22:41:56 evenisse Exp $ + * @version $Id: Package.java,v 1.6 2004/09/03 07:58:59 evenisse Exp $ */ public class Package { @@ -91,13 +91,15 @@ public class Package public String getCoveredPercentBranch() { - double total = 0.00d; + double pckgLines = 0.00d; + double total = 0.00d; if (getLineCoverage() > 0.00d) { for (Iterator iter = getClasses().iterator(); iter.hasNext(); ) { Clazz theClass = (Clazz) iter.next(); + int classLines = theClass.getLines().size(); double rate = 0; try { @@ -107,10 +109,11 @@ public class Package { rate = 0; } - total += rate; + total += (rate*classLines); + pckgLines += classLines; } - total /= getClasses().size(); + total /= pckgLines; } return String.valueOf(total); @@ -118,23 +121,25 @@ public class Package private double getLineCoverage() { - double total = 0.00d; - + double pckgLines = 0.00d; + double pckgTestedLines = 0.00d; for (Iterator iter = getClasses().iterator(); iter.hasNext(); ) { Clazz theClass = (Clazz) iter.next(); + int classLines = theClass.getLines().size(); double rate = 0; try - { + { rate = new Double(theClass.getLineRate()).floatValue(); } catch(NumberFormatException e) { rate = 0; } - total += rate; + pckgTestedLines += (rate * classLines); + pckgLines += classLines; } - return (total / getClasses().size()); + return (pckgTestedLines / pckgLines); } } diff --git a/jcoverage/xdocs/changes.xml b/jcoverage/xdocs/changes.xml index 768ad2ff..ff4d339c 100644 --- a/jcoverage/xdocs/changes.xml +++ b/jcoverage/xdocs/changes.xml @@ -25,6 +25,7 @@ + Fixed overview and packages rates. Add the possibility to set multiple includes and excludes files for instrumentation.