package ana import ( "testing" "time" "gogs.inhome.blapointe.com/ana-ledger/ledger" ) func TestNewInterestPredictor(t *testing.T) { name := "x" curr := ledger.USD cases := map[string]struct { apy float64 given ledger.Balances delta time.Duration want ledger.Balances }{ "zero": { apy: 0, given: ledger.Balances{name: ledger.Balance{curr: 100}}, delta: time.Hour * 24 * 365, want: ledger.Balances{name: ledger.Balance{curr: 100}}, }, "100%": { apy: 1, given: ledger.Balances{name: ledger.Balance{curr: 100}}, delta: time.Hour * 24 * 365, want: ledger.Balances{name: ledger.Balance{curr: 200}}, }, } for name, d := range cases { c := d t.Run(name, func(t *testing.T) { predictor := NewInterestPredictor(name, string(curr), c.apy) got := predictor(c.given, c.delta) if got.Debug() != c.want.Debug() { t.Errorf("want\n\t%+v, got\n\t%+v", c.want, got) } }) } }