darned floats

This commit is contained in:
Bel LaPointe
2023-10-25 07:36:44 -06:00
parent 29506b5a04
commit 6cc34f7f42
3 changed files with 32 additions and 20 deletions

View File

@@ -14,7 +14,7 @@ func (deltas Deltas) Like(like ...Like) Deltas {
return result
}
func (deltas Deltas) Register() (map[string]Balances, error) {
func (deltas Deltas) Register() map[string]Balances {
dateToBalances := map[string]Balances{}
for _, delta := range deltas {
if _, ok := dateToBalances[delta.Date]; !ok {
@@ -33,10 +33,10 @@ func (deltas Deltas) Register() (map[string]Balances, error) {
}
dateToBalances[dates[i]].PushAll(dateToBalances[dates[i-1]])
}
return dateToBalances, nil
return dateToBalances
}
func (deltas Deltas) Balances() (Balances, error) {
func (deltas Deltas) Balances() Balances {
result := make(Balances)
for _, delta := range deltas {
if _, ok := result[delta.Name]; !ok {
@@ -48,5 +48,5 @@ func (deltas Deltas) Balances() (Balances, error) {
result[delta.Name][delta.Currency] += delta.Value
}
return result, nil
return result
}

24
ledger/deltas_test.go Normal file
View File

@@ -0,0 +1,24 @@
package ledger
import "testing"
func TestDeltas(t *testing.T) {
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"][""][""])
}
})
}

View File

@@ -116,20 +116,14 @@ func TestFileTestdata(t *testing.T) {
})
t.Run("balances", func(t *testing.T) {
balances, err := deltas.Balances()
if err != nil {
t.Fatal(err)
}
balances := deltas.Balances()
for k, v := range balances {
t.Logf("%s: %+v", k, v)
}
})
t.Run("balances like", func(t *testing.T) {
balances, err := deltas.Like(LikeName(`^AssetAccount:`)).Balances()
if err != nil {
t.Fatal(err)
}
balances := deltas.Like(LikeName(`^AssetAccount:`)).Balances()
for k, v := range balances {
t.Logf("%s: %+v", k, v)
}
@@ -162,20 +156,14 @@ func TestFileTestdata(t *testing.T) {
})
t.Run("balances", func(t *testing.T) {
balances, err := deltas.Balances()
if err != nil {
t.Fatal(err)
}
balances := deltas.Balances()
for k, v := range balances {
t.Logf("%s: %+v", k, v)
}
})
t.Run("balances like", func(t *testing.T) {
balances, err := deltas.Like(LikeName(`AssetAccount:Cash:Fidelity76`)).Balances()
if err != nil {
t.Fatal(err)
}
balances := deltas.Like(LikeName(`AssetAccount:Cash:Fidelity76`)).Balances()
for k, v := range balances {
t.Logf("%s: %+v", k, v)
}