From f41ab4cb53b1c014a7a203e3fc3f64cf327b9c66 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Wed, 25 Oct 2023 12:54:36 -0600 Subject: [PATCH] tdd stub bpis --- ledger/bpi.go | 17 +++++ ledger/bpi_test.go | 161 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 ledger/bpi.go create mode 100644 ledger/bpi_test.go diff --git a/ledger/bpi.go b/ledger/bpi.go new file mode 100644 index 0000000..16a7ac0 --- /dev/null +++ b/ledger/bpi.go @@ -0,0 +1,17 @@ +package ledger + +import "io" + +type BPIs string + +type BPI map[string]float64 + +func NewBPIs(p string) (BPIs, error) { + bpis := BPIs(p) + _, err := bpis.values() + return bpis, err +} + +func (bpis BPIs) values() (map[Currency]BPI, error) { + return nil, io.EOF +} diff --git a/ledger/bpi_test.go b/ledger/bpi_test.go new file mode 100644 index 0000000..7a7a437 --- /dev/null +++ b/ledger/bpi_test.go @@ -0,0 +1,161 @@ +package ledger + +import ( + "os" + "path" + "testing" +) + +func TestBPIs(t *testing.T) { + d := t.TempDir() + p := path.Join(d, "bpi.dat") + os.WriteFile(p, []byte(` +P 2019-08-08 09:58:35 GME $151.77 +P 2021-08-22 07:02:46 GME $159.30 +P 2021-08-24 11:05:51 GME $164.89 +P 2021-08-25 12:27:03 GME $210.29 +P 2021-08-25 15:43:06 GME $210.29 +P 2021-08-26 12:22:37 GME $199.65 +P 2021-08-30 07:11:21 GME $204.95 +P 2021-08-30 07:11:33 GME $204.95 +P 2021-09-01 13:32:01 GME $218.24 +P 2021-09-08 08:56:22 GME $199.00 +P 2021-09-10 09:21:08 GME $199.18 +P 2021-09-21 10:37:09 GME $192.20 +P 2021-09-29 06:41:32 GME $178.60 +P 2021-10-25 19:55:43 GME $173.97 +P 2021-10-27 17:29:22 GME $173.51 +P 2021-10-28 21:26:18 GME $182.85 +P 2021-11-06 13:32:31 GME $213.25 +P 2021-11-09 09:13:39 GME $218.64 +P 2021-11-09 09:18:24 GME $218.64 +P 2021-11-23 10:13:23 GME $247.55 +P 2021-12-09 13:57:02 GME $173.65 +P 2021-12-09 13:58:38 GME $173.65 +P 2022-03-07 14:16:43 GME $111.66 +P 2022-03-17 11:22:43 GME $86.86 +P 2022-03-24 15:46:46 GME $142.38 +P 2022-03-30 09:31:32 GME $179.90 +P 2022-04-02 15:32:55 GME $165.00 +P 2022-04-02 15:33:16 GME $165.00 +P 2022-04-02 15:33:18 GME $165.00 +P 2022-04-02 15:34:52 GME $165.00 +P 2022-04-02 15:36:31 GME $165.00 +P 2022-04-02 15:36:44 GME $165.00 +P 2022-04-02 15:37:14 GME $165.00 +P 2022-04-02 15:49:49 GME $165.00 +P 2022-04-02 15:53:54 GME $165.00 +P 2022-04-02 15:56:34 GME $165.00 +P 2022-04-02 15:56:51 GME $165.00 +P 2022-04-02 15:57:48 GME $165.00 +P 2022-04-02 15:57:57 GME $165.00 +P 2022-04-02 15:58:13 GME $165.00 +P 2022-04-02 15:59:48 GME $165.00 +P 2022-04-02 16:01:35 GME $165.00 +P 2022-04-02 16:04:25 GME $165.00 +P 2022-04-02 16:04:31 GME $165.00 +P 2022-04-02 16:07:43 GME $165.00 +P 2022-04-02 16:07:47 GME $165.00 +P 2022-04-02 16:12:41 GME $165.00 +P 2022-04-02 16:13:17 GME $165.00 +P 2022-04-02 16:13:29 GME $165.00 +P 2022-04-02 16:18:19 GME $165.00 +P 2022-04-02 16:19:01 GME $165.00 +P 2022-04-06 08:12:08 GME $153.59 +P 2022-04-24 13:29:11 GME $138.22 +P 2022-04-26 12:37:28 GME $135.94 +P 2022-04-26 12:37:53 GME $135.94 +P 2022-04-26 12:38:15 GME $135.94 +P 2022-04-26 12:40:24 GME $135.94 +P 2022-04-26 12:40:26 GME $135.94 +P 2022-05-06 08:01:16 GME $135.94 +P 2022-05-06 08:01:54 GME $135.94 +P 2022-05-06 08:02:11 GME $135.94 +P 2022-05-11 16:11:33 GME $135.94 +P 2022-05-17 11:06:12 GME $135.94 +P 2022-05-17 12:54:19 GME $135.94 +P 2022-05-18 07:43:33 GME $135.94 +P 2022-05-27 12:11:19 GME $135.94 +P 2022-05-27 12:12:45 GME $135.94 +P 2022-06-04 15:09:21 GME $135.94 +P 2022-06-04 15:18:50 GME $135.94 +P 2022-06-13 15:46:58 GME $118.25 +P 2022-06-14 18:35:40 GME $118.25 +P 2022-06-19 09:51:51 GME $118.25 +P 2022-06-21 21:44:19 GME $118.25 +P 2022-06-25 10:15:35 GME $118.25 +P 2022-07-06 10:30:13 GME $120.23 +P 2022-07-06 10:30:34 GME $120.23 +P 2022-07-07 14:49:14 GME $120.23 +P 2022-07-07 14:50:14 GME $120.23 +P 2022-07-13 11:10:49 GME $120.23 +P 2022-08-02 10:14:48 GME $120.23 +P 2022-08-03 15:56:22 GME $120.23 +P 2022-08-10 16:11:26 GME $120.23 +P 2022-08-13 10:55:37 GME $120.23 +P 2022-08-30 15:16:05 GME $29.84 +P 2022-08-30 15:20:02 GME $29.84 +P 2022-08-31 08:48:40 GME $29.84 +P 2022-09-06 15:40:03 GME $25.14 +P 2022-09-11 10:34:00 GME $28.92 +P 2022-09-24 09:25:43 GME $28.92 +P 2022-09-25 09:34:50 GME $28.92 +P 2022-09-25 09:34:58 GME $28.92 +P 2022-09-25 09:35:05 GME $28.92 +P 2022-09-25 09:35:22 GME $28.92 +P 2022-09-25 09:36:27 GME $28.92 +P 2022-09-25 10:45:01 GME $28.92 +P 2022-09-25 10:46:19 GME $28.92 +P 2022-09-25 10:47:04 GME $28.92 +P 2022-10-01 09:21:11 GME $28.92 +P 2022-10-25 21:38:31 GME $28.92 +P 2022-11-06 12:06:23 GME $28.92 +P 2022-11-27 07:22:51 GME $28.92 +P 2022-12-03 10:15:51 GME $28.92 +P 2022-12-03 10:16:14 GME $28.92 +P 2022-12-03 10:16:50 GME $28.92 +P 2022-12-09 13:53:17 GME $28.92 +P 2022-12-15 08:12:13 GME $28.92 +P 2022-12-15 16:42:12 GME $20.58 +P 2022-12-19 01:50:26 GME $20.58 +P 2022-12-23 23:18:00 GME $20.58 +P 2022-12-31 14:13:53 GME $20.58 +P 2023-01-15 08:29:13 GME $20.58 +P 2023-02-03 09:00:53 GME $20.58 +P 2023-02-07 06:21:34 GME $20.58 +P 2023-02-15 14:18:12 GME $19.87 +P 2023-03-04 09:45:23 GME $19.87 +P 2023-04-20 08:29:52 GME $19.87 +P 2023-04-28 11:32:48 GME $19.87 +P 2023-05-31 19:48:34 GME $19.87 +P 2023-05-31 19:56:07 GME $19.87 +P 2023-06-03 06:40:16 GME $19.87 +P 2023-06-24 10:10:34 GME $19.87 +P 2023-07-08 09:20:10 GME $22.71 +P 2023-07-21 19:12:42 GME $22.71 +P 2023-07-21 19:13:37 GME $22.71 +P 2023-07-30 10:10:44 GME $22.71 +P 2023-08-03 19:46:01 GME $20.93 +P 2023-08-03 19:46:27 GME $20.93 +P 2023-08-19 09:17:49 GME $20.93 +P 2023-08-19 09:17:59 GME $20.93 +P 2023-09-08 21:50:52 GME $20.93 +P 2023-09-08 21:52:14 GME $20.93 +P 2023-09-12 14:18:17 GME $20.93 +P 2023-09-14 07:33:55 GME $20.93 +P 2023-09-16 11:02:49 GME $20.93 +P 2023-09-16 11:07:45 GME $20.93 +P 2023-09-18 11:06:04 GME $18.22 +P 2023-09-23 07:05:07 GME $17.18 +P 2023-10-05 16:28:36 GME $17.18 +P 2023-10-17 16:41:30 GME $17.18 +P 2023-10-22 07:33:56 GME $17.18 + `), os.ModePerm) + + got, err := NewBPIs(p) + if err != nil { + t.Fatal(err) + } + + t.Log(got) +}