Blitz misst sich am Innenraum, nicht an der Außenhöhe

Bezugsgröße war die volle Höhe des Akkus. Der Rahmen nimmt aber oben und
unten je einen Punkt, die Füllung sitzt zwei Punkte eingerückt, und um das
Zeichen kommt noch sein eigener Rand — so füllte der Blitz mitsamt Rand elf
von zwölf Punkten und stieß an den Rahmen.

Jetzt ist der Innenraum die Bezugsgröße: sechs Punkte Zeichen plus zwei Rand
in acht Punkten Innenraum. Ein Test hält fest, dass jedes Zeichen samt Rand
hineinpasst — und dass es nicht ins andere Extrem fällt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-08-13 14:13:41 +02:00
parent 2bf76eb060
commit 80b083259e
2 changed files with 36 additions and 7 deletions

View File

@@ -231,3 +231,26 @@ struct BatteryOutlineTests {
}
}
}
@Suite("Größe des Zeichens")
struct BatteryGlyphSizeTests {
private let height = BatteryGlyph.size.height
@Test("Das Zeichen passt samt Rand in den Innenraum")
func glyphAndOutlineFitInside() {
// Der Fehler, um den es ging: von der Außenhöhe ausgegangen, füllte der
// Blitz den ganzen Akku und stieß an den Rahmen.
let inner = height - 2 * BatteryGlyph.fillInset
for indicator in BatteryGlyph.Indicator.allCases {
let glyph = BatteryGlyph.glyphHeight(for: indicator, in: height)
#expect(glyph + 2 * BatteryGlyph.outlineWidth <= inner + 0.001)
}
}
@Test("Es bleibt trotzdem sichtbar groß")
func glyphIsNotTiny() {
// Auf die andere Seite zu übertreiben hilft auch niemandem.
#expect(BatteryGlyph.glyphHeight(for: .bolt, in: height) >= height * 0.4)
}
}