28 lines
1.0 KiB
Go
28 lines
1.0 KiB
Go
package observation
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gitea.maximumdirect.net/eric/promptkit/internal/domain"
|
|
)
|
|
|
|
func TestUsageAccumulatorPreservesPresenceAndNoAttemptSemantics(t *testing.T) {
|
|
var empty UsageAccumulator
|
|
zero := empty.Observed()
|
|
if !zero.PromptTokens.Known || !zero.PromptTokens.Complete || zero.PromptTokens.Value != 0 ||
|
|
!zero.CacheWriteTokens.Known || !zero.CacheWriteTokens.Complete || zero.CacheWriteTokens.Value != 0 {
|
|
t.Fatalf("zero-attempt usage = %+v", zero)
|
|
}
|
|
|
|
var usage UsageAccumulator
|
|
usage.Add(domain.TokenUsage{PromptTokens: 0}, &domain.TokenUsagePresence{PromptTokens: true})
|
|
usage.Add(domain.TokenUsage{PromptTokens: 3}, &domain.TokenUsagePresence{PromptTokens: true})
|
|
observed := usage.Observed()
|
|
if observed.PromptTokens.Value != 3 || !observed.PromptTokens.Known || !observed.PromptTokens.Complete {
|
|
t.Fatalf("reported prompt usage = %+v", observed.PromptTokens)
|
|
}
|
|
if observed.CompletionTokens.Known || observed.CompletionTokens.Complete {
|
|
t.Fatalf("unreported completion usage = %+v", observed.CompletionTokens)
|
|
}
|
|
}
|