Files
promptkit/internal/observation/usage_accumulator_test.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)
}
}