virool-pivot
Version:
A web-based exploratory visualization UI for Druid.io
414 lines (413 loc) • 13 kB
HTML
<html lang="en">
<head>
<title>Code coverage report for models/measure/measure.js</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>
<a href="../../index.html">all files</a> / <a href="index.html">models/measure/</a> measure.js
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">88.24% </span>
<span class="quiet">Statements</span>
<span class='fraction'>60/68</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">72.41% </span>
<span class="quiet">Branches</span>
<span class='fraction'>21/29</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">84.62% </span>
<span class="quiet">Functions</span>
<span class='fraction'>11/13</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">88.24% </span>
<span class="quiet">Lines</span>
<span class='fraction'>60/68</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-yes">50×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">33×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">7×</span>
<span class="cline-any cline-yes">7×</span>
<span class="cline-any cline-yes">7×</span>
<span class="cline-any cline-yes">7×</span>
<span class="cline-any cline-yes">3×</span>
<span class="cline-any cline-yes">2×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">3×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">42×</span>
<span class="cline-any cline-yes">42×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">2×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">42×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">42×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-yes">42×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">2×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">2×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">28×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">"use strict";
var immutable_class_1 = require('immutable-class');
var numeral = require('numeral');
var plywood_1 = require('plywood');
var general_1 = require('../../utils/general/general');
function formatFnFactory(format) {
return <span class="fstat-no" title="function not covered" >function (n) {</span>
<span class="cstat-no" title="statement not covered" > if (isNaN(n) || !isFinite(n))</span>
<span class="cstat-no" title="statement not covered" > return '-';</span>
<span class="cstat-no" title="statement not covered" > return numeral(n).format(format);</span>
};
}
var check;
var Measure = (function () {
function Measure(parameters) {
var name = parameters.name;
general_1.verifyUrlSafeName(name);
this.name = name;
this.title = parameters.title || general_1.makeTitle(name);
var expression = parameters.expression;
<span class="missing-if-branch" title="if path not taken" >I</span>if (!expression)
<span class="cstat-no" title="statement not covered" > throw new Error('measure must have expression');</span>
this.expression = expression;
var format = parameters.format || Measure.DEFAULT_FORMAT;
<span class="missing-if-branch" title="if path not taken" >I</span>if (format[0] === '(')
<span class="cstat-no" title="statement not covered" > throw new Error('can not have format that uses ( )');</span>
this.format = format;
this.formatFn = formatFnFactory(format);
}
Measure.isMeasure = function (candidate) {
return immutable_class_1.isInstanceOf(candidate, Measure);
};
Measure.measuresFromAttributeInfo = function (attribute) {
var name = attribute.name;
var $main = plywood_1.$('main');
var ref = plywood_1.$(name);
if (attribute.special) {
if (attribute.special === 'unique') {
return [
new Measure({
name: name,
expression: $main.countDistinct(ref)
})
];
}
else {
return [];
}
}
var expression = $main.sum(ref);
var makerAction = attribute.makerAction;
if (makerAction) {
switch (makerAction.action) {
case 'min':
expression = $main.min(ref);
break;
case 'max':
expression = $main.max(ref);
break;
}
}
return [new Measure({ name: name, expression: expression })];
};
Measure.fromJS = function (parameters) {
var name = parameters.name;
return new Measure({
name: name,
title: parameters.title,
expression: parameters.expression ? plywood_1.Expression.fromJSLoose(parameters.expression) : <span class="branch-1 cbranch-no" title="branch not covered" >plywood_1.$('main').sum(plywood_1.$(name)),</span>
format: parameters.format
});
};
Measure.prototype.valueOf = function () {
return {
name: this.name,
title: this.title,
expression: this.expression,
format: this.format
};
};
Measure.prototype.toJS = function () {
var js = {
name: this.name,
title: this.title,
expression: this.expression.toJS()
};
<span class="missing-if-branch" title="if path not taken" >I</span>if (this.format !== Measure.DEFAULT_FORMAT)
<span class="cstat-no" title="statement not covered" > js.format = this.format;</span>
return js;
};
Measure.prototype.toJSON = function () {
return this.toJS();
};
Measure.prototype.toString = function () {
return "[Measure: " + this.name + "]";
};
Measure.prototype.equals = function (other) {
return Measure.isMeasure(other) &&
this.name === other.name &&
this.title === other.title &&
this.expression.equals(other.expression) &&
this.format === other.format;
};
Measure.prototype.toApplyAction = <span class="fstat-no" title="function not covered" >function () {</span>
<span class="cstat-no" title="statement not covered" > var _a = this, name = _a.name, expression = _a.expression;</span>
<span class="cstat-no" title="statement not covered" > return new plywood_1.ApplyAction({</span>
name: name,
expression: expression
});
};
Measure.DEFAULT_FORMAT = '0,0.0 a';
Measure.INTEGER_FORMAT = '0,0 a';
return Measure;
}());
exports.Measure = Measure;
check = Measure;
</pre></td></tr>
</table></pre>
<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 Tue Mar 08 2016 17:01:59 GMT-0800 (PST)
</div>
</div>
<script src="../../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../../sorter.js"></script>
</body>
</html>