Skip to content

Commit

Permalink
Initial import
Browse files Browse the repository at this point in the history
  • Loading branch information
moufmouf committed Feb 9, 2017
0 parents commit e74dc90
Show file tree
Hide file tree
Showing 52 changed files with 8,893 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
@@ -0,0 +1,3 @@
/vendor
artifact.zip
test.txt
8 changes: 8 additions & 0 deletions README.md
@@ -0,0 +1,8 @@
# Washing machine

**Work in progress**

The *washing machine* is a tool that helps you writing cleaner code by integrating PHPUnit with Gitlab CI.

As a result, when you perform a merge request in Gitlab, the washing machine will add meaningful information about your code quality.

303 changes: 303 additions & 0 deletions build/coverage/Clover/Analysis/Difference.php.html

Large diffs are not rendered by default.

522 changes: 522 additions & 0 deletions build/coverage/Clover/Analysis/Method.php.html

Large diffs are not rendered by default.

298 changes: 298 additions & 0 deletions build/coverage/Clover/Analysis/dashboard.html
@@ -0,0 +1,298 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dashboard for /home/david/projects/washing-machine/src/Clover/Analysis</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="../../css/bootstrap.min.css" rel="stylesheet">
<link href="../../css/nv.d3.min.css" rel="stylesheet">
<link href="../../css/style.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="../../js/html5shiv.min.js"></script>
<script src="../../js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<div class="container">
<div class="row">
<div class="col-md-12">
<ol class="breadcrumb">
<li><a href="../../index.html">/home/david/projects/washing-machine/src</a></li>
<li><a href="../index.html">Clover</a></li>
<li><a href="index.html">Analysis</a></li>
<li class="active">(Dashboard)</li>

</ol>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>Classes</h2>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Coverage Distribution</h3>
<div id="classCoverageDistribution" style="height: 300px;">
<svg></svg>
</div>
</div>
<div class="col-md-6">
<h3>Complexity</h3>
<div id="classComplexity" style="height: 300px;">
<svg></svg>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Insufficient Coverage</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Class</th>
<th class="text-right">Coverage</th>
</tr>
</thead>
<tbody>
<tr><td><a href="Method.php.html#9">Method</a></td><td class="text-right">70%</td></tr>
<tr><td><a href="Difference.php.html#9">Difference</a></td><td class="text-right">71%</td></tr>

</tbody>
</table>
</div>
</div>
<div class="col-md-6">
<h3>Project Risks</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Class</th>
<th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
</tr>
</thead>
<tbody>

</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h2>Methods</h2>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Coverage Distribution</h3>
<div id="methodCoverageDistribution" style="height: 300px;">
<svg></svg>
</div>
</div>
<div class="col-md-6">
<h3>Complexity</h3>
<div id="methodComplexity" style="height: 300px;">
<svg></svg>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Insufficient Coverage</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Method</th>
<th class="text-right">Coverage</th>
</tr>
</thead>
<tbody>
<tr><td><a href="Difference.php.html#27"><abbr title="Difference::getMethodFullName">getMethodFullName</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Difference.php.html#37"><abbr title="Difference::isNew">isNew</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Method.php.html#74"><abbr title="Method::getClassName">getClassName</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Method.php.html#82"><abbr title="Method::getNamespace">getNamespace</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Method.php.html#90"><abbr title="Method::getVisibility">getVisibility</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Method.php.html#98"><abbr title="Method::getComplexity">getComplexity</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Method.php.html#114"><abbr title="Method::getCount">getCount</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Method.php.html#135"><abbr title="Method::getLine">getLine</abbr></a></td><td class="text-right">0%</td></tr>

</tbody>
</table>
</div>
</div>
<div class="col-md-6">
<h3>Project Risks</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Method</th>
<th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
</tr>
</thead>
<tbody>

</tbody>
</table>
</div>
</div>
</div>
<footer>
<hr/>
<p>
<small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 4.0.5</a> using <a href="https://secure.php.net/" target="_top">PHP 7.0.13-0ubuntu0.16.10.1</a> with <a href="https://xdebug.org/">Xdebug 2.4.0</a> and <a href="https://phpunit.de/">PHPUnit 5.7.9</a> at Thu Feb 9 12:23:09 UTC 2017.</small>
</p>
</footer>
</div>
<script src="../../js/jquery.min.js" type="text/javascript"></script>
<script src="../../js/bootstrap.min.js" type="text/javascript"></script>
<script src="../../js/holder.min.js" type="text/javascript"></script>
<script src="../../js/d3.min.js" type="text/javascript"></script>
<script src="../../js/nv.d3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
nv.addGraph(function() {
var chart = nv.models.multiBarChart();
chart.tooltips(false)
.showControls(false)
.showLegend(false)
.reduceXTicks(false)
.staggerLabels(true)
.yAxis.tickFormat(d3.format('d'));

d3.select('#classCoverageDistribution svg')
.datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,2,0,0,0], "Class Coverage"))
.transition().duration(500).call(chart);

