Skip to content

Commit

Permalink
Add more test coverage for error handling and helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
GustafB committed Mar 29, 2018
1 parent 738f139 commit 2b7296c
Show file tree
Hide file tree
Showing 18 changed files with 1,749 additions and 33 deletions.
Binary file added .DS_Store
Binary file not shown.
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
node_modules
coverage
node_modules
Binary file added coverage/.DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions coverage/coverage.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"/Users/gustafbrostedt/Documents/k-cluster-npm/lib/helpers.js":{"path":"/Users/gustafbrostedt/Documents/k-cluster-npm/lib/helpers.js","s":{"1":1,"2":25251,"3":25251,"4":1,"5":25250,"6":39702,"7":25250,"8":1,"9":386,"10":1,"11":385,"12":387,"13":1,"14":156,"15":1,"16":155,"17":310,"18":1,"19":76,"20":76,"21":76,"22":76,"23":76,"24":152,"25":76,"26":76,"27":76,"28":1,"29":152,"30":152,"31":805,"32":152,"33":1},"b":{"1":[1,25250],"2":[1,385],"3":[1,155],"4":[68,8]},"f":{"1":156,"2":76},"fnMap":{"1":{"name":"(anonymous_1)","line":58,"loc":{"start":{"line":58,"column":18},"end":{"line":58,"column":34}}},"2":{"name":"(anonymous_2)","line":71,"loc":{"start":{"line":71,"column":27},"end":{"line":71,"column":42}}}},"statementMap":{"1":{"start":{"line":11,"column":0},"end":{"line":20,"column":1}},"2":{"start":{"line":12,"column":2},"end":{"line":12,"column":16}},"3":{"start":{"line":13,"column":2},"end":{"line":15,"column":3}},"4":{"start":{"line":14,"column":4},"end":{"line":14,"column":58}},"5":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"6":{"start":{"line":17,"column":5},"end":{"line":17,"column":41}},"7":{"start":{"line":19,"column":2},"end":{"line":19,"column":26}},"8":{"start":{"line":46,"column":0},"end":{"line":49,"column":1}},"9":{"start":{"line":47,"column":2},"end":{"line":47,"column":23}},"10":{"start":{"line":47,"column":14},"end":{"line":47,"column":23}},"11":{"start":{"line":48,"column":2},"end":{"line":48,"column":39}},"12":{"start":{"line":48,"column":32},"end":{"line":48,"column":37}},"13":{"start":{"line":58,"column":0},"end":{"line":61,"column":1}},"14":{"start":{"line":59,"column":2},"end":{"line":59,"column":21}},"15":{"start":{"line":59,"column":13},"end":{"line":59,"column":21}},"16":{"start":{"line":60,"column":2},"end":{"line":60,"column":50}},"17":{"start":{"line":60,"column":33},"end":{"line":60,"column":47}},"18":{"start":{"line":71,"column":0},"end":{"line":83,"column":1}},"19":{"start":{"line":72,"column":2},"end":{"line":72,"column":27}},"20":{"start":{"line":73,"column":2},"end":{"line":73,"column":26}},"21":{"start":{"line":75,"column":2},"end":{"line":75,"column":29}},"22":{"start":{"line":76,"column":2},"end":{"line":76,"column":29}},"23":{"start":{"line":78,"column":2},"end":{"line":78,"column":53}},"24":{"start":{"line":78,"column":40},"end":{"line":78,"column":51}},"25":{"start":{"line":79,"column":2},"end":{"line":79,"column":44}},"26":{"start":{"line":81,"column":2},"end":{"line":81,"column":106}},"27":{"start":{"line":82,"column":2},"end":{"line":82,"column":34}},"28":{"start":{"line":93,"column":0},"end":{"line":99,"column":1}},"29":{"start":{"line":94,"column":2},"end":{"line":94,"column":16}},"30":{"start":{"line":95,"column":2},"end":{"line":97,"column":3}},"31":{"start":{"line":96,"column":4},"end":{"line":96,"column":29}},"32":{"start":{"line":98,"column":2},"end":{"line":98,"column":15}},"33":{"start":{"line":101,"column":0},"end":{"line":108,"column":1}}},"branchMap":{"1":{"line":13,"type":"if","locations":[{"start":{"line":13,"column":2},"end":{"line":13,"column":2}},{"start":{"line":13,"column":2},"end":{"line":13,"column":2}}]},"2":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":47,"column":2}},{"start":{"line":47,"column":2},"end":{"line":47,"column":2}}]},"3":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":2},"end":{"line":59,"column":2}},{"start":{"line":59,"column":2},"end":{"line":59,"column":2}}]},"4":{"line":82,"type":"cond-expr","locations":[{"start":{"line":82,"column":16},"end":{"line":82,"column":29}},{"start":{"line":82,"column":33},"end":{"line":82,"column":34}}]}}},"/Users/gustafbrostedt/Documents/k-cluster-npm/lib/k-means.js":{"path":"/Users/gustafbrostedt/Documents/k-cluster-npm/lib/k-means.js","s":{"1":1,"2":1,"3":1,"4":7,"5":7,"6":362,"7":426,"8":1,"9":425,"10":14,"11":425,"12":0,"13":425,"14":0,"15":6,"16":1,"17":6,"18":6,"19":2072,"20":6,"21":1,"22":152,"23":152,"24":6208,"25":25325,"26":6207,"27":6207,"28":151,"29":1,"30":147,"31":146,"32":146,"33":783,"34":1533,"35":1533,"36":8396,"37":1533,"38":146,"39":1,"40":7,"41":6,"42":6,"43":6,"44":147,"45":146,"46":141,"47":141,"48":5,"49":6,"50":1,"51":10,"52":1,"53":9,"54":1,"55":8,"56":1,"57":7,"58":5,"59":5,"60":1},"b":{"1":[1,425],"2":[14,411],"3":[0,425],"4":[0,425],"5":[1533,0],"6":[141,5],"7":[1,9],"8":[1,8],"9":[1,7]},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":21,"column":0},"end":{"line":21,"column":108}},"2":{"start":{"line":22,"column":0},"end":{"line":22,"column":28}},"3":{"start":{"line":32,"column":0},"end":{"line":51,"column":1}},"4":{"start":{"line":33,"column":2},"end":{"line":33,"column":19}},"5":{"start":{"line":34,"column":2},"end":{"line":49,"column":4}},"6":{"start":{"line":35,"column":4},"end":{"line":48,"column":6}},"7":{"start":{"line":36,"column":6},"end":{"line":38,"column":7}},"8":{"start":{"line":37,"column":8},"end":{"line":37,"column":68}},"9":{"start":{"line":39,"column":6},"end":{"line":41,"column":7}},"10":{"start":{"line":40,"column":8},"end":{"line":40,"column":51}},"11":{"start":{"line":42,"column":6},"end":{"line":44,"column":7}},"12":{"start":{"line":43,"column":8},"end":{"line":43,"column":32}},"13":{"start":{"line":45,"column":6},"end":{"line":47,"column":7}},"14":{"start":{"line":46,"column":8},"end":{"line":46,"column":32}},"15":{"start":{"line":50,"column":2},"end":{"line":50,"column":15}},"16":{"start":{"line":62,"column":0},"end":{"line":68,"column":1}},"17":{"start":{"line":63,"column":2},"end":{"line":63,"column":34}},"18":{"start":{"line":64,"column":2},"end":{"line":66,"column":5}},"19":{"start":{"line":65,"column":5},"end":{"line":65,"column":36}},"20":{"start":{"line":67,"column":2},"end":{"line":67,"column":31}},"21":{"start":{"line":81,"column":0},"end":{"line":89,"column":1}},"22":{"start":{"line":82,"column":2},"end":{"line":82,"column":46}},"23":{"start":{"line":83,"column":2},"end":{"line":87,"column":4}},"24":{"start":{"line":84,"column":4},"end":{"line":84,"column":59}},"25":{"start":{"line":84,"column":42},"end":{"line":84,"column":57}},"26":{"start":{"line":85,"column":4},"end":{"line":85,"column":62}},"27":{"start":{"line":86,"column":4},"end":{"line":86,"column":33}},"28":{"start":{"line":88,"column":2},"end":{"line":88,"column":21}},"29":{"start":{"line":100,"column":0},"end":{"line":114,"column":1}},"30":{"start":{"line":101,"column":2},"end":{"line":101,"column":67}},"31":{"start":{"line":102,"column":2},"end":{"line":102,"column":48}},"32":{"start":{"line":103,"column":2},"end":{"line":112,"column":4}},"33":{"start":{"line":104,"column":4},"end":{"line":111,"column":6}},"34":{"start":{"line":105,"column":6},"end":{"line":105,"column":18}},"35":{"start":{"line":106,"column":6},"end":{"line":109,"column":8}},"36":{"start":{"line":107,"column":8},"end":{"line":107,"column":42}},"37":{"start":{"line":110,"column":6},"end":{"line":110,"column":56}},"38":{"start":{"line":113,"column":2},"end":{"line":113,"column":67}},"39":{"start":{"line":125,"column":0},"end":{"line":139,"column":1}},"40":{"start":{"line":126,"column":2},"end":{"line":126,"column":32}},"41":{"start":{"line":127,"column":2},"end":{"line":127,"column":49}},"42":{"start":{"line":128,"column":2},"end":{"line":128,"column":21}},"43":{"start":{"line":129,"column":2},"end":{"line":137,"column":3}},"44":{"start":{"line":130,"column":4},"end":{"line":130,"column":58}},"45":{"start":{"line":131,"column":4},"end":{"line":136,"column":5}},"46":{"start":{"line":132,"column":6},"end":{"line":132,"column":18}},"47":{"start":{"line":133,"column":6},"end":{"line":133,"column":29}},"48":{"start":{"line":135,"column":6},"end":{"line":135,"column":22}},"49":{"start":{"line":138,"column":2},"end":{"line":138,"column":24}},"50":{"start":{"line":150,"column":0},"end":{"line":165,"column":1}},"51":{"start":{"line":151,"column":2},"end":{"line":153,"column":3}},"52":{"start":{"line":152,"column":4},"end":{"line":152,"column":99}},"53":{"start":{"line":154,"column":2},"end":{"line":156,"column":3}},"54":{"start":{"line":155,"column":4},"end":{"line":155,"column":85}},"55":{"start":{"line":157,"column":2},"end":{"line":159,"column":3}},"56":{"start":{"line":158,"column":4},"end":{"line":158,"column":70}},"57":{"start":{"line":160,"column":2},"end":{"line":160,"column":37}},"58":{"start":{"line":161,"column":2},"end":{"line":161,"column":67}},"59":{"start":{"line":162,"column":2},"end":{"line":164,"column":3}},"60":{"start":{"line":167,"column":0},"end":{"line":167,"column":23}}},"branchMap":{"1":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":6},"end":{"line":36,"column":6}},{"start":{"line":36,"column":6},"end":{"line":36,"column":6}}]},"2":{"line":39,"type":"if","locations":[{"start":{"line":39,"column":6},"end":{"line":39,"column":6}},{"start":{"line":39,"column":6},"end":{"line":39,"column":6}}]},"3":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":6},"end":{"line":42,"column":6}},{"start":{"line":42,"column":6},"end":{"line":42,"column":6}}]},"4":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":6},"end":{"line":45,"column":6}},{"start":{"line":45,"column":6},"end":{"line":45,"column":6}}]},"5":{"line":110,"type":"binary-expr","locations":[{"start":{"line":110,"column":23},"end":{"line":110,"column":50}},{"start":{"line":110,"column":54},"end":{"line":110,"column":55}}]},"6":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":4},"end":{"line":131,"column":4}},{"start":{"line":131,"column":4},"end":{"line":131,"column":4}}]},"7":{"line":151,"type":"if","locations":[{"start":{"line":151,"column":2},"end":{"line":151,"column":2}},{"start":{"line":151,"column":2},"end":{"line":151,"column":2}}]},"8":{"line":154,"type":"if","locations":[{"start":{"line":154,"column":2},"end":{"line":154,"column":2}},{"start":{"line":154,"column":2},"end":{"line":154,"column":2}}]},"9":{"line":157,"type":"if","locations":[{"start":{"line":157,"column":2},"end":{"line":157,"column":2}},{"start":{"line":157,"column":2},"end":{"line":157,"column":2}}]}}}}
213 changes: 213 additions & 0 deletions coverage/lcov-report/base.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
body, html {
margin:0; padding: 0;
height: 100%;
}
body {
font-family: Helvetica Neue, Helvetica, Arial;
font-size: 14px;
color:#333;
}
.small { font-size: 12px; }
*, *:after, *:before {
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
}
h1 { font-size: 20px; margin: 0;}
h2 { font-size: 14px; }
pre {
font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
margin: 0;
padding: 0;
-moz-tab-size: 2;
-o-tab-size: 2;
tab-size: 2;
}
a { color:#0074D9; text-decoration:none; }
a:hover { text-decoration:underline; }
.strong { font-weight: bold; }
.space-top1 { padding: 10px 0 0 0; }
.pad2y { padding: 20px 0; }
.pad1y { padding: 10px 0; }
.pad2x { padding: 0 20px; }
.pad2 { padding: 20px; }
.pad1 { padding: 10px; }
.space-left2 { padding-left:55px; }
.space-right2 { padding-right:20px; }
.center { text-align:center; }
.clearfix { display:block; }
.clearfix:after {
content:'';
display:block;
height:0;
clear:both;
visibility:hidden;
}
.fl { float: left; }
@media only screen and (max-width:640px) {
.col3 { width:100%; max-width:100%; }
.hide-mobile { display:none!important; }
}

.quiet {
color: #7f7f7f;
color: rgba(0,0,0,0.5);
}
.quiet a { opacity: 0.7; }

.fraction {
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
font-size: 10px;
color: #555;
background: #E8E8E8;
padding: 4px 5px;
border-radius: 3px;
vertical-align: middle;
}

div.path a:link, div.path a:visited { color: #333; }
table.coverage {
border-collapse: collapse;
margin: 10px 0 0 0;
padding: 0;
}

table.coverage td {
margin: 0;
padding: 0;
vertical-align: top;
}
table.coverage td.line-count {
text-align: right;
padding: 0 5px 0 20px;
}
table.coverage td.line-coverage {
text-align: right;
padding-right: 10px;
min-width:20px;
}

table.coverage td span.cline-any {
display: inline-block;
padding: 0 5px;
width: 100%;
}
.missing-if-branch {
display: inline-block;
margin-right: 5px;
border-radius: 3px;
position: relative;
padding: 0 4px;
background: #333;
color: yellow;
}

.skip-if-branch {
display: none;
margin-right: 10px;
position: relative;
padding: 0 4px;
background: #ccc;
color: white;
}
.missing-if-branch .typ, .skip-if-branch .typ {
color: inherit !important;
}
.coverage-summary {
border-collapse: collapse;
width: 100%;
}
.coverage-summary tr { border-bottom: 1px solid #bbb; }
.keyline-all { border: 1px solid #ddd; }
.coverage-summary td, .coverage-summary th { padding: 10px; }
.coverage-summary tbody { border: 1px solid #bbb; }
.coverage-summary td { border-right: 1px solid #bbb; }
.coverage-summary td:last-child { border-right: none; }
.coverage-summary th {
text-align: left;
font-weight: normal;
white-space: nowrap;
}
.coverage-summary th.file { border-right: none !important; }
.coverage-summary th.pct { }
.coverage-summary th.pic,
.coverage-summary th.abs,
.coverage-summary td.pct,
.coverage-summary td.abs { text-align: right; }
.coverage-summary td.file { white-space: nowrap; }
.coverage-summary td.pic { min-width: 120px !important; }
.coverage-summary tfoot td { }

.coverage-summary .sorter {
height: 10px;
width: 7px;
display: inline-block;
margin-left: 0.5em;
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
}
.coverage-summary .sorted .sorter {
background-position: 0 -20px;
}
.coverage-summary .sorted-desc .sorter {
background-position: 0 -10px;
}
.status-line { height: 10px; }
/* dark red */
.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
.low .chart { border:1px solid #C21F39 }
/* medium red */
.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
/* light red */
.low, .cline-no { background:#FCE1E5 }
/* light green */
.high, .cline-yes { background:rgb(230,245,208) }
/* medium green */
.cstat-yes { background:rgb(161,215,106) }
/* dark green */
.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
.high .chart { border:1px solid rgb(77,146,33) }
/* dark yellow (gold) */
.medium .chart { border:1px solid #f9cd0b; }
.status-line.medium, .medium .cover-fill { background: #f9cd0b; }
/* light yellow */
.medium { background: #fff4c2; }
/* light gray */
span.cline-neutral { background: #eaeaea; }

.cbranch-no { background: yellow !important; color: #111; }

.cstat-skip { background: #ddd; color: #111; }
.fstat-skip { background: #ddd; color: #111 !important; }
.cbranch-skip { background: #ddd !important; color: #111; }


.cover-fill, .cover-empty {
display:inline-block;
height: 12px;
}
.chart {
line-height: 0;
}
.cover-empty {
background: white;
}
.cover-full {
border-right: none !important;
}
pre.prettyprint {
border: none !important;
padding: 0 !important;
margin: 0 !important;
}
.com { color: #999 !important; }
.ignore-none { color: #999; font-weight: normal; }

.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -48px;
}
.footer, .push {
height: 48px;
}
93 changes: 93 additions & 0 deletions coverage/lcov-report/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for All files</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
/
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">97.85% </span>
<span class="quiet">Statements</span>
<span class='fraction'>91/93</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">88.46% </span>
<span class="quiet">Branches</span>
<span class='fraction'>23/26</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">97.7% </span>
<span class="quiet">Lines</span>
<span class='fraction'>85/87</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="lib/"><a href="lib/index.html">lib/</a></td>
<td data-value="97.85" class="pic high"><div class="chart"><div class="cover-fill" style="width: 97%;"></div><div class="cover-empty" style="width:3%;"></div></div></td>
<td data-value="97.85" class="pct high">97.85%</td>
<td data-value="93" class="abs high">91/93</td>
<td data-value="88.46" class="pct high">88.46%</td>
<td data-value="26" class="abs high">23/26</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="97.7" class="pct high">97.7%</td>
<td data-value="87" class="abs high">85/87</td>
</tr>

</tbody>
</table>
</div><div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Mar 28 2018 23:44:58 GMT-0400 (EDT)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="sorter.js"></script>
</body>
</html>
Loading

0 comments on commit 2b7296c

Please sign in to comment.