Skip to content

Commit 7276a6a

Browse files
committed
[Firebase AI] Remove deprecated models from integration tests
1 parent 61aae4c commit 7276a6a

File tree

2 files changed

+16
-53
lines changed

2 files changed

+16
-53
lines changed

FirebaseAI/Tests/TestApp/Sources/Constants.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,9 @@ public enum FirebaseAppNames {
2323
public enum ModelNames {
2424
public static let gemini2Flash = "gemini-2.0-flash-001"
2525
public static let gemini2FlashLite = "gemini-2.0-flash-lite-001"
26-
public static let gemini2FlashPreviewImageGeneration = "gemini-2.0-flash-preview-image-generation"
2726
public static let gemini2FlashLive = "gemini-2.0-flash-live-001"
2827
public static let gemini2FlashLivePreview = "gemini-2.0-flash-live-preview-04-09"
29-
public static let gemini2_5_FlashImagePreview = "gemini-2.5-flash-image-preview"
28+
public static let gemini2_5_FlashImage = "gemini-2.5-flash-image"
3029
public static let gemini2_5_Flash = "gemini-2.5-flash"
3130
public static let gemini2_5_FlashLite = "gemini-2.5-flash-lite"
3231
public static let gemini2_5_FlashLivePreview = "gemini-live-2.5-flash-preview"

FirebaseAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift

Lines changed: 15 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -322,18 +322,11 @@ struct GenerateContentIntegrationTests {
322322
}
323323

324324
@Test(arguments: [
325-
(InstanceConfig.vertexAI_v1beta, ModelNames.gemini2FlashPreviewImageGeneration),
326-
(InstanceConfig.vertexAI_v1beta_global, ModelNames.gemini2FlashPreviewImageGeneration),
327-
(InstanceConfig.vertexAI_v1beta_global, ModelNames.gemini2_5_FlashImagePreview),
328-
(InstanceConfig.googleAI_v1beta, ModelNames.gemini2FlashPreviewImageGeneration),
329-
(InstanceConfig.googleAI_v1beta, ModelNames.gemini2_5_FlashImagePreview),
325+
(InstanceConfig.vertexAI_v1beta, ModelNames.gemini2_5_FlashImage),
326+
(InstanceConfig.vertexAI_v1beta_global, ModelNames.gemini2_5_FlashImage),
327+
(InstanceConfig.googleAI_v1beta, ModelNames.gemini2_5_FlashImage),
330328
// Note: The following configs are commented out for easy one-off manual testing.
331-
// (InstanceConfig.googleAI_v1beta_staging, ModelNames.gemini2FlashPreviewImageGeneration)
332-
// (InstanceConfig.googleAI_v1beta_freeTier, ModelNames.gemini2FlashPreviewImageGeneration),
333-
// (
334-
// InstanceConfig.googleAI_v1beta_freeTier_bypassProxy,
335-
// ModelNames.gemini2FlashPreviewImageGeneration
336-
// ),
329+
// (InstanceConfig.googleAI_v1beta_staging, ModelNames.gemini2_5_FlashImage)
337330
])
338331
func generateImage(_ config: InstanceConfig, modelName: String) async throws {
339332
let generationConfig = GenerationConfig(
@@ -354,34 +347,21 @@ struct GenerateContentIntegrationTests {
354347
)
355348
let prompt = "Generate an image of a cute cartoon kitten playing with a ball of yarn."
356349

357-
var response: GenerateContentResponse?
358-
try await withKnownIssue(
359-
"Backend may fail with a 503 - Service Unavailable error when overloaded",
360-
isIntermittent: true
361-
) {
362-
response = try await model.generateContent(prompt)
363-
} matching: { issue in
364-
(issue.error as? BackendError).map { $0.httpResponseCode == 503 } ?? false
365-
}
350+
let response = try await model.generateContent(prompt)
366351

367-
guard let response else { return }
368352
let candidate = try #require(response.candidates.first)
369353
let inlineDataPart = try #require(candidate.content.parts
370354
.first { $0 is InlineDataPart } as? InlineDataPart)
371355
let inlineDataPartsViaAccessor = response.inlineDataParts
372356
#expect(inlineDataPartsViaAccessor.count == 1)
373357
let inlineDataPartViaAccessor = try #require(inlineDataPartsViaAccessor.first)
374358
#expect(inlineDataPart == inlineDataPartViaAccessor)
375-
#expect(inlineDataPart.mimeType == "image/png")
359+
#expect(inlineDataPart.mimeType.starts(with: "image/"))
376360
#expect(inlineDataPart.data.count > 0)
377361
#if canImport(UIKit)
378362
let uiImage = try #require(UIImage(data: inlineDataPart.data))
379-
// Gemini 2.0 Flash Experimental returns images sized to fit within a 1024x1024 pixel box but
380-
// dimensions may vary depending on the aspect ratio.
381-
#expect(uiImage.size.width <= 1024)
382-
#expect(uiImage.size.width >= 500)
383-
#expect(uiImage.size.height <= 1024)
384-
#expect(uiImage.size.height >= 500)
363+
#expect(uiImage.size.width > 0)
364+
#expect(uiImage.size.height > 0)
385365
#endif // canImport(UIKit)
386366
}
387367

@@ -552,18 +532,11 @@ struct GenerateContentIntegrationTests {
552532
}
553533

554534
@Test(arguments: [
555-
(InstanceConfig.vertexAI_v1beta, ModelNames.gemini2FlashPreviewImageGeneration),
556-
(InstanceConfig.vertexAI_v1beta_global, ModelNames.gemini2FlashPreviewImageGeneration),
557-
(InstanceConfig.vertexAI_v1beta_global, ModelNames.gemini2_5_FlashImagePreview),
558-
(InstanceConfig.googleAI_v1beta, ModelNames.gemini2FlashPreviewImageGeneration),
559-
(InstanceConfig.googleAI_v1beta, ModelNames.gemini2_5_FlashImagePreview),
535+
(InstanceConfig.vertexAI_v1beta, ModelNames.gemini2_5_FlashImage),
536+
(InstanceConfig.vertexAI_v1beta_global, ModelNames.gemini2_5_FlashImage),
537+
(InstanceConfig.googleAI_v1beta, ModelNames.gemini2_5_FlashImage),
560538
// Note: The following configs are commented out for easy one-off manual testing.
561-
// (InstanceConfig.googleAI_v1beta_staging, ModelNames.gemini2FlashPreviewImageGeneration)
562-
// (InstanceConfig.googleAI_v1beta_freeTier, ModelNames.gemini2FlashPreviewImageGeneration),
563-
// (
564-
// InstanceConfig.googleAI_v1beta_freeTier_bypassProxy,
565-
// ModelNames.gemini2FlashPreviewImageGeneration
566-
// ),
539+
// (InstanceConfig.googleAI_v1beta_staging, ModelNames.gemini2_5_FlashImage)
567540
])
568541
func generateImageStreaming(_ config: InstanceConfig, modelName: String) async throws {
569542
let generationConfig = GenerationConfig(
@@ -572,11 +545,6 @@ struct GenerateContentIntegrationTests {
572545
topK: 1,
573546
responseModalities: [.text, .image]
574547
)
575-
let safetySettings = safetySettings.filter {
576-
// HARM_CATEGORY_CIVIC_INTEGRITY is deprecated in Vertex AI but only rejected when using the
577-
// 'gemini-2.0-flash-preview-image-generation' model.
578-
$0.harmCategory != .civicIntegrity
579-
}
580548
let model = FirebaseAI.componentInstance(config).generativeModel(
581549
modelName: modelName,
582550
generationConfig: generationConfig,
@@ -605,16 +573,12 @@ struct GenerateContentIntegrationTests {
605573

606574
#expect(inlineDataParts.count == 1)
607575
let inlineDataPart = try #require(inlineDataParts.first)
608-
#expect(inlineDataPart.mimeType == "image/png")
576+
#expect(inlineDataPart.mimeType.starts(with: "image/"))
609577
#expect(inlineDataPart.data.count > 0)
610578
#if canImport(UIKit)
611579
let uiImage = try #require(UIImage(data: inlineDataPart.data))
612-
// Gemini 2.0 Flash Experimental returns images sized to fit within a 1024x1024 pixel box but
613-
// dimensions may vary depending on the aspect ratio.
614-
#expect(uiImage.size.width <= 1024)
615-
#expect(uiImage.size.width >= 500)
616-
#expect(uiImage.size.height <= 1024)
617-
#expect(uiImage.size.height >= 500)
580+
#expect(uiImage.size.width > 0)
581+
#expect(uiImage.size.height > 0)
618582
#endif // canImport(UIKit)
619583
}
620584

0 commit comments

Comments
 (0)