separate unmatched list
Some checks failed
cicd / ci (push) Failing after 1m35s

This commit is contained in:
bel
2026-03-21 23:32:11 -06:00
parent ca365ad39c
commit d743b6dbd0

View File

@@ -410,6 +410,7 @@ func Main() {
})
}
matched := map[string]struct{}{}
matchies := func(deltas ledger.Deltas, delta ledger.Delta) (ledger.Deltas, []string) {
deltas = slices.Clone(deltas)
dates := append([]string{delta.Date}, delta.OtherDates...)
@@ -422,9 +423,16 @@ func Main() {
matches = matches.Like(func(delta ledger.Delta) bool {
return delta.Currency == ledger.USD
})
return matches.Like(func(d2 ledger.Delta) bool {
matches = matches.Like(func(d2 ledger.Delta) bool {
return fmt.Sprintf("%.2f", d2.Value) == fmt.Sprintf("%.2f", delta.Value)
}), dates
})
for _, match := range matches {
if _, ok := matched[match.ID()]; !ok {
matched[match.ID()] = struct{}{}
break
}
}
return matches, dates
}
datesMatched := []string{}
@@ -466,6 +474,17 @@ func Main() {
fmt.Printf("unique to ledger | %s %s %.2f\n", strings.Join(dates, "="), delta.Description, delta.Value)
}
}
for _, delta := range deltas {
if _, ok := matched[delta.ID()]; !ok {
fmt.Printf("unmatched ledger | %s %s %.2f\n", delta.Date, delta.Description, delta.Value)
}
}
for _, delta := range csvDeltas {
if _, ok := matched[delta.ID()]; !ok {
fmt.Printf("unmatched csv | %s %s %.2f\n", delta.Date, delta.Description, delta.Value)
}
}
default:
log.Fatalf("unknown command %q", positional[0])
}