import Domain import Foundation @testable import Playback import Testing struct SampleRateMatcherTests { private let device = OutputDeviceInfo(id: 1, name: "Fake", nominalRate: 48000, availableRates: [44100, 48000, 96000]) private let flac = AudioFormat(codec: .flac, sampleRate: 44100, bitDepth: 16) @Test func settingOffLeavesDeviceAlone() { #expect(SampleRateMatcher(isEnabled: false).targetRate(for: flac, on: device) == nil) } @Test func sameRateNeedsNoSwitch() { let format = AudioFormat(codec: .flac, sampleRate: 48000) #expect(SampleRateMatcher(isEnabled: true).targetRate(for: format, on: device) == nil) } @Test func unavailableRateIsIgnored() { let format = AudioFormat(codec: .flac, sampleRate: 192_000) #expect(SampleRateMatcher(isEnabled: true).targetRate(for: format, on: device) == nil) } @Test func unknownRateOrDeviceIsIgnored() { let matcher = SampleRateMatcher(isEnabled: true) #expect(matcher.targetRate(for: AudioFormat(codec: .mp3), on: device) == nil) #expect(matcher.targetRate(for: nil, on: device) == nil) #expect(matcher.targetRate(for: flac, on: nil) == nil) } @Test func availableRateIsChosenExactly() { #expect(SampleRateMatcher(isEnabled: true).targetRate(for: flac, on: device) == 44100) } }