Files
Amphlify/Packages/AmphlifyKit/Tests/PlaybackTests/SampleRateMatcherTests.swift
T

35 lines
1.3 KiB
Swift

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)
}
}