From 40cec44c0b638eb1a10eb7ec173479b20cc6a72a Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Wed, 25 Oct 2023 08:17:58 -0600 Subject: [PATCH] test gorup --- ledger/group.go | 21 +++++++++++++++++++++ ledger/group_test.go | 13 +++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 ledger/group.go create mode 100644 ledger/group_test.go diff --git a/ledger/group.go b/ledger/group.go new file mode 100644 index 0000000..82ea816 --- /dev/null +++ b/ledger/group.go @@ -0,0 +1,21 @@ +package ledger + +import "regexp" + +type Group func(Delta) Delta + +func GroupDate(pattern string) Group { + p := regexp.MustCompile(pattern) + return func(d Delta) Delta { + d.Date = p.FindString(d.Date) + return d + } +} + +func GroupName(pattern string) Group { + p := regexp.MustCompile(pattern) + return func(d Delta) Delta { + d.Name = p.FindString(d.Name) + return d + } +} diff --git a/ledger/group_test.go b/ledger/group_test.go new file mode 100644 index 0000000..8a321bb --- /dev/null +++ b/ledger/group_test.go @@ -0,0 +1,13 @@ +package ledger + +import "testing" + +func TestGroup(t *testing.T) { + if got := GroupDate("^20..")(Delta{Date: "2021-01"}); got.Date != "2021" { + t.Error(got) + } + + if got := GroupName("^[^:]*")(Delta{Name: "a:b:c"}); got.Name != "a" { + t.Error(got) + } +}