-
Notifications
You must be signed in to change notification settings - Fork 65
/
CodeCoverage_summary.html
80 lines (80 loc) · 6.83 KB
/
CodeCoverage_summary.html
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
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Delphi CodeCoverage Coverage Report</title>
<style type="text/css">
body {max-width: max-content;margin: auto;}
table {border-spacing:0;}
table, td, th {border: 0;}
td, th {background: white; margin: 0; padding: .5em 1em}
table small { color: #777; }
p, h1, h2, h3, th {font-family: verdana,arial,sans-serif; font-size: 10pt;}
td {font-family: consolas,courier,monospace; font-size: 10pt;}
thead, th {background: #808C98; color: white; }
table th small { color: #ddd; }
th[idx] {cursor: pointer; user-select: none;}
table.o tr td:nth-child(1) {font-weight: bold;}
table.o tr td:nth-child(2) {text-align: right;}
table.o tr td {border-width: 1px;}
table.s {width: calc(min(80em, 95vw));}
table.s tr td {padding: .1em .5em; white-space: pre-wrap;}
table.s tr td:first-child {text-align: right; font-weight: bold; vertical-align: top}
table.s tr.notcovered td {background: #ddf;}
table.s tr.nocodegen td {background: #ffe;}
table.s tr.covered td {background: #cfc;}
table.s tr.covered td:first-child {color: green;}
table.s {border-width: 1px 0 1px 1px;}
table.sum td { background-position: 50%; background-repeat: no-repeat; background-size: 90% 70%; }
table.sum tr:nth-child(odd) td { background-color: #f4f4f4}
table.sum tr:hover td, tr:hover td a { filter: invert(10%) }
table.sum tr th {text-align:left; border: .5px solid #5d4e4c; height: 1em}
table.sum tr td {text-align:right;}
table.sum tr td:first-child {text-align:left;}
table.sum thead th { position: sticky; top:0; }
table.sum thead tr + tr th { position: sticky; top: calc(2.5em - 2px); }
table.sum tfoot th { position: sticky; bottom:0; }
table.sum tfoot th+th {text-align: right;}
table.sum a, table.sum a:visited {color: #5d4e4c; text-decoration: none;}
#nav {position: fixed;overflow: visible;left: min(calc(50% + 41em), calc(100% - 6em));padding: .1em .5em .1em .2em;background: white;box-shadow: 1px 1px 3px #888;}
#nav div {opacity: .3; user-select: none; pointer-events: none;}
#nav div.active {opacity: 1; cursor: pointer; pointer-events: initial;}
#nav div.active:hover {color: #00A;}
</style>
</head>
<body>
<h1>Summary Coverage Report</h1>
<p>Generated at 30.11.2022 22:06:19 by <a href="https://github.com/DelphiCodeCoverage/DelphiCodeCoverage" target="_blank" title="DelphiCodeCoverage on GitHub">DelphiCodeCoverage</a> - an open source tool for Delphi Code Coverage.</p>
<p>Aggregate statistics for all modules</p><table class="sum"><thead><tr><th rowspan=2 idx=0>Unit Name<th colspan=3 idx=3>Number of lines<th rowspan=2 idx=4>Percent(s) covered<tr><th idx=1>Covered<th idx=2>Not Covered<th idx=3>Which generated code
<tbody>
<tr><td><a href="DECBaseClass(DECBaseClass.pas).html">DECBaseClass</a><td>62<td>0<td>62<td style="background-image: linear-gradient(90deg, #9fe098 100%, transparent 100%)">100<small>.0</small> %
<tr><td><a href="DECCipherBase(DECCipherBase.pas).html">DECCipherBase</a><td>133<td>44<td>177<td style="background-image: linear-gradient(90deg, #9fe098 75%, transparent 75%)">75<small>.1</small> %
<tr><td><a href="DECCipherFormats(DECCipherFormats.pas).html">DECCipherFormats</a><td>151<td>20<td>171<td style="background-image: linear-gradient(90deg, #9fe098 88%, transparent 88%)">88<small>.3</small> %
<tr><td><a href="DECCipherModes(DECCipherModes.pas).html">DECCipherModes</a><td>382<td>75<td>457<td style="background-image: linear-gradient(90deg, #9fe098 83%, transparent 83%)">83<small>.6</small> %
<tr><td><a href="DECCipherModesGCM(DECCipherModesGCM.pas).html">DECCipherModesGCM</a><td>123<td>3<td>126<td style="background-image: linear-gradient(90deg, #9fe098 97%, transparent 97%)">97<small>.6</small> %
<tr><td><a href="DECCiphers(DECCiphers.pas).html">DECCiphers</a><td>3147<td>110<td>3257<td style="background-image: linear-gradient(90deg, #9fe098 96%, transparent 96%)">96<small>.6</small> %
<tr><td><a href="DECCRC(DECCRC.pas).html">DECCRC</a><td>150<td>5<td>155<td style="background-image: linear-gradient(90deg, #9fe098 96%, transparent 96%)">96<small>.8</small> %
<tr><td><a href="DECFormat(DECFormat.pas).html">DECFormat</a><td>727<td>13<td>740<td style="background-image: linear-gradient(90deg, #9fe098 98%, transparent 98%)">98<small>.2</small> %
<tr><td><a href="DECFormatBase(DECFormatBase.pas).html">DECFormatBase</a><td>97<td>17<td>114<td style="background-image: linear-gradient(90deg, #9fe098 85%, transparent 85%)">85<small>.1</small> %
<tr><td><a href="DECHash(DECHash.pas).html">DECHash</a><td>2619<td>20<td>2639<td style="background-image: linear-gradient(90deg, #9fe098 99%, transparent 99%)">99<small>.2</small> %
<tr><td><a href="DECHashAuthentication(DECHashAuthentication.pas).html">DECHashAuthentication</a><td>304<td>29<td>333<td style="background-image: linear-gradient(90deg, #9fe098 91%, transparent 91%)">91<small>.3</small> %
<tr><td><a href="DECHashBase(DECHashBase.pas).html">DECHashBase</a><td>152<td>19<td>171<td style="background-image: linear-gradient(90deg, #9fe098 88%, transparent 88%)">88<small>.9</small> %
<tr><td><a href="DECHashBitBase(DECHashBitBase.pas).html">DECHashBitBase</a><td>8<td>0<td>8<td style="background-image: linear-gradient(90deg, #9fe098 100%, transparent 100%)">100<small>.0</small> %
<tr><td><a href="DECRandom(DECRandom.pas).html">DECRandom</a><td>91<td>3<td>94<td style="background-image: linear-gradient(90deg, #9fe098 96%, transparent 96%)">96<small>.8</small> %
<tr><td><a href="DECTypes(DECTypes.pas).html">DECTypes</a><td>3<td>0<td>3<td style="background-image: linear-gradient(90deg, #9fe098 100%, transparent 100%)">100<small>.0</small> %
<tr><td><a href="DECUtil(DECUtil.pas).html">DECUtil</a><td>116<td>0<td>116<td style="background-image: linear-gradient(90deg, #9fe098 100%, transparent 100%)">100<small>.0</small> %
<tr><td><a href="DECUtilRawByteStringHelper(DECUtilRawByteStringHelper.pas).html">DECUtilRawByteStringHelper</a><td>34<td>4<td>38<td style="background-image: linear-gradient(90deg, #9fe098 89%, transparent 89%)">89<small>.5</small> %
<tfoot><tr><th>Aggregated for all units<th>8299<th>362<th>8661<th>95<small>.8</small> %
</table>
<script>
const getCellValue = (tr, idx) => tr.children[idx].innerText || tr.children[idx].textContent;
const comparer = (idx, asc) => (a, b) => ((v1, v2) =>!isNaN(parseFloat(v1 || "-")) && !isNaN(parseFloat(v2 || "-")) ? parseFloat(v1)-parseFloat(v2) : v1.toString().localeCompare(v2))(getCellValue(asc ? a : b, idx), getCellValue(asc ? b : a, idx));
document.querySelectorAll("thead th[idx]").forEach(th => th.addEventListener("click", (() => {
const table = th.closest("table").querySelector("tbody");
Array.from(table.querySelectorAll("tr"))
.sort(comparer(+th.getAttribute("idx"), this.asc = !this.asc))
.forEach(tr => table.appendChild(tr) );
})));
</script>
</body>
</html>