diff --git a/stats/src/components/overview/TrackingSnapshot.test.tsx b/stats/src/components/overview/TrackingSnapshot.test.tsx
index 86be6b7..ffaff6b 100644
--- a/stats/src/components/overview/TrackingSnapshot.test.tsx
+++ b/stats/src/components/overview/TrackingSnapshot.test.tsx
@@ -18,8 +18,8 @@ const summary: OverviewSummary = {
activeDays: 12,
totalSessions: 15,
lookupRate: {
- shortValue: '2.3 / 100 tokens',
- longValue: '2.3 lookups per 100 tokens',
+ shortValue: '2.3 / 100 words',
+ longValue: '2.3 lookups per 100 words',
},
todayTokens: 0,
newWordsToday: 0,
@@ -33,8 +33,8 @@ test('TrackingSnapshot renders Yomitan lookup rate copy on the homepage card', (
);
assert.match(markup, /Lookup Rate/);
- assert.match(markup, /2\.3 \/ 100 tokens/);
- assert.match(markup, /Lifetime Yomitan lookups normalized by total tokens seen/);
+ assert.match(markup, /2\.3 \/ 100 words/);
+ assert.match(markup, /Lifetime Yomitan lookups normalized by total words seen/);
});
test('TrackingSnapshot labels new words as unique headwords', () => {
diff --git a/stats/src/components/trends/TrendsTab.tsx b/stats/src/components/trends/TrendsTab.tsx
index f12dc19..0010bd5 100644
--- a/stats/src/components/trends/TrendsTab.tsx
+++ b/stats/src/components/trends/TrendsTab.tsx
@@ -183,7 +183,7 @@ export function TrendsTab() {
color={cardsMinedColor}
type="bar"
/>
-
+
Period Trends
@@ -194,7 +194,7 @@ export function TrendsTab() {
type="line"
/>
-
+
-
+
-
+
Patterns
assert.equal(summary.activeDays, 2);
assert.equal(summary.totalSessions, 15);
assert.deepEqual(summary.lookupRate, {
- shortValue: '2.3 / 100 tokens',
- longValue: '2.3 lookups per 100 tokens',
+ shortValue: '2.3 / 100 words',
+ longValue: '2.3 lookups per 100 words',
});
});
diff --git a/stats/src/lib/media-session-list.test.tsx b/stats/src/lib/media-session-list.test.tsx
index 9d95326..043bd67 100644
--- a/stats/src/lib/media-session-list.test.tsx
+++ b/stats/src/lib/media-session-list.test.tsx
@@ -35,6 +35,6 @@ test('MediaSessionList renders expandable session rows with delete affordance',
assert.match(markup, /Session History/);
assert.match(markup, /aria-expanded="true"/);
assert.match(markup, /Delete session Episode 7/);
- assert.match(markup, /tokens/);
- assert.match(markup, /No token data for this session/);
+ assert.match(markup, /words/);
+ assert.match(markup, /No word data for this session/);
});
diff --git a/stats/src/lib/session-detail.test.tsx b/stats/src/lib/session-detail.test.tsx
index 5afaa2a..e5d63aa 100644
--- a/stats/src/lib/session-detail.test.tsx
+++ b/stats/src/lib/session-detail.test.tsx
@@ -30,7 +30,7 @@ test('SessionDetail omits the misleading new words metric', () => {
/>,
);
- assert.match(markup, /No token data/);
+ assert.match(markup, /No word data/);
assert.doesNotMatch(markup, /New words/);
});
diff --git a/stats/src/lib/yomitan-lookup.test.tsx b/stats/src/lib/yomitan-lookup.test.tsx
index 0fda45d..4c1e31d 100644
--- a/stats/src/lib/yomitan-lookup.test.tsx
+++ b/stats/src/lib/yomitan-lookup.test.tsx
@@ -8,10 +8,10 @@ import { SessionRow } from '../components/sessions/SessionRow';
import { EventType, type SessionEvent } from '../types/stats';
import { buildLookupRateDisplay, getYomitanLookupEvents } from './yomitan-lookup';
-test('buildLookupRateDisplay formats lookups per 100 tokens in short and long forms', () => {
+test('buildLookupRateDisplay formats lookups per 100 words in short and long forms', () => {
assert.deepEqual(buildLookupRateDisplay(23, 1000), {
- shortValue: '2.3 / 100 tokens',
- longValue: '2.3 lookups per 100 tokens',
+ shortValue: '2.3 / 100 words',
+ longValue: '2.3 lookups per 100 words',
});
assert.equal(buildLookupRateDisplay(0, 0), null);
});
@@ -49,11 +49,11 @@ test('MediaHeader renders Yomitan lookup count and lookup rate copy', () => {
);
assert.match(markup, /23/);
- assert.match(markup, /2\.3 \/ 100 tokens/);
- assert.match(markup, /2\.3 lookups per 100 tokens/);
+ assert.match(markup, /2\.3 \/ 100 words/);
+ assert.match(markup, /2\.3 lookups per 100 words/);
});
-test('MediaHeader distinguishes token occurrences from known unique words', () => {
+test('MediaHeader distinguishes word occurrences from known unique words', () => {
const markup = renderToStaticMarkup(
,
);
- assert.match(markup, /token occurrences/);
+ assert.match(markup, /word occurrences/);
assert.match(markup, /known unique words \(50%\)/);
assert.match(markup, /17 \/ 34/);
});
@@ -105,7 +105,7 @@ test('EpisodeList renders per-episode Yomitan lookup rate', () => {
);
assert.match(markup, /Lookup Rate/);
- assert.match(markup, /2\.0 \/ 100 tokens/);
+ assert.match(markup, /2\.0 \/ 100 words/);
assert.match(markup, /6%/);
assert.doesNotMatch(markup, /90%/);
});
@@ -139,11 +139,11 @@ test('AnimeOverviewStats renders aggregate Yomitan lookup metrics', () => {
assert.match(markup, /Lookups/);
assert.match(markup, /16/);
- assert.match(markup, /2\.0 \/ 100 tokens/);
- assert.match(markup, /Yomitan lookups per 100 tokens seen/);
+ assert.match(markup, /2\.0 \/ 100 words/);
+ assert.match(markup, /Yomitan lookups per 100 words seen/);
});
-test('SessionRow prefers token-based word count when available', () => {
+test('SessionRow prefers word-based count when available', () => {
const markup = renderToStaticMarkup(