Der Nebel lag dort, wo der Text steht
pruef-kachel-universum war rot mit drei Meldungen. Die zweite rote
Pruefung von dreien.
ERST DIE FRAGE, OB ES DRIFT IST ODER VON ANFANG AN SO WAR: Die Pruefung
und das Sternenfeld kamen im selben Commit (ad47fc2). Dort laufen
lassen -- alles gruen, Kachelzeile 0,017 % auf 11610 Bildpunkten. Heute
2,372 % auf 6282. Die gemessene Flaeche hat sich HALBIERT.
Das war der Hinweis: Es wird eine andere Kachel gemessen. Der Waehler
nimmt die erste (`.kachel .kachel__unter`), und die war damals die
grosse Dashboard-Kachel (645 px breit), heute ist es "Team-Lage" (349
px). Die Reihenfolge hat sich zwischendurch geaendert.
WARUM DAS EINEN UNTERSCHIED MACHT: Die beiden Nebel sind auf
`100% 100%` skaliert, sie wachsen also mit der Kachel. Der babyblaue
sass bei `at 12% 88%` -- unten links. Auf einer schmalen Kachel liegt
genau dort die Unterzeile; auf der doppelt so breiten verteilt sich
derselbe Nebel ueber die ganze Breite und faellt nicht auf.
Der Kern ist jetzt tiefer in die Ecke geschoben (`at 10% 104%`, Ellipse
etwas flacher). Der Verlauf laeuft weiterhin quer durch die Kachel, die
Sterne sind unveraendert -- nachgesehen im Bild, nicht nur gemessen.
Kachelzeile 2,372 % -> 0,000 % (Mittel 6.93 -> 7.28)
Personenzeile 0,253 % -> 0,253 % (unveraendert, nichts kaputt)
UND EINE PRUEFUNG, DIE SEIT WOCHEN GAR NICHT LIEF. Die Zeile "dort
steht kein Stern" hing an `if (zwischenraum)`, und `zwischenraum` war
`null`, seit die grosse Kachel an Platz zwei steht: Sie faengt eine
Zeile tiefer wieder bei x=140 an, also gab es keinen Spalt zwischen
den ersten beiden. Ein uebersprungener Test beweist nichts -- und
gemeldet hat er nur, dass er nichts messen konnte.
Beim Wiederbeleben stellte sich heraus, dass er die falsche Frage
stellte: Er verlangte, dass der Grund zwischen den Kacheln "ruhig" ist
(Spanne <= 12). Das ist eine Aussage ueber das HINTERGRUNDFOTO der
Seite, und ein Foto darf helle Stellen haben -- gemessen 27, ohne dass
etwas kaputt war. Die eigentliche Frage ist eine andere: Liegt das
Sternenfeld wirklich nur auf den Kacheln?
Jetzt wird derselbe Fleck zweimal gemessen, mit und ohne Sternenfeld:
Mittel 42,7,12 -> 42,7,12 hellster 69,14,17 -> 69,14,17
Bildpunkt fuer Bildpunkt identisch. Das beantwortet die Frage
unabhaengig davon, was auf dem Foto zu sehen ist.
pruef-kachel-universum 37 Pruefungen, 0 Fehler (vorher 3)
pruef-css-klassen, pruef-neue-seiten 97 -- 0 Fehler
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -434,20 +434,89 @@ melde("=== 4. Nur die Kacheln ===");
|
||||
const zwischenraum = await seite.evaluate(() => {
|
||||
/* Ein Fleck ZWISCHEN zwei Kacheln. Er gehoert der Seite, nicht
|
||||
einer Kachel -- dort darf kein Stern stehen. */
|
||||
const kacheln = [...document.querySelectorAll(".kachel")];
|
||||
if (kacheln.length < 2) return null;
|
||||
const a = kacheln[0].getBoundingClientRect();
|
||||
const b = kacheln[1].getBoundingClientRect();
|
||||
if (b.x - (a.x + a.width) < 6) return null;
|
||||
return { x: Math.round(a.x + a.width) + 1, y: Math.round(a.y) + 20,
|
||||
width: Math.max(2, Math.round(b.x - (a.x + a.width)) - 2), height: 40 };
|
||||
/* IRGENDZWEI, DIE NEBENEINANDER LIEGEN -- nicht die ersten zwei.
|
||||
|
||||
Bis zum 16.09.2026 stand hier `kacheln[0]` und `kacheln[1]`. Das
|
||||
hielt genau so lange, wie die erste Kachel klein war: Seit die
|
||||
Reihenfolge sich geaendert hat, steht an Platz zwei die grosse
|
||||
Dashboard-Kachel, und die faengt eine Zeile tiefer wieder bei
|
||||
x=140 an. Es gab also keinen Zwischenraum mehr -- die Pruefung
|
||||
meldete "kein Platz zum Messen" und mass danach gar nichts.
|
||||
|
||||
Das ist dieselbe Falle wie eine feste Zahl: eine Annahme ueber
|
||||
das Aussehen, die beim naechsten Umbau still falsch wird. Jetzt
|
||||
wird gesucht, was die Frage beantwortet, statt sie zu stellen. */
|
||||
/* EIN FLECK, DER KEINE KACHEL BERUEHRT.
|
||||
|
||||
Die Frage ist: Steht das Sternenfeld wirklich nur auf den
|
||||
Kacheln? Bis zum 16.09.2026 wurde dafuer der schmale Spalt
|
||||
ZWISCHEN zwei Kacheln gemessen -- und zwar `kacheln[0]` und
|
||||
`kacheln[1]`. Das hielt genau so lange, wie die erste Kachel
|
||||
klein war; seit die Reihenfolge sich geaendert hat, steht an
|
||||
Platz zwei die grosse Kachel eine Zeile tiefer. Es gab keinen
|
||||
Spalt mehr, die Messung lieferte `null`, und die Zeile darunter
|
||||
("dort steht kein Stern") lief ueberhaupt nicht mehr. Ein
|
||||
uebersprungener Test beweist nichts.
|
||||
|
||||
Der Spalt war ausserdem die falsche Stelle: Er ist rund vierzehn
|
||||
Pixel breit, und die Kacheln haben ein gewolltes Kantenlicht.
|
||||
Was dort hell ist, gehoert zur Kachel, nicht zur Seite --
|
||||
gemessen wurde "Spanne 40" gegen eine Grenze von 12, ohne dass
|
||||
irgendetwas kaputt war.
|
||||
|
||||
Deshalb jetzt die Zeile ZWISCHEN zwei Kachelreihen, mit Abstand
|
||||
zu beiden, und zur Sicherheit gegen jede Kachel geprueft. Das
|
||||
beantwortet dieselbe Frage an einer Stelle, an der die Antwort
|
||||
eindeutig ist. */
|
||||
const felder = [...document.querySelectorAll(".kachel")]
|
||||
.map((k) => k.getBoundingClientRect());
|
||||
if (felder.length < 2) return null;
|
||||
|
||||
const unten = Math.max(...felder.map((f) => f.y + f.height));
|
||||
const kandidaten = [];
|
||||
for (const f of felder) {
|
||||
/* Direkt unter dieser Kachel, im Abstand von 4 Pixeln. */
|
||||
const y = f.y + f.height + 4;
|
||||
if (y + 8 > unten) continue; // nicht unter der letzten Reihe
|
||||
const fleck = { x: Math.round(f.x + f.width / 2 - 12), y: Math.round(y),
|
||||
width: 24, height: 8 };
|
||||
const beruehrt = felder.some((g) =>
|
||||
fleck.x + fleck.width > g.x && fleck.x < g.x + g.width
|
||||
&& fleck.y + fleck.height > g.y && fleck.y < g.y + g.height);
|
||||
if (!beruehrt) kandidaten.push(fleck);
|
||||
}
|
||||
return kandidaten[0] || null;
|
||||
});
|
||||
ok(zwischenraum !== null, "zwischen zwei Kacheln ist Platz zum Messen");
|
||||
ok(zwischenraum !== null, "ein Fleck ohne Kachel darunter ist gefunden");
|
||||
if (zwischenraum) {
|
||||
const p = await punkte(zwischenraum);
|
||||
const spanne = Math.max(...p.hellsterPunkt.map((x, i) => x - p.mittel[i]));
|
||||
ok(spanne <= 12,
|
||||
`der Grund zwischen den Kacheln ist ruhig, dort steht kein Stern (Spanne ${spanne})`);
|
||||
/* DIE FRAGE IST NICHT "IST ES DORT RUHIG", SONDERN "LIEGT DORT DAS
|
||||
STERNENFELD".
|
||||
|
||||
Bis zum 16.09.2026 verlangte diese Zeile, dass der Grund zwischen
|
||||
den Kacheln eine Spanne von hoechstens 12 hat. Das ist eine
|
||||
Aussage ueber das HINTERGRUNDFOTO der Seite, nicht ueber das
|
||||
Sternenfeld -- und ein Foto darf helle Stellen haben. Gemessen
|
||||
wurden 27, ohne dass irgendetwas kaputt war.
|
||||
|
||||
Eindeutig wird es, wenn man denselben Fleck zweimal misst: einmal
|
||||
mit Sternenfeld, einmal ohne. Liegt es wirklich nur auf den
|
||||
Kacheln, aendert sich dort NICHTS. Das beantwortet die Frage
|
||||
unabhaengig davon, was auf dem Foto zu sehen ist. */
|
||||
const mit = await punkte(zwischenraum);
|
||||
await seite.addStyleTag({ content: ":root { --sternenfeld: none; }" });
|
||||
await seite.waitForTimeout(250);
|
||||
const ohne = await punkte(zwischenraum);
|
||||
await seite.evaluate(() => {
|
||||
const letzte = [...document.querySelectorAll("style")].pop();
|
||||
if (letzte && letzte.textContent.includes("--sternenfeld: none")) letzte.remove();
|
||||
});
|
||||
await seite.waitForTimeout(250);
|
||||
|
||||
const abstand = Math.max(...mit.mittel.map((x, i) => Math.abs(x - ohne.mittel[i])));
|
||||
const spitze = Math.max(...mit.hellsterPunkt.map((x, i) => Math.abs(x - ohne.hellsterPunkt[i])));
|
||||
ok(abstand <= 1 && spitze <= 2,
|
||||
`neben den Kacheln aendert das Sternenfeld nichts `
|
||||
+ `(Mittel ${mit.mittel} -> ${ohne.mittel}, hellster ${mit.hellsterPunkt} -> ${ohne.hellsterPunkt})`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user