//
// GenerateSignaturesTest.swift
// ShazamExtractor
//
// Created by 윤동주 on 11/1/24.
//
import Foundation
@testable import ShazamExtractor
import ShazamKit
import Testing
struct GenerateSignaturesTestCase {
let youtubeURLString: String
let videoID: String
let totalLength: Int
}
struct GenerateSignaturesTest {
@Test("Generate Signatures of External Audio File", arguments: testCases)
func generateSignaturesTest(testCase: GenerateSignaturesTestCase) async throws {
guard let externalURL = try await URLConverter(urlString: testCase.youtubeURLString).convert() else {
throw SqooperError.urlConverterError
}
let signatureGenerator = SignatureGenerator(
videoID: testCase.videoID,
totalLength: testCase.totalLength
)
let signatures = try await signatureGenerator.generateSignatures(
audioURL: externalURL,
splittingMinute: 2.0,
segmentDuration: 12.0
)
#expect(type(of: signatures) == Array<SHSignature>.self)
}
static let testCases = [
GenerateSignaturesTestCase(
youtubeURLString: "https://www.youtube.com/watch?v=4HZ8wh2MMpQ",
videoID: "4HZ8wh2MMpQ",
totalLength: 204
),
GenerateSignaturesTestCase(
youtubeURLString: "https://www.youtube.com/watch?v=YyY1T6IkOYg",
videoID: "YyY1T6IkOYg",
totalLength: 3675
)
]
}