nv.utils.windowResize(chart.update);

return chart;
});

nv.addGraph(function() {
var chart = nv.models.multiBarChart();
chart.tooltips(false)
.showControls(false)
.showLegend(false)
.reduceXTicks(false)
.staggerLabels(true)
.yAxis.tickFormat(d3.format('d'));

d3.select('#methodCoverageDistribution svg')
.datum(getCoverageDistributionData([8,0,0,0,0,0,0,0,0,0,0,8], "Method Coverage"))
.transition().duration(500).call(chart);

nv.utils.windowResize(chart.update);

return chart;
});

function getCoverageDistributionData(data, label) {
var labels = [
'0%',
'0-10%',
'10-20%',
'20-30%',
'30-40%',
'40-50%',
'50-60%',
'60-70%',
'70-80%',
'80-90%',
'90-100%',
'100%'
];
var values = [];
$.each(labels, function(key) {
values.push({x: labels[key], y: data[key]});
});

return [
{
key: label,
values: values,
color: "#4572A7"
}
];
}
nv.addGraph(function() {
var chart = nv.models.scatterChart()
.showDistX(true)
.showDistY(true)
.showLegend(false)
.forceX([0, 100]);
chart.tooltipContent(function(graph) {
return '<p>' + graph.point.class + '</p>';
});

chart.xAxis.axisLabel('Code Coverage (in percent)');
chart.yAxis.axisLabel('Cyclomatic Complexity');

d3.select('#classComplexity svg')
.datum(getComplexityData([[71.428571428571,5,"<a href=\"Difference.php.html#9\">Difference<\/a>"],[70,11,"<a href=\"Method.php.html#9\">Method<\/a>"]], 'Class Complexity'))
.transition()
.duration(500)
.call(chart);

nv.utils.windowResize(chart.update);

return chart;
});

nv.addGraph(function() {
var chart = nv.models.scatterChart()
.showDistX(true)
.showDistY(true)
.showLegend(false)
.forceX([0, 100]);
chart.tooltipContent(function(graph) {
return '<p>' + graph.point.class + '</p>';
});

chart.xAxis.axisLabel('Code Coverage (in percent)');
chart.yAxis.axisLabel('Method Complexity');

d3.select('#methodComplexity svg')
.datum(getComplexityData([[100,1,"<a href=\"Difference.php.html#21\">Difference::__construct<\/a>"],[0,1,"<a href=\"Difference.php.html#27\">Difference::getMethodFullName<\/a>"],[100,1,"<a href=\"Difference.php.html#32\">Difference::getCrapScore<\/a>"],[0,1,"<a href=\"Difference.php.html#37\">Difference::isNew<\/a>"],[100,1,"<a href=\"Difference.php.html#42\">Difference::getCrapDifference<\/a>"],[100,1,"<a href=\"Method.php.html#49\">Method::__construct<\/a>"],[100,1,"<a href=\"Method.php.html#66\">Method::getMethodName<\/a>"],[0,1,"<a href=\"Method.php.html#74\">Method::getClassName<\/a>"],[0,1,"<a href=\"Method.php.html#82\">Method::getNamespace<\/a>"],[0,1,"<a href=\"Method.php.html#90\">Method::getVisibility<\/a>"],[0,1,"<a href=\"Method.php.html#98\">Method::getComplexity<\/a>"],[100,1,"<a href=\"Method.php.html#106\">Method::getCrap<\/a>"],[0,1,"<a href=\"Method.php.html#114\">Method::getCount<\/a>"],[100,1,"<a href=\"Method.php.html#119\">Method::getFullName<\/a>"],[100,1,"<a href=\"Method.php.html#127\">Method::getFile<\/a>"],[0,1,"<a href=\"Method.php.html#135\">Method::getLine<\/a>"]], 'Method Complexity'))
.transition()
.duration(500)
.call(chart);

nv.utils.windowResize(chart.update);

return chart;
});

function getComplexityData(data, label) {
var values = [];
$.each(data, function(key) {
var value = Math.round(data[key][0]*100) / 100;
values.push({
x: value,
y: data[key][1],
class: data[key][2],
size: 0.05,
shape: 'diamond'
});
});

return [
{
key: label,
values: values,
color: "#4572A7"
}
];
}
});
</script>
</body>
</html>

0 comments on commit e74dc90

Please sign in to comment.