Skip to content

Commit 4ef2555

Browse files
committed
add token penalty sparkline
1 parent c9213b3 commit 4ef2555

File tree

4 files changed

+61
-0
lines changed

4 files changed

+61
-0
lines changed

packages/cursorless-engine/src/core/hatStats.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ suite("hatStats", () => {
122122
(_, index) => index % Math.floor(allTokens.length / 16) === 0,
123123
);
124124

125+
let tokenSpark: string = "";
126+
125127
someTokens.forEach((token, index) => {
126128
editor.primarySelection = new Selection(
127129
token.token.range.start,
@@ -139,6 +141,7 @@ suite("hatStats", () => {
139141

140142
if (index === 0) {
141143
const golden = goldenHatFile(contents, allTokens, tokenHat);
144+
tokenSpark = makeTokenSpark(allTokens, tokenHat);
142145
const goldenPath = filepath + ".golden";
143146
if (shouldUpdateFixtures()) {
144147
fs.writeFileSync(goldenPath, golden);
@@ -166,6 +169,11 @@ suite("hatStats", () => {
166169

167170
let s = "";
168171
s += `nTokens: ${allTokens.length}\n\n`;
172+
s += `tokenSpark:\n`;
173+
for (let i = 0; i < tokenSpark.length; i += 60) {
174+
s += "\t" + tokenSpark.slice(i, i + 60) + "\n";
175+
}
176+
s += "\n";
169177
s += describeDistribution("nHats", nHats) + "\n";
170178
s += describeDistribution("nPenalty0", nPenalty0) + "\n";
171179
s += describeDistribution("nPenalty1", nPenalty1) + "\n";
@@ -246,6 +254,27 @@ function sparkline(pcts: number[]) {
246254
);
247255
}
248256

257+
function makeTokenSpark(
258+
allTokens: RankedToken[],
259+
tokenHats: TokenHat[],
260+
): string {
261+
const bars = ["▁", "▃", "▅", "█"];
262+
const penalties = allTokens.map((token) => {
263+
const hat = tokenHats.find((hat) =>
264+
hat.token.range.isEqual(token.token.range),
265+
) as TokenHat;
266+
if (hat === undefined) {
267+
return 3;
268+
}
269+
const hatStyle = hat.hatStyle;
270+
return penaltyForHatStyle(hatStyle);
271+
});
272+
const chars = penalties.map((penalty) => {
273+
return bars[penalty];
274+
});
275+
return chars.join("");
276+
}
277+
249278
function goldenHatFile(
250279
contents: string,
251280
allTokens: RankedToken[],

packages/cursorless-engine/src/test/fixtures/hat-stats/intern.go.stats

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
nTokens: 228
22

3+
tokenSpark:
4+
▁▁▁▁▁▁▃▁▃▁▁▁▃▃▁▁▁▃▁▁▃▁▁▃▁▁▃▃▃▁▁▃▃▁▃▁▃▃▃▃▃▁▃▃▁▃▃▃▃▃▃▃▁▃▃▃▁▃▁▃
5+
▁▁▃▃▁▃▃▃▃▃▁▃▁▃▃▃▁▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
6+
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▅▃▃▃▃▃▃▃▅▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▅▃▃▃▃▃
7+
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▅▃▃▃▃▃▃▃▅▃▃▃▃▃▃▃▃▅▃▃▅▃▅▃▅▃▅▃▅▃
8+
39
nHats:
410
mean: 100%
511
std: 0%

packages/cursorless-engine/src/test/fixtures/hat-stats/mending_wall.txt.stats

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
nTokens: 479
22

3+
tokenSpark:
4+
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▃▁▃▃▁▁▁▁▁▃▃▁▃▃▃▃▃▃▃▃▃▃▁▃▁▁▃▃▁▃▃▁▃▃▃▃▃▃▃▁▃
5+
▃▃▃▃▃▃▃▃▁▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
6+
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
7+
▃▃▅▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▁▃▃▃▃▃▃▃▃▃▃▅▃▁▃▃▃▃▃▃▃▃▃▃▅▃▃▃▃▅▃▃▃▃▃▃▃▃▃▃▃
8+
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▅▃▃▃▅▃▃▃▃▃▃▃▃▃▃▃▃▃▅▃▃▃▃▃▅▃▃▅▃▃▅▃
9+
▃▃▅▃▃▃▅▃▃▃▃▁▃▃▅▅▃▅▅▃▃▃▅▅▅▃▃▃▃▅▃▅▅▅▃▅▃▅▃▅▅▅▃▃▅▃▃▃▅▅▃▅▅▃▅▃▃▃▃▅
10+
▅▅▅▃▅▃▅▅▅▅▅▅▅▅▃▅▃▃▃▃▃▅▅▅▃▅▃▅▅▃▁▅▅▅▅▅▅▅▅▅▃▃▅▅▅▅▅▃▅▅▅▃▃▅▅▅▅▅▅▃
11+
▅▅▃▅▃▅▅▅▅▅▃▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅
12+
313
nHats:
414
mean: 100%
515
std: 0%

packages/cursorless-engine/src/test/fixtures/hat-stats/the_bells.txt.stats

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
nTokens: 782
22

3+
tokenSpark:
4+
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▃▁▃▁▁▃▁▁▁▃▃▃▃▃▃▁▁▃▃▃▃▃▃▁▃▃▁▃▃▃▃▃▃▃▃▃▃▃▃
5+
▃▃▃▃▃▁▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▅▃▃▃▃▁▃▃▃▃▃▃▃▃▃▃▃▃▃▃
6+
▅▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▁▃▃▅▃▃▃▃▅▃▃▁▃▃▃▃▃▃▃▃▃▅▃▃▃▃▃▃▃▃▅
7+
▃▃▃▃▃▅▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▅▃▃▃▃▃▃▃▃▃▃▅▃▅▃▅▃▅▃▅▃▅▃▅▃▅▃▅▃
8+
▅▃▃▃▅▃▃▅▃▃▅▃▃▃▃▃▅▃▃▃▃▁▃▃▃▅▃▃▅▃▅▃▃▃▃▃▅▃▃▃▃▃▃▃▃▃▃▅▅▃▃▅▃▅▃▃▃▃▅▃
9+
▅▃▅▃▅▃▅▃▃▅▅▃▅▅▃▅▃▅▃▁▅▅▃▃▃▃▅▃▃▅▃▅▃▅▅▅▃▃▅▃▅▃▃▅▃▅▅▅▅▃▅▃▅▅▅▅▃▃▃▃
10+
▃▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▃▅▅▅▃▅▅▃▅▅▅▅▅▅▅▅▃▅▅▃▅▅▃▅▅▅▅▅▅▃▃▅▅▅▅▅▅▅▃█▅▅▅
11+
▅▅▅▃▅▅▅▃▅█▅▅▃█▅▅▅▃▅▅▅▃▅▅█▅▅▃▅▅▅▅▅▅▅▅▅▃▅▅▅▃▅▅▅█▅█▅█▅█▅█▅█▅▃▅▅
12+
▃▅▅▃▅▅▅▅▃▃▅▅▅▅▅▅▃▅▅▅▅▅▅▅▅▃▅▅▃▅▅▅▃▅▅▅█▅▅▃▅▅▅▅▃▅▅▅▅▅▅▃▅▅▅▅▅▅▅▅
13+
▅▅▅▅▃▅▅▃▃▅█▅▃▃▅▅▅▃▅▅▅█▅▅█▅▅▅█▅█▅█▅▅▅▅█▅▅▅▅▅▅▅▅▅▅▅▅▃▅▅▅▅▅▅▅▅▅
14+
▅▅▅▅▅▅▅▅▁▅▅▃▅▅▅▅▃▅▅▅█▅█▅█▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅█▅▅▅▃▃▅█▅█▅█▅
15+
▅▅▅▅▅█▅▅▅▅▅▅▅▅▅▅▃▃▅█▅█▅█▅▅▅▅▅▅█▅▅▅▅▅▅▅▅▅▅█▅█▅▅▅▅▅▅▅▅▃▃▅█▅█▅█
16+
▅▅▃█▃█▃█▅▅▅▅▅█▅▅▅▅▅▅▅▅▅▅█▅█▅▅▅▅▅▅▅▅█▅▅▅█▅█▅█▅▅▅█▅█▅▅▅▅▅▅▅▅▅▅
17+
▅▃
18+
319
nHats:
420
mean: 94%
521
std: 0%

0 commit comments

Comments
 (0)