import SwiftUI import Testing @testable import FlixyDesign @Suite("Ränder gleichmachen") struct SymmetricInsetsTests { /// **Der Fall aus dem Querformat.** Notch links, nichts rechts — mit den /// rohen Werten stünde das Bild einunddreissig Punkte zu weit rechts. @Test("Die Notch-Seite bestimmt beide Seiten") func landscapeNotch() { let roh = EdgeInsets(top: 0, leading: 62, bottom: 21, trailing: 0) let gleich = roh.symmetrical #expect(gleich.leading == 62) #expect(gleich.trailing == 62) #expect(gleich.top == 21) #expect(gleich.bottom == 21) } /// Und aus dem Hochformat: oben zweiundsechzig, unten vierunddreissig. @Test("Oben und unten wird der grössere genommen") func portrait() { let gleich = EdgeInsets(top: 62, leading: 0, bottom: 34, trailing: 0).symmetrical #expect(gleich.top == 62) #expect(gleich.bottom == 62) #expect(gleich.leading == 0) #expect(gleich.trailing == 0) } /// Was schon gleich ist, bleibt gleich — sonst würde die Rechnung auf /// einem iPad ohne Notch Balken erfinden, wo keine hingehören. @Test("Symmetrisches bleibt unverändert") func alreadySymmetric() { let roh = EdgeInsets(top: 20, leading: 50, bottom: 20, trailing: 50) #expect(roh.symmetrical == roh) } @Test("Ohne Ränder bleibt es ohne") func zero() { let gleich = EdgeInsets().symmetrical #expect(gleich == EdgeInsets()) } /// **Die Zusage, auf die es ankommt.** Egal wie schief der Rand ankommt — /// danach ist die Mitte des verbleibenden Platzes die Mitte des Schirms. @Test("Die Mitte bleibt die Mitte") func centreStaysCentred() { for roh in [ EdgeInsets(top: 0, leading: 62, bottom: 21, trailing: 0), EdgeInsets(top: 62, leading: 0, bottom: 34, trailing: 0), EdgeInsets(top: 5, leading: 1, bottom: 99, trailing: 40), ] { let g = roh.symmetrical #expect(g.leading - g.trailing == 0) #expect(g.top - g.bottom == 0) } } }