--- /dev/null
+package org.simantics.scl.compiler.module.coverage;\r
+\r
+public abstract class AbstractCoverage implements Coverage {\r
+\r
+ private String identifier;\r
+\r
+ private final int totalCodeSize;\r
+ private final int coveredCodeSize;\r
+ private final double coverage;\r
+\r
+ public AbstractCoverage(String identifier, int totalCodeSize, int coveredCodeSize) {\r
+ this.identifier = identifier;\r
+ this.coverage = CoverageUtils.safeDiv(coveredCodeSize, totalCodeSize);\r
+ this.totalCodeSize = totalCodeSize;\r
+ this.coveredCodeSize = coveredCodeSize;\r
+ }\r
+\r
+ @Override\r
+ public String getIdentifier() {\r
+ return identifier;\r
+ }\r
+\r
+ @Override\r
+ public double getCoverage() {\r
+ return coverage;\r
+ }\r
+\r
+ @Override\r
+ public int getTotalCodeSize() {\r
+ return totalCodeSize;\r
+ }\r
+\r
+ @Override\r
+ public int getCoveredCodeSize() {\r
+ return coveredCodeSize;\r
+ }\r
+\r
+ @Override\r
+ public int getMissedCodeSize() {\r
+ return totalCodeSize - coveredCodeSize;\r
+ }\r
+\r
+ String toPercent(double v) {\r
+ return String.valueOf(v*100.0) + "%";\r
+ }\r
+\r
+}\r