@@ -292,4 +292,58 @@ public void StreamingChatToolCallUpdateWorks()
292292 Assert . That ( update . FunctionName , Is . EqualTo ( functionName ) ) ;
293293 Assert . That ( update . FunctionArgumentsUpdate , Is . EqualTo ( functionArgumentsUpdate ) ) ;
294294 }
295+
296+ [ Test ]
297+ public void ChatMessageAnnotationWorks ( )
298+ {
299+ int startIndex = 5 ;
300+ int endIndex = 10 ;
301+ Uri webResourceUri = new Uri ( "https://example.com" ) ;
302+ string webResourceTitle = "Example Resource" ;
303+
304+ ChatMessageAnnotation annotation = ChatModelFactory . ChatMessageAnnotation (
305+ startIndex : startIndex ,
306+ endIndex : endIndex ,
307+ webResourceUri : webResourceUri ,
308+ webResourceTitle : webResourceTitle ) ;
309+
310+ Assert . That ( annotation . StartIndex , Is . EqualTo ( startIndex ) ) ;
311+ Assert . That ( annotation . EndIndex , Is . EqualTo ( endIndex ) ) ;
312+ Assert . That ( annotation . WebResourceUri , Is . EqualTo ( webResourceUri ) ) ;
313+ Assert . That ( annotation . WebResourceTitle , Is . EqualTo ( webResourceTitle ) ) ;
314+ }
315+
316+ [ Test ]
317+ public void ChatInputTokenUsageDetailsWorks ( )
318+ {
319+ int audioTokenCount = 25 ;
320+ int cachedTokenCount = 75 ;
321+
322+ ChatInputTokenUsageDetails details = ChatModelFactory . ChatInputTokenUsageDetails (
323+ audioTokenCount : audioTokenCount ,
324+ cachedTokenCount : cachedTokenCount ) ;
325+
326+ Assert . That ( details . AudioTokenCount , Is . EqualTo ( audioTokenCount ) ) ;
327+ Assert . That ( details . CachedTokenCount , Is . EqualTo ( cachedTokenCount ) ) ;
328+ }
329+
330+ [ Test ]
331+ public void ChatOutputTokenUsageDetailsWorks ( )
332+ {
333+ int reasoningTokenCount = 30 ;
334+ int audioTokenCount = 15 ;
335+ int acceptedPredictionTokenCount = 5 ;
336+ int rejectedPredictionTokenCount = 2 ;
337+
338+ ChatOutputTokenUsageDetails details = ChatModelFactory . ChatOutputTokenUsageDetails (
339+ reasoningTokenCount : reasoningTokenCount ,
340+ audioTokenCount : audioTokenCount ,
341+ acceptedPredictionTokenCount : acceptedPredictionTokenCount ,
342+ rejectedPredictionTokenCount : rejectedPredictionTokenCount ) ;
343+
344+ Assert . That ( details . ReasoningTokenCount , Is . EqualTo ( reasoningTokenCount ) ) ;
345+ Assert . That ( details . AudioTokenCount , Is . EqualTo ( audioTokenCount ) ) ;
346+ Assert . That ( details . AcceptedPredictionTokenCount , Is . EqualTo ( acceptedPredictionTokenCount ) ) ;
347+ Assert . That ( details . RejectedPredictionTokenCount , Is . EqualTo ( rejectedPredictionTokenCount ) ) ;
348+ }
295349}
0 commit comments