Skip to content

Instantly share code, notes, and snippets.

@piyush0101
Last active August 29, 2015 14:05
Show Gist options
  • Save piyush0101/f929fa5ace70f4b2a5b9 to your computer and use it in GitHub Desktop.
Save piyush0101/f929fa5ace70f4b2a5b9 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
@failed_tests=('Coverage-vector-9.coverage',
'Coverage-vector-10.coverage',
'Coverage-vector-11.coverage');
@passed_tests=('Coverage-vector-7.coverage',
'Coverage-vector-8.coverage');
@failed_keys=('gamma', 'alpha');
@passed_keys=('eeta', 'beta');
@sorted_stmts=();
%coverage_data=();
%results=();
sub initialize_stmt {
$stmt = $_[0];
$coverage_data{$stmt} = {$failed_keys[0] => 0, $failed_keys[1] => 0,
$passed_keys[0] => 0, $passed_keys[1] => 0};
}
sub parse {
@keys = @{$_[0]};
@files = @{$_[1]};
foreach $file (@files) {
open(COVERAGEFILE, $file);
while(<COVERAGEFILE>) {
if ($_ =~ m/(\d+)(\s+)([01])/) {
if (! defined $coverage_data{$1}) {
initialize_stmt $1;
}
$coverage_data{$1}{$keys[$3]} ++;
}
}
close(COVERAGEFILE);
}
}
parse \@failed_keys, \@failed_tests;
parse \@passed_keys, \@passed_tests;
foreach $statement (keys %coverage_data) {
$alpha = $coverage_data{$statement}{$failed_keys[1]};
$gamma = $coverage_data{$statement}{$failed_keys[0]};
$beta = $coverage_data{$statement}{$passed_keys[1]};
$eeta = $coverage_data{$statement}{$passed_keys[0]};
$results{$statement} = (($alpha * $alpha * 100) + $gamma) / ($beta + $eeta + 0.1);
}
foreach $line (sort { $results{$b} <=> $results{$a} } keys %results) {
push(@sorted_stmts, $line);
}
print join("\n", splice @sorted_stmts, 0, 30);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment