this repo has no description
at main 35 lines 1.2 kB view raw
1import Foundation 2import Testing 3@testable import CodexBar 4 5@Suite 6struct LoadingPatternTests { 7 @Test 8 func valuesStayWithinBounds() { 9 for pattern in LoadingPattern.allCases { 10 for phase in stride(from: 0.0, through: Double.pi * 2, by: Double.pi / 6) { 11 let v = pattern.value(phase: phase) 12 #expect(v >= 0 && v <= 100, "pattern \(pattern) out of bounds at phase \(phase)") 13 } 14 } 15 } 16 17 @Test 18 func knightRiderPingPongs() { 19 let pattern = LoadingPattern.knightRider 20 let mid = pattern.value(phase: 0) // sin 0 = 0 => 50 21 let min = pattern.value(phase: -Double.pi / 2) // sin -pi/2 = -1 => 0 22 let max = pattern.value(phase: Double.pi / 2) // sin pi/2 = 1 => 100 23 #expect(min <= mid && mid <= max) 24 #expect(min == 0) 25 #expect(max == 100) 26 } 27 28 @Test 29 func secondaryOffsetDiffers() { 30 let pattern = LoadingPattern.cylon 31 let primary = pattern.value(phase: 0) 32 let secondary = pattern.value(phase: pattern.secondaryOffset) 33 #expect(primary != secondary, "secondary should be offset from primary") 34 } 35}