Open-source release: pipeline code, raw logs, derived data, licences, tests

Adds src/ (scripts, raw measurement logs, derived data, report source),
tests/, LICENSE (MIT, code) and LICENSE-DATA.md (CC BY 4.0 for the survey's
data; third-party terms). The report is updated to the current site; the
v1 and v2 data hand-off files are unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Toby
2026-10-27 20:09:54 -04:00
parent 75da69fc31
commit c094eb88fa
81 changed files with 249210 additions and 127 deletions
+21
View File
@@ -0,0 +1,21 @@
import { chromium } from 'playwright-core';
import { PAGE, HAND } from './paths.mjs';
const b = await chromium.launch({ executablePath: process.env.CH });
const bad = [];
for (const [w, h] of [[1920, 1080], [1440, 900], [1366, 768], [1280, 800], [1024, 768], [390, 844]]) {
const p = await b.newPage({ viewport: { width: w, height: h } });
await p.goto(PAGE('web/index.html')); await p.waitForTimeout(1200);
const r = await p.evaluate(async () => {
const out = [];
for (const v of ['globe', 'ae', 'dp', 'merc']) { document.querySelector(`.models button[data-v="${v}"]`).click();
for (const src of ['all', 'ours', 'gp', 'home']) { setSource(src);
for (let i = 0; i < LP.length; i++) { select(i);
const t = [...document.querySelectorAll('#card .row .top b, #card .row .top em, #card h2')].filter(e => e.scrollWidth > e.clientWidth + 1);
if (t.length) out.push(`${v} ${src} ${LS[LP[i].a].name}-${LS[LP[i].b].name}: ${t.map(e => e.textContent).join(' | ')}`) } } }
return { out, nokm: document.getElementById('card').classList.contains('nokm') };
});
console.log(w, h, 'truncated rows:', r.out.length, r.out.slice(0, 2));
if (r.out.length) bad.push(w);
await p.close();
}
console.log('TRUNC FAILS', bad); await b.close();