From 38b2d4708b6b102036dfcdbdbe082286c83098e8 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 20 Jul 2019 19:05:41 +0800 Subject: [PATCH] [report-utilities] gnc:accounts-get-commodities more efficient more efficient function --- .../report/report-system/report-utilities.scm | 11 ++++--- .../test/test-report-utilities.scm | 33 ++++++++++++++++++- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/gnucash/report/report-system/report-utilities.scm b/gnucash/report/report-system/report-utilities.scm index 66f6e18f83..bb886ac274 100644 --- a/gnucash/report/report-system/report-utilities.scm +++ b/gnucash/report/report-system/report-utilities.scm @@ -129,11 +129,12 @@ construct gnc:make-gnc-monetary and use gnc:monetary->string instead.") ;; 'accounts', excluding the 'exclude-commodity'. (define (gnc:accounts-get-commodities accounts exclude-commodity) (delete exclude-commodity - (delete-duplicates - (sort (map xaccAccountGetCommodity accounts) - (lambda (a b) - (stringcommodity "GBP")))) - (list "Expenses" (list (cons 'type ACCT-TYPE-EXPENSE))) + (list "Expenses" (list (cons 'type ACCT-TYPE-EXPENSE)) + (list "Fuel")) (list "Liabilities" (list (cons 'type ACCT-TYPE-LIABILITY))) (list "Equity" (list (cons 'type ACCT-TYPE-EQUITY))) )) @@ -482,6 +484,35 @@ (gnc:get-assoc-account-balances-total account-balances))))) (teardown))) +(define (test-utility-functions) + + (define (account-lookup str) + (gnc-account-lookup-by-name + (gnc-book-get-root-account (gnc-get-current-book)) + str)) + + (test-group-with-cleanup "utility functions" + (create-test-data) + (test-equal "gnc:accounts-get-commodities" + (list "GBP" "USD") + (map gnc-commodity-get-mnemonic + (gnc:accounts-get-commodities (gnc-account-get-descendants-sorted + (gnc-get-current-root-account)) + #f))) + + (test-equal "gnc:get-current-account-tree-depth" + 5 + (gnc:get-current-account-tree-depth)) + + (test-equal "gnc:acccounts-get-all-subaccounts" + (list (account-lookup "Fuel") + (account-lookup "GBP Savings")) + (gnc:acccounts-get-all-subaccounts + (list (account-lookup "Expenses") + (account-lookup "GBP Bank")))) + + (teardown))) + (define (test-monetary-adders) (define (monetary->pair mon) (let ((comm (gnc:gnc-monetary-commodity mon))