@@ -75,21 +75,25 @@ struct GenerateContentIntegrationTests {
75
75
76
76
let usageMetadata = try #require( response. usageMetadata)
77
77
#expect( usageMetadata. promptTokenCount. isEqual ( to: 13 , accuracy: tokenCountAccuracy) )
78
- #expect( usageMetadata. candidatesTokenCount. isEqual ( to: 3 , accuracy: tokenCountAccuracy) )
79
- #expect( usageMetadata. totalTokenCount. isEqual ( to: 16 , accuracy: tokenCountAccuracy) )
80
78
#expect( usageMetadata. promptTokensDetails. count == 1 )
81
79
let promptTokensDetails = try #require( usageMetadata. promptTokensDetails. first)
82
80
#expect( promptTokensDetails. modality == . text)
83
81
#expect( promptTokensDetails. tokenCount == usageMetadata. promptTokenCount)
84
- // The field `candidatesTokensDetails` is not included when using Gemma models.
85
- if modelName == ModelNames . gemma3_4B {
82
+ // The fields `candidatesTokenCount` and `candidatesTokensDetails` are not included when using
83
+ // Gemma models.
84
+ if modelName. hasPrefix ( " gemma " ) {
85
+ #expect( usageMetadata. candidatesTokenCount == 0 )
86
86
#expect( usageMetadata. candidatesTokensDetails. isEmpty)
87
87
} else {
88
+ #expect( usageMetadata. candidatesTokenCount. isEqual ( to: 3 , accuracy: tokenCountAccuracy) )
88
89
#expect( usageMetadata. candidatesTokensDetails. count == 1 )
89
90
let candidatesTokensDetails = try #require( usageMetadata. candidatesTokensDetails. first)
90
91
#expect( candidatesTokensDetails. modality == . text)
91
92
#expect( candidatesTokensDetails. tokenCount == usageMetadata. candidatesTokenCount)
92
93
}
94
+ #expect( usageMetadata. totalTokenCount > 0 )
95
+ #expect( usageMetadata. totalTokenCount ==
96
+ ( usageMetadata. promptTokenCount + usageMetadata. candidatesTokenCount) )
93
97
}
94
98
95
99
@Test (
0 commit comments