package controlplane import "testing" func TestChargeChange(t *testing.T) { tests := []struct { name string current, previous int64 want *float64 }{ {name: "no activity", current: 0, previous: 0, want: nil}, {name: "new spend has no finite percentage", current: 25, previous: 0, want: nil}, {name: "increase", current: 125, previous: 25, want: floatPointer(400)}, {name: "decrease", current: 25, previous: 100, want: floatPointer(-75)}, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { got := chargeChange(test.current, test.previous) if test.want == nil { if got != nil { t.Fatalf("chargeChange() = %v, want nil", *got) } return } if got == nil || *got != *test.want { t.Fatalf("chargeChange() = %v, want %v", got, *test.want) } }) } } func floatPointer(value float64) *float64 { return &value }