Files

48 lines
943 B
Go
Raw Permalink Normal View History

package billing
import "testing"
func TestTokenPackMath(t *testing.T) {
// Mirrors DebitAmount pack math: ceil(tokens/1000).
cases := []struct {
tokens int
packs int
}{
{0, 0},
{1, 1},
{1000, 1},
{1001, 2},
{2500, 3},
}
for _, c := range cases {
packs := 0
if c.tokens > 0 {
packs = (c.tokens + 999) / 1000
}
got := DebitAmount(1, 1, c.tokens)
want := 1 + packs
if got != want {
t.Fatalf("tokens=%d DebitAmount=%d want %d (packs=%d)", c.tokens, got, want, packs)
}
}
}
func TestEstimateDebitMath(t *testing.T) {
// Pure pack math aligned with EstimateDebit / ConsumeCredits (costs=1).
cases := []struct {
featureTokens int
want int
}{
{0, 1}, // base feature cost only
{1, 2},
{1000, 2},
{1001, 3},
}
for _, c := range cases {
got := DebitAmount(1, 1, c.featureTokens)
if got != c.want {
t.Fatalf("tokens=%d debit=%d want %d", c.featureTokens, got, c.want)
}
}
}