ana-ledger/ledger/deltas_test.go

68 lines
1.3 KiB
Go

package ledger
import "testing"
func TestDeltas(t *testing.T) {
t.Run("Groups", func(t *testing.T) {
deltas := Deltas{
{Name: "a1"},
{Name: "b1"},
{Name: "b2"},
{Name: "b3"},
}
deltas = deltas.Group(GroupName("^."))
if len(deltas) != 4 {
t.Error(len(deltas))
}
if deltas[0].Name != "a" {
t.Error(deltas[0].Name)
}
if deltas[1].Name != "b" {
t.Error(deltas[1].Name)
}
if deltas[2].Name != "b" {
t.Error(deltas[2].Name)
}
if deltas[3].Name != "b" {
t.Error(deltas[3].Name)
}
})
t.Run("balances", func(t *testing.T) {
deltas := Deltas{
{Name: "a", Value: 0},
{Name: "b", Value: 1},
{Name: "b", Value: -.999999999999999999999999},
{Name: "b", Value: 1.3},
}
balances := deltas.Balances()
if len(balances) != 1 {
t.Error(len(balances), balances)
}
if balances["b"][""] != 1.3 {
t.Error(balances["b"])
}
})
t.Run("register", func(t *testing.T) {
deltas := Deltas{
{Date: "a", Value: 0.1},
{Date: "a", Value: 2.2},
{Date: "b", Value: 4.3},
}
got := deltas.Register()
t.Logf("%+v", got)
if len(got) != 2 {
t.Error(len(got))
}
if int(10*got["a"][""][""]) != 23 {
t.Error(got["a"][""][""])
}
if int(10*got["b"][""][""]) != 66 {
t.Error(got["b"][""][""])
}
})
}