refactor: extract elevenlabs kit

This commit is contained in:
Peter Steinberger
2025-12-30 12:48:09 +01:00
parent 66952a682d
commit 83262a67b1
9 changed files with 16 additions and 1030 deletions

View File

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

View File

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

View File

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