todo on Analyzer.Add complexity vs retaining existing behavior

main
bel 2023-10-15 11:49:51 -06:00
parent c023f5bbfc
commit 2b2dd862b6
1 changed files with 37 additions and 2 deletions

View File

@ -19,11 +19,21 @@ todo:
or latest? or latest?
- analyzer.go:Analyzer:Add should dedupe transactions added, but transactions.go:FromFile - analyzer.go:Analyzer:Add should dedupe transactions added, but transactions.go:FromFile
will load duplicate transactions from json file so hmmmm will load duplicate transactions from json file so hmmmm
- analyzer.go:Analzyer:Add dedupes each transaction, which is O(n**2) to compare - todo: analyzer.go:Analzyer:Add dedupes each transaction, which is O(n**2)
each input with each existing entry details: |
* BUT there's no indicator whether order of the array matters, so it's unsafe for me to sort/heapify that stuff
* OR I can store a second copy of all entries in a map, but that risks drift syncing the two
* SO I could create a UniqueTransactions struct {
transactions []Transaction
dedupes map[Transaction]struct{}
}
but that's just doubling RAM usage in a thing that sounds like it could scale infinitely over time
SO I could do a [hash(Transaction)][]*Transaction and compare just a subset. Because it's in RAM and computed live, the hash cardinality could be changed on any release
<------------------ if I have time, do this
- analyzer.go:Analyzer:Add dedupes but what is a duplicate transaction? Transactions - analyzer.go:Analyzer:Add dedupes but what is a duplicate transaction? Transactions
can be pending and then later disappear to have their date updated OR be like can be pending and then later disappear to have their date updated OR be like
pre-charges on credit cards that later disappear pre-charges on credit cards that later disappear
- analyzer.go:Analyzer:Add is not concurrency-safe
scheduled: [] scheduled: []
done: done:
- todo: hello world - todo: hello world
@ -533,3 +543,28 @@ done:
- analyzer.go:Analyzer:Add should dedupe transactions added, but transactions.go:FromFile - analyzer.go:Analyzer:Add should dedupe transactions added, but transactions.go:FromFile
will load duplicate transactions from json file so hmmmm will load duplicate transactions from json file so hmmmm
ts: Sun Oct 15 11:44:18 MDT 2023 ts: Sun Oct 15 11:44:18 MDT 2023
- todo: go test
subtasks:
- TestAnalyzer_DuplicatesExcluded
- TestAnalyzer_GroupByCategory
- TestAnalyzer_BigSpendersReport
- TestAnalyzer_TransactionsFromURLs
- TestAnalyzer_TransactionsFromURLsConcurrent
- amount.go:Rounded probably does NOT handle float precision well... it is float64
tho...
- my `go mod tidy` actually cleared `go.mod` file, probably weird localhost backwards
compatilble stuff
- transaction.go:Transaction:String not clear if FormatUSD or amount currency should
not be changed, or even what currency Amount is
- transaction.go:Transaction:Sum again doesnt care about Amount currency or vendor/vendee
drift
- analyzer.go:Analyzer:LargestTransaction doesn't specify how to break ties; stable
or latest?
- analyzer.go:Analyzer:Add should dedupe transactions added, but transactions.go:FromFile
will load duplicate transactions from json file so hmmmm
- analyzer.go:Analzyer:Add dedupes each transaction, which is O(n**2) to compare
each input with each existing entry
- analyzer.go:Analyzer:Add dedupes but what is a duplicate transaction? Transactions
can be pending and then later disappear to have their date updated OR be like
pre-charges on credit cards that later disappear
ts: Sun Oct 15 11:49:32 MDT 2023