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:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user