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) } }