diff --git a/patch15.py b/patch15.py deleted file mode 100644 index c3645c30..00000000 --- a/patch15.py +++ /dev/null @@ -1,107 +0,0 @@ -# -*- coding: utf-8 -*- -import io - -p = 'pruef-verwaltung-schmuck.mjs' -s = io.open(p, encoding='utf-8').read() - -# --- Glas-Abschnitt: es traegt jetzt nur noch das Detailblatt Unschaerfe --- -alt = ''' console.log("\\n===== 2. TRAEGT ALLES GLAS, WORAUF GELESEN WIRD? ====="); - const glas = await seite.evaluate(() => { - const pruefen = [".vw-karte", ".vw-filter-knopf", ".vw-wer"]; - const raus = {}; - for (const w of pruefen) { - const el = document.querySelector("#vw-bereich " + w); - if (!el) { raus[w] = "(nicht gefunden)"; continue; } - const st = getComputedStyle(el); - raus[w] = st.backdropFilter || st.webkitBackdropFilter || "keins"; - } - return raus; - }); - for (const [w, wert] of Object.entries(glas)) { - if (wert === "(nicht gefunden)") continue; - pruefe(` ${w} hat Rueckseiten-Unschaerfe`, /blur/.test(wert), wert.slice(0, 34)); - }''' - -neu = ''' console.log("\\n===== 2. BLEIBT DER TEXT VOM BILD GETRENNT? ====="); - /* Frueher wurde hier "traegt alles Glas?" geprueft. Das war zu teuer: - Eine Rueckseiten-Unschaerfe kostet Rechenzeit PRO ELEMENT, und zwar - bei jeder Bewegung neu. Mit sechs Kacheln fiel die Bildrate auf - 6,4 Bilder je Sekunde, bei echter Mausbewegung sogar auf 4,5. - - Entscheidend ist nicht die Unschaerfe, sondern dass der Text nicht - auf dem Bild steht. Das leistet auch eine dichte Flaeche -- und die - kostet nichts. Genau das wird jetzt geprueft. */ - const flaechen = await seite.evaluate(() => { - const el = document.querySelector("#vw-probe .vw-karte"); - if (!el) return null; - const st = getComputedStyle(el); - return { hintergrund: st.backgroundImage, unschaerfe: st.backdropFilter }; - }); - pruefe("die Kachel hat eine eigene Flaeche unter dem Text", - flaechen && /gradient/.test(flaechen.hintergrund), - flaechen ? "Verlauf vorhanden" : "keine Kachel"); - - /* Das Detailblatt behaelt die Unschaerfe: Davon gibt es immer nur - genau eines, und es liegt gross ueber der Seite -- dort faellt die - Rechenzeit einmal an, nicht pro Listeneintrag. */ - const blatt = await seite.evaluate(() => { - const el = document.querySelector(".vw-detail-blatt"); - if (!el) return "(nicht auf der Seite)"; - return getComputedStyle(el).backdropFilter || "keins"; - }); - if (blatt !== "(nicht auf der Seite)") { - pruefe("das Detailblatt behaelt seine Unschaerfe", /blur/.test(blatt), blatt.slice(0, 30)); - } - - /* Die Bildrate ist selbst ein Pruefpunkt. Ohne ihn waere jederzeit - ein weiterer huebscher Effekt dazugekommen, der die Seite still - wieder zaeh macht. */ - const bildrate = await seite.evaluate(() => new Promise((fertig) => { - let n = 0; - const start = performance.now(); - const zaehl = () => { - n++; - if (performance.now() - start < 1200) requestAnimationFrame(zaehl); - else fertig(n / ((performance.now() - start) / 1000)); - }; - requestAnimationFrame(zaehl); - })); - pruefe("die Seite laeuft in Ruhe fluessig (ueber 45 Bilder/s)", - bildrate > 45, bildrate.toFixed(1) + " Bilder/s");''' - -assert alt in s, 'Glas-Abschnitt nicht gefunden' -s = s.replace(alt, neu, 1) - -# --- Lampen-Abschnitt: sie ist bewusst abgeschaltet --- -alt2 = ''' pruefe("Buehne und Lampe stecken in einem isolierten Raum", - extra.raumIsoliert === "isolate", extra.raumIsoliert);''' -neu2 = ''' pruefe("Buehne und Lampe stecken in einem isolierten Raum", - extra.raumIsoliert === "isolate", extra.raumIsoliert); - - /* Die Vollbild-Zeigerlampe ist ABGESCHALTET -- eine Entscheidung, - kein Versehen. Zusammen mit den Glasflaechen kostete sie zwei - Drittel der Bildrate: Jede ihrer Bewegungen zwang jede Flaeche - darueber zum Neurechnen. - - Das Licht, das dem Zeiger folgt, gibt es weiterhin auf den Kacheln - selbst. Es ist billig, weil es nur die Kachel unter dem Zeiger - betrifft statt des ganzen Bildschirms. */ - const lampeAus = await seite.evaluate(() => - getComputedStyle(document.querySelector(".vw-lampe")).display); - pruefe("die Vollbild-Lampe ist bewusst aus", lampeAus === "none", lampeAus);''' -assert alt2 in s, 'Lampen-Abschnitt nicht gefunden' -s = s.replace(alt2, neu2, 1) - -# --- Die alten Lampen-Pruefungen entfernen --- -for weg in [ -''' pruefe("die Lampe beleuchtet, statt zu ueberdecken", - extra.mischung === "soft-light", extra.mischung);''', -''' pruefe("sie folgt dem Zeiger", extra.mx === "1050px" && extra.my === "380px", - extra.mx + " / " + extra.my);''', -''' pruefe("und war vor der ersten Zeigerbewegung aus", extra.lampeAn === true);''', -]: - if weg in s: - s = s.replace(weg, '', 1) - -io.open(p, 'w', encoding='utf-8', newline='').write(s) -print('Test an die neue Aufteilung angepasst')