darned floats
This commit is contained in:
@@ -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
24
ledger/deltas_test.go
Normal 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"][""][""])
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user