refactor: extract elevenlabs kit
This commit is contained in:
@@ -4,7 +4,7 @@ import XCTest
|
||||
final class ElevenLabsTTSValidationTests: XCTestCase {
|
||||
func testValidatedOutputFormatAllowsOnlyMp3Presets() {
|
||||
XCTAssertEqual(ElevenLabsTTSClient.validatedOutputFormat("mp3_44100_128"), "mp3_44100_128")
|
||||
XCTAssertNil(ElevenLabsTTSClient.validatedOutputFormat("pcm_16000"))
|
||||
XCTAssertEqual(ElevenLabsTTSClient.validatedOutputFormat("pcm_16000"), "pcm_16000")
|
||||
}
|
||||
|
||||
func testValidatedLanguageAcceptsTwoLetterCodes() {
|
||||
@@ -17,4 +17,3 @@ final class ElevenLabsTTSValidationTests: XCTestCase {
|
||||
XCTAssertNil(ElevenLabsTTSClient.validatedNormalize("maybe"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
import XCTest
|
||||
@testable import ClawdisKit
|
||||
|
||||
final class PCMStreamingAudioPlayerTests: XCTestCase {
|
||||
@MainActor
|
||||
func testStopDuringPCMStreamReturnsInterruptedResult() async {
|
||||
var continuation: AsyncThrowingStream<Data, Error>.Continuation?
|
||||
let stream = AsyncThrowingStream<Data, Error> { cont in
|
||||
continuation = cont
|
||||
let samples = Data(repeating: 0, count: 44_100)
|
||||
cont.yield(samples)
|
||||
}
|
||||
|
||||
let task = Task { @MainActor in
|
||||
await PCMStreamingAudioPlayer.shared.play(stream: stream, sampleRate: 44_100)
|
||||
}
|
||||
|
||||
try? await Task.sleep(nanoseconds: 120_000_000)
|
||||
let interruptedAt = PCMStreamingAudioPlayer.shared.stop()
|
||||
continuation?.finish()
|
||||
|
||||
let result = await task.value
|
||||
XCTAssertFalse(result.finished)
|
||||
XCTAssertNotNil(interruptedAt)
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
import XCTest
|
||||
@testable import ClawdisKit
|
||||
|
||||
final class TalkTTSValidationTests: XCTestCase {
|
||||
func testResolveSpeedUsesRateWPMWhenProvided() {
|
||||
let resolved = TalkTTSValidation.resolveSpeed(speed: nil, rateWPM: 175)
|
||||
XCTAssertNotNil(resolved)
|
||||
XCTAssertEqual(resolved ?? 0, 1.0, accuracy: 0.0001)
|
||||
XCTAssertNil(TalkTTSValidation.resolveSpeed(speed: nil, rateWPM: 400))
|
||||
}
|
||||
|
||||
func testValidatedUnitBounds() {
|
||||
XCTAssertEqual(TalkTTSValidation.validatedUnit(0), 0)
|
||||
XCTAssertEqual(TalkTTSValidation.validatedUnit(1), 1)
|
||||
XCTAssertNil(TalkTTSValidation.validatedUnit(-0.01))
|
||||
XCTAssertNil(TalkTTSValidation.validatedUnit(1.01))
|
||||
}
|
||||
|
||||
func testValidatedStability() {
|
||||
XCTAssertEqual(TalkTTSValidation.validatedStability(0, modelId: "eleven_v3"), 0)
|
||||
XCTAssertEqual(TalkTTSValidation.validatedStability(0.5, modelId: "eleven_v3"), 0.5)
|
||||
XCTAssertEqual(TalkTTSValidation.validatedStability(1, modelId: "eleven_v3"), 1)
|
||||
XCTAssertNil(TalkTTSValidation.validatedStability(0.7, modelId: "eleven_v3"))
|
||||
XCTAssertEqual(TalkTTSValidation.validatedStability(0.7, modelId: "eleven_multilingual_v2"), 0.7)
|
||||
}
|
||||
|
||||
func testValidatedSeedBounds() {
|
||||
XCTAssertEqual(TalkTTSValidation.validatedSeed(0), 0)
|
||||
XCTAssertEqual(TalkTTSValidation.validatedSeed(1234), 1234)
|
||||
XCTAssertNil(TalkTTSValidation.validatedSeed(-1))
|
||||
}
|
||||
|
||||
func testValidatedLatencyTier() {
|
||||
XCTAssertEqual(TalkTTSValidation.validatedLatencyTier(0), 0)
|
||||
XCTAssertEqual(TalkTTSValidation.validatedLatencyTier(4), 4)
|
||||
XCTAssertNil(TalkTTSValidation.validatedLatencyTier(-1))
|
||||
XCTAssertNil(TalkTTSValidation.validatedLatencyTier(5))
|
||||
}
|
||||
|
||||
func testPcmSampleRateParse() {
|
||||
XCTAssertEqual(TalkTTSValidation.pcmSampleRate(from: "pcm_44100"), 44100)
|
||||
XCTAssertNil(TalkTTSValidation.pcmSampleRate(from: "mp3_44100_128"))
|
||||
XCTAssertNil(TalkTTSValidation.pcmSampleRate(from: "pcm_bad"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user