Skip to content

Commit dd54879

Browse files
committed
Add token details testing to existing tests instead
1 parent aa54fb5 commit dd54879

File tree

1 file changed

+21
-34
lines changed

1 file changed

+21
-34
lines changed

packages/firebase_ai/firebase_ai/test/developer_api_test.dart

Lines changed: 21 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ void main() {
3939
'candidatesTokenCount': 5,
4040
'totalTokenCount': 15,
4141
'thoughtsTokenCount': 3,
42+
'promptTokensDetails': [
43+
{'modality': 'TEXT', 'tokenCount': 10}
44+
],
45+
'candidatesTokensDetails': [
46+
{'modality': 'TEXT', 'tokenCount': 25}
47+
],
4248
}
4349
};
4450
final response =
@@ -48,6 +54,15 @@ void main() {
4854
expect(response.usageMetadata!.candidatesTokenCount, 5);
4955
expect(response.usageMetadata!.totalTokenCount, 15);
5056
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);
5166
});
5267

5368
test('parses usageMetadata when thoughtsTokenCount is missing', () {
@@ -68,6 +83,12 @@ void main() {
6883
'candidatesTokenCount': 5,
6984
'totalTokenCount': 15,
7085
// thoughtsTokenCount is missing
86+
'promptTokensDetails': [
87+
{'modality': 'TEXT', 'tokenCount': 10}
88+
],
89+
'candidatesTokensDetails': [
90+
{'modality': 'TEXT', 'tokenCount': 25}
91+
],
7192
}
7293
};
7394
final response =
@@ -153,40 +174,6 @@ void main() {
153174
expect((part as InlineDataPart).mimeType, 'application/octet-stream');
154175
expect(part.bytes, inlineData);
155176
});
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-
});
190177
});
191178
});
192179
}

0 commit comments

Comments
 (0)