Skip to content

Commit 91cfd01

Browse files
Copilotjackfirth
andcommitted
Add comprehensive tests for github.rkt module
Co-authored-by: jackfirth <[email protected]>
1 parent 1f866db commit 91cfd01

File tree

152 files changed

+441
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+441
-0
lines changed

coverage/assets/app.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
window.onload = function() {
2+
3+
var extractDataFromRow = function(tr, className) {
4+
var td = tr.querySelector('td.' + className);
5+
var a = td.querySelector('a');
6+
if (a) {
7+
return a.innerHTML;
8+
} else {
9+
return td.innerHTML;
10+
}
11+
};
12+
13+
var removeRows = function(table, rows) {
14+
for (var i = 0; i < rows.length; i++) {
15+
table.removeChild(rows[i]);
16+
}
17+
};
18+
19+
var sortTable = function(className, compare) {
20+
var table = document.querySelector('table.file-list tbody');
21+
var rows = Array.prototype.slice.call(table.querySelectorAll('tr'), 0);
22+
removeRows(table, rows);
23+
24+
rows.sort(function(a, b) {
25+
var aActual = extractDataFromRow(a, className);
26+
var bActual = extractDataFromRow(b, className);
27+
return compare(aActual, bActual);
28+
});
29+
for (var i = 0; i < rows.length; i++) {
30+
rows[i].className = 'file-info' + (((i % 2) == 0) ? ' stripe' : '');
31+
table.appendChild(rows[i]);
32+
}
33+
};
34+
35+
var oppositeArrowDirection = function(dir) {
36+
if (dir === 'up') {
37+
return 'down';
38+
} else {
39+
return 'up';
40+
}
41+
};
42+
43+
var createSorter = function(className, arrowDirection, compare, negativeCompare) {
44+
var sortClass = 'th.' + className + ' div.sort-icon-' + arrowDirection;
45+
var element = document.querySelector(sortClass);
46+
var clickHandler = function() {
47+
var oppArrowDirection = oppositeArrowDirection(arrowDirection);
48+
sortTable(className, compare);
49+
element.removeEventListener('click', clickHandler);
50+
element.className = 'sort-icon-' + oppArrowDirection;
51+
createSorter(className, oppArrowDirection, negativeCompare, compare);
52+
};
53+
element.addEventListener('click', clickHandler);
54+
};
55+
56+
var stringCompareAsc = function(a, b) { return a.localeCompare(b); };
57+
var stringCompareDesc = function(a, b) { return b.localeCompare(a); };
58+
var floatCompareAsc = function(a, b) { return parseFloat(a) - parseFloat(b); };
59+
var floatCompareDesc = function(a, b) { return parseFloat(b) - parseFloat(a); };
60+
61+
createSorter('file-name', 'up', stringCompareDesc, stringCompareAsc);
62+
createSorter('coverage-percentage', 'up', floatCompareAsc, floatCompareDesc);
63+
createSorter('covered-expressions', 'up', floatCompareAsc, floatCompareDesc);
64+
createSorter('uncovered-expressions', 'up', floatCompareAsc, floatCompareDesc);
65+
createSorter('total-expressions', 'up', floatCompareAsc, floatCompareDesc);
66+
sortTable('coverage-percentage', floatCompareAsc);
67+
};

coverage/assets/main.css

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
.code {
2+
display: table;
3+
font-family: "Lucida Console", Monaco, monospace;
4+
}
5+
6+
.uncovered {
7+
color:red;
8+
}
9+
10+
.covered {
11+
color:green;
12+
}
13+
14+
.total-coverage {
15+
font-size: 2em;
16+
}
17+
18+
.irrelevant {}
19+
20+
table.file-list {
21+
width: 100%;
22+
border-collapse: collapse;
23+
}
24+
25+
td, th {
26+
text-align: center;
27+
padding: 10px 10px;
28+
border-bottom: 1px solid;
29+
font-size: 1.2em;
30+
}
31+
32+
td.file-name, th.file-name {
33+
text-align: left;
34+
}
35+
36+
td a, td a:visited {
37+
text-decoration: none;
38+
color: #07A;
39+
}
40+
41+
tr.stripe, :target {
42+
background-color: #F5F5EC;
43+
}
44+
45+
div.report-container {
46+
width: 60%;
47+
margin: 0 20%;
48+
}
49+
50+
.file-info div {
51+
display: inline-block;
52+
margin-bottom: 1em;
53+
padding-right: 2em;
54+
}
55+
56+
div.line-numbers {
57+
display: table-cell;
58+
padding-right: 1em;
59+
text-align: right;
60+
}
61+
62+
.line-numbers a {
63+
color: black;
64+
text-decoration: none;
65+
}
66+
67+
.line-numbers a:hover {
68+
color: blue;
69+
text-decoration: underline;
70+
}
71+
72+
div.file-lines {
73+
display: table-cell;
74+
}
75+
76+
div.lines-wrapper {
77+
display: table-row;
78+
}
79+
80+
/* Sorting Triangles */
81+
82+
.sort-icon-up {
83+
cursor: pointer;
84+
display: inline-block;
85+
margin-left: 0.5em;
86+
margin-bottom: 0.2em;
87+
88+
width: 0px;
89+
height: 0px;
90+
border-left: 0.3em solid transparent;
91+
border-right: 0.3em solid transparent;
92+
border-bottom: 0.3em solid black;
93+
}
94+
95+
.sort-icon-down {
96+
cursor: pointer;
97+
display: inline-block;
98+
margin-left: 0.5em;
99+
margin-bottom: 0.2em;
100+
101+
width: 0px;
102+
height: 0px;
103+
border-left: 0.3em solid transparent;
104+
border-right: 0.3em solid transparent;
105+
border-top: 0.3em solid black;
106+
}

coverage/base.html

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

coverage/cli.html

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

coverage/default-recommendations.html

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<html><head><meta charset="utf-8"/><link rel="stylesheet" type="text/css" href="../../assets/main.css"/></head><body><p>expr: 100%<br/></p><div class="code"><div class="lines-wrapper"><div class="line-numbers"><div><a href="#1">1</a></div><div><a href="#2">2</a></div><div><a href="#3">3</a></div><div><a href="#4">4</a></div><div><a href="#5">5</a></div><div><a href="#6">6</a></div><div><a href="#7">7</a></div><div><a href="#8">8</a></div><div><a href="#9">9</a></div><div><a href="#10">10</a></div><div><a href="#11">11</a></div><div><a href="#12">12</a></div><div><a href="#13">13</a></div><div><a href="#14">14</a></div><div><a href="#15">15</a></div><div><a href="#16">16</a></div><div><a href="#17">17</a></div><div><a href="#18">18</a></div><div><a href="#19">19</a></div><div><a href="#20">20</a></div><div><a href="#21">21</a></div><div><a href="#22">22</a></div><div><a href="#23">23</a></div><div><a href="#24">24</a></div><div><a href="#25">25</a></div><div><a href="#26">26</a></div><div><a href="#27">27</a></div></div><div class="file-lines"><div class="line" id="1"><span class="irrelevant">#lang</span>&nbsp;<span class="irrelevant">resyntax/test</span></div><br id="2"/><br id="3"/><div class="line" id="4"><span class="covered">require:</span>&nbsp;<span class="covered">resyntax/default-recommendations/analyzers/function-expression-analyzer</span>&nbsp;<span class="covered">function-expression-analyzer</span></div><div class="line" id="5"><span class="covered">header:</span>&nbsp;<span class="covered">-</span>&nbsp;<span class="covered">#lang</span>&nbsp;<span class="covered">racket/base</span></div><br id="6"/><br id="7"/><div class="line" id="8"><span class="covered">analysis-test:</span>&nbsp;<span class="covered">"applied</span>&nbsp;<span class="covered">functions</span>&nbsp;<span class="covered">should</span>&nbsp;<span class="covered">be</span>&nbsp;<span class="covered">annotated"</span></div><div class="line" id="9"><span class="covered">--------------------</span></div><div class="line" id="10"><span class="covered">(define</span>&nbsp;<span class="covered">(f)</span></div><div class="line" id="11">&nbsp;&nbsp;<span class="covered">(list</span>&nbsp;<span class="covered">1</span>&nbsp;<span class="covered">2</span>&nbsp;<span class="covered">3))</span></div><div class="line" id="12"><span class="covered">--------------------</span></div><div class="line" id="13"><span class="covered">@within</span>&nbsp;<span class="covered">-</span>&nbsp;<span class="covered">(list</span>&nbsp;<span class="covered">1</span>&nbsp;<span class="covered">2</span>&nbsp;<span class="covered">3)</span></div><div class="line" id="14"><span class="covered">@inspect</span>&nbsp;<span class="covered">-</span>&nbsp;<span class="covered">list</span></div><div class="line" id="15"><span class="covered">@property</span>&nbsp;<span class="covered">application-subexpression-kind</span></div><div class="line" id="16"><span class="covered">@assert</span>&nbsp;<span class="covered">function</span></div><br id="17"/><br id="18"/><div class="line" id="19"><span class="covered">analysis-test:</span>&nbsp;<span class="covered">"applied</span>&nbsp;<span class="covered">function</span>&nbsp;<span class="covered">arguments</span>&nbsp;<span class="covered">should</span>&nbsp;<span class="covered">be</span>&nbsp;<span class="covered">annotated"</span></div><div class="line" id="20"><span class="covered">--------------------</span></div><div class="line" id="21"><span class="covered">(define</span>&nbsp;<span class="covered">(f</span>&nbsp;<span class="covered">x</span>&nbsp;<span class="covered">y</span>&nbsp;<span class="covered">z)</span></div><div class="line" id="22">&nbsp;&nbsp;<span class="covered">(list</span>&nbsp;<span class="covered">x</span>&nbsp;<span class="covered">y</span>&nbsp;<span class="covered">z))</span></div><div class="line" id="23"><span class="covered">--------------------</span></div><div class="line" id="24"><span class="covered">@within</span>&nbsp;<span class="covered">-</span>&nbsp;<span class="covered">(list</span>&nbsp;<span class="covered">x</span>&nbsp;<span class="covered">y</span>&nbsp;<span class="covered">z)</span></div><div class="line" id="25"><span class="covered">@inspect</span>&nbsp;<span class="covered">-</span>&nbsp;<span class="covered">y</span></div><div class="line" id="26"><span class="covered">@property</span>&nbsp;<span class="covered">application-subexpression-kind</span></div><div class="line" id="27"><span class="covered">@assert</span>&nbsp;<span class="covered">argument</span></div></div></div></div></body></html>

0 commit comments

Comments
 (0)