@@ -39,6 +39,12 @@ void main() {
39
39
'candidatesTokenCount' : 5 ,
40
40
'totalTokenCount' : 15 ,
41
41
'thoughtsTokenCount' : 3 ,
42
+ 'promptTokensDetails' : [
43
+ {'modality' : 'TEXT' , 'tokenCount' : 10 }
44
+ ],
45
+ 'candidatesTokensDetails' : [
46
+ {'modality' : 'TEXT' , 'tokenCount' : 25 }
47
+ ],
42
48
}
43
49
};
44
50
final response =
@@ -48,6 +54,15 @@ void main() {
48
54
expect (response.usageMetadata! .candidatesTokenCount, 5 );
49
55
expect (response.usageMetadata! .totalTokenCount, 15 );
50
56
expect (response.usageMetadata! .thoughtsTokenCount, 3 );
57
+ expect (response.usageMetadata! .promptTokensDetails, isNotNull);
58
+ expect (response.usageMetadata! .promptTokensDetails, hasLength (1 ));
59
+ expect (
60
+ response.usageMetadata! .promptTokensDetails! .first.tokenCount, 10 );
61
+ expect (response.usageMetadata! .candidatesTokensDetails, isNotNull);
62
+ expect (response.usageMetadata! .candidatesTokensDetails, hasLength (1 ));
63
+ expect (
64
+ response.usageMetadata! .candidatesTokensDetails! .first.tokenCount,
65
+ 25 );
51
66
});
52
67
53
68
test ('parses usageMetadata when thoughtsTokenCount is missing' , () {
@@ -68,6 +83,12 @@ void main() {
68
83
'candidatesTokenCount' : 5 ,
69
84
'totalTokenCount' : 15 ,
70
85
// thoughtsTokenCount is missing
86
+ 'promptTokensDetails' : [
87
+ {'modality' : 'TEXT' , 'tokenCount' : 10 }
88
+ ],
89
+ 'candidatesTokensDetails' : [
90
+ {'modality' : 'TEXT' , 'tokenCount' : 25 }
91
+ ],
71
92
}
72
93
};
73
94
final response =
@@ -153,40 +174,6 @@ void main() {
153
174
expect ((part as InlineDataPart ).mimeType, 'application/octet-stream' );
154
175
expect (part.bytes, inlineData);
155
176
});
156
-
157
- test (
158
- 'parses usageMetadata with prompt and candidate token details correctly' ,
159
- () {
160
- final jsonResponse = {
161
- 'usageMetadata' : {
162
- 'promptTokenCount' : 10 ,
163
- 'candidatesTokenCount' : 25 ,
164
- 'totalTokenCount' : 35 ,
165
- 'promptTokensDetails' : [
166
- {'modality' : 'TEXT' , 'tokenCount' : 10 }
167
- ],
168
- 'candidatesTokensDetails' : [
169
- {'modality' : 'TEXT' , 'tokenCount' : 25 }
170
- ],
171
- }
172
- };
173
-
174
- final response =
175
- DeveloperSerialization ().parseGenerateContentResponse (jsonResponse);
176
-
177
- expect (response.usageMetadata, isNotNull);
178
- expect (response.usageMetadata! .promptTokenCount, 10 );
179
- expect (response.usageMetadata! .candidatesTokenCount, 25 );
180
- expect (response.usageMetadata! .totalTokenCount, 35 );
181
- expect (response.usageMetadata! .promptTokensDetails, isNotNull);
182
- expect (response.usageMetadata! .promptTokensDetails, hasLength (1 ));
183
- expect (response.usageMetadata! .promptTokensDetails! .first.tokenCount,
184
- 10 );
185
- expect (response.usageMetadata! .candidatesTokensDetails, isNotNull);
186
- expect (response.usageMetadata! .candidatesTokensDetails, hasLength (1 ));
187
- expect (response.usageMetadata! .candidatesTokensDetails! .first.tokenCount,
188
- 25 );
189
- });
190
177
});
191
178
});
192
179
}
0 commit comments