Permalink
Browse files

BUG: Fix coverage calculation for empty files

For files with no executable lines, the coverage report should
have a nominal 100% coverage rate. This is the behaviour of other
coverage packages, such as those for Python.

Previously, files without any executable lines would report a
coverage of "NaN%", due to the division by 0.
  • Loading branch information...
1 parent 3562815 commit 41dcc01a7d67dcd25a55bfbc6bcd1db80b83a04d @scottclowe scottclowe committed Feb 1, 2016
@@ -54,4 +54,10 @@
function r=get_coverage_ratio(obj)
executable=get_lines_executable(obj);
- r=sum(get_lines_executed(obj) & executable) / sum(executable);
+ numerator = sum(get_lines_executed(obj) & executable);
+ denominator = sum(executable);
+ if denominator==0
+ r=1;
+ else
+ r=numerator/denominator;
+ end
@@ -66,6 +66,10 @@ function write_to_file(fn,s)
denominator=denominator+sum(able);
end
- coverage=numerator/denominator;
+ if denominator==0
+ coverage=1;
+ else
+ coverage=numerator/denominator;
+ end
@@ -96,7 +96,11 @@ function write_index_html(output_fn, mfiles, mfile_node_fns)
executed(~executable)=false;
- coverage=100*sum(executed)/sum(executable);
+ if sum(executable)==0
+ coverage=100;
+ else
+ coverage=100*sum(executed)/sum(executable);
+ end
stat=[numel(executable),...
sum(executable),...
@@ -111,7 +111,11 @@ function write_index_html(output_fn, mfiles, mfile_node_fns)
executed(~executable)=false;
- coverage=100*sum(executed)/sum(executable);
+ if sum(executable)==0
+ coverage=100;
+ else
+ coverage=100*sum(executed)/sum(executable);
+ end
stat=[numel(executable),...
sum(executable),...
@@ -83,6 +83,10 @@ function write_to_file(fn,s)
denominator=denominator+sum(executable);
end
- coverage=numerator/denominator;
+ if denominator==0
+ coverage=1;
+ else
+ coverage=numerator/denominator;
+ end

0 comments on commit 41dcc01

Please sign in to comment.