diff --git a/Makefile b/Makefile index 9fadaa18e..98d045619 100644 --- a/Makefile +++ b/Makefile @@ -396,11 +396,23 @@ unittest-interpreted: # run functional tests, requires shelltestrunner >= 0.9 from hackage # 16 threads sometimes gives "commitAndReleaseBuffer: resource vanished (Broken pipe)" here but seems harmless -functest: bin/hledgerdev +functest: bin/hledgerdev tests/addons/hledger-addon @echo functional tests: - @($(SHELLTEST) tests -- --threads=16 --hide-successes \ + @($(SHELLTEST) --execdir tests -- --threads=16 --hide-successes \ && echo $@ PASSED) || echo $@ FAILED +# generate dummy add-ons for testing (hledger-addon the rest) +ADDONEXTS=pl py rb sh hs lhs rkt exe com bat +tests/addons/hledger-addon: + rm -rf tests/addons/hledger-* + printf '#!/bin/sh\necho add-on: $$0\necho args: $$*\n' >tests/ADDONS/hledger-addon + for E in '' $(ADDONEXTS); do \ + cp tests/ADDONS/hledger-addon tests/ADDONS/hledger-addon.$$E; done + for F in addon. addon2 addon2.hs addon3.exe addon3.lhs addon4.exe add reg; do \ + cp tests/ADDONS/hledger-addon tests/ADDONS/hledger-$$F; done + mkdir tests/ADDONS/hledger-addondir + chmod +x tests/ADDONS/hledger-* + # run unit and functional tests with a specific GHC version # some functional tests (add, include, read-csv..) have bin/hledgerdev hard coded - might need to symlink it test-ghc-%: # bin/hledgerdev.ghc-$* @@ -558,18 +570,6 @@ data/10000x10000x10.journal: tools/generatejournal data/100000x1000x10.journal: tools/generatejournal tools/generatejournal 100000 1000 10 >$@ -ADDONS=tests/addons -ADDONEXTS=pl py rb sh hs lhs rkt exe com bat -addons: - rm -rf $(ADDONS)/hledger-* - printf '#!/bin/sh\necho add-on: $$0\necho args: $$*\n' >$(ADDONS)/hledger-addon - for E in '' $(ADDONEXTS); do \ - cp $(ADDONS)/hledger-addon $(ADDONS)/hledger-addon.$$E; done - for F in addon. addon2 addon2.hs addon3.exe addon3.lhs addon4.exe add reg; do \ - cp $(ADDONS)/hledger-addon $(ADDONS)/hledger-$$F; done - mkdir $(ADDONS)/hledger-addondir - chmod +x $(ADDONS)/hledger-* - ###################################################################### # DOCUMENTATION diff --git a/tests/add.test b/tests/add/add.test similarity index 100% rename from tests/add.test rename to tests/add/add.test diff --git a/tests/addons/README b/tests/addons/README deleted file mode 100644 index 52da21517..000000000 --- a/tests/addons/README +++ /dev/null @@ -1 +0,0 @@ -Add-on scripts to test add-on detection (when this directory is added to PATH). diff --git a/tests/addons/addons.test b/tests/addons/addons.test new file mode 100644 index 000000000..7d395580a --- /dev/null +++ b/tests/addons/addons.test @@ -0,0 +1,17 @@ +# "make test" sets up the dummy add-on scripts required for these tests + +# 14. flags after an add-command are handled by the add-on +PATH=$PATH:. hledgerdev addon --help +>>> /hledger-addon/ +>>>=0 + +# 15. add-on flags which are not also defined in the main executable are a problem +PATH=$PATH:. hledgerdev addon --addonflag +>>>2 /Unknown flag: --addonflag/ +>>>=1 + +# 16. hledger main executable ignores anything after -- (and hides the -- from the add-on) +PATH=$PATH:. hledgerdev addon --help -- --addonflag +>>> /hledger-addon/ +>>>=0 + diff --git a/tests/87-wrong-balance.test b/tests/balance/87.test similarity index 100% rename from tests/87-wrong-balance.test rename to tests/balance/87.test diff --git a/tests/balance-sample.test b/tests/balance/balance.test similarity index 86% rename from tests/balance-sample.test rename to tests/balance/balance.test index 76c8097ba..3b1668bd3 100644 --- a/tests/balance-sample.test +++ b/tests/balance/balance.test @@ -1,5 +1,5 @@ # 1. -hledgerdev -f data/sample.journal balance +hledgerdev -f sample.journal balance >>> $-1 assets $1 bank:saving @@ -16,7 +16,7 @@ hledgerdev -f data/sample.journal balance >>>=0 # 2. -hledgerdev -f data/sample.journal balance o +hledgerdev -f sample.journal balance o >>> $1 expenses:food $-2 income diff --git a/tests/balance-date2.test b/tests/balance/date2.test similarity index 100% rename from tests/balance-date2.test rename to tests/balance/date2.test diff --git a/tests/balance-depth.test b/tests/balance/depth.test similarity index 68% rename from tests/balance-depth.test rename to tests/balance/depth.test index c27fed4cc..7b970c498 100644 --- a/tests/balance-depth.test +++ b/tests/balance/depth.test @@ -1,5 +1,5 @@ # 1 -hledgerdev -f data/sample.journal balance --no-total --depth 1 +hledgerdev -f sample.journal balance --no-total --depth 1 >>> $-1 assets $2 expenses diff --git a/tests/balance-flat.test b/tests/balance/flat.test similarity index 100% rename from tests/balance-flat.test rename to tests/balance/flat.test diff --git a/tests/balance-custom-format.test b/tests/balance/format.test similarity index 83% rename from tests/balance-custom-format.test rename to tests/balance/format.test index 05b53dff6..bf4005284 100644 --- a/tests/balance-custom-format.test +++ b/tests/balance/format.test @@ -1,4 +1,4 @@ -hledgerdev -f data/sample.journal balance --format="%30(account) %-.20(total)" +hledgerdev -f sample.journal balance --format="%30(account) %-.20(total)" >>> assets $-1 bank:saving $1 diff --git a/tests/balance-multicol.test b/tests/balance/intervals.test similarity index 87% rename from tests/balance-multicol.test rename to tests/balance/intervals.test index ccaf7074d..1a94f595c 100644 --- a/tests/balance-multicol.test +++ b/tests/balance/intervals.test @@ -1,7 +1,7 @@ # multi-column balance reports # 1. Here are the postings used in most tests below: -hledgerdev -f data/balance-multicol.journal register +hledgerdev -f balance-multicol.journal register >>> 2012/12/31 (assets:checking) 10 10 2013/01/01 (assets:checking) 1 11 @@ -12,7 +12,7 @@ hledgerdev -f data/balance-multicol.journal register >>>=0 # 2. A period balance (flow) report. --no-total also works but isn't pretty. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --no-total +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --no-total >>> Change of balance (flow): @@ -27,7 +27,7 @@ Change of balance (flow): >>>=0 # 3. With --empty, includes leading/trailing empty periods -#hledgerdev -f data/balance-multicol.journal balance -p 'quarterly in 2013' --empty +#hledgerdev -f balance-multicol.journal balance -p 'quarterly in 2013' --empty hledgerdev -f - balance -p 'quarterly in 2013' --empty <<< 2012/12/31 @@ -49,7 +49,7 @@ Change of balance (flow): # 4. A cumulative ending balance report. Column totals are the sum of # the highest-level displayed accounts (here, assets). -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --cumulative +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --cumulative >>> Ending balance (cumulative): @@ -66,7 +66,7 @@ Ending balance (cumulative): # 5. With the assets:cash account excluded. As with a single-column # balance --flat report, or ledger's balance --flat, assets' balance # includes the displayed subaccount and not the excluded one. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --cumulative not:cash +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --cumulative not:cash >>> Ending balance (cumulative): @@ -80,7 +80,7 @@ Ending balance (cumulative): >>>=0 # 6. A historical ending balance report. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --historical +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --historical >>> Ending balance (historical): @@ -96,7 +96,7 @@ Ending balance (historical): # 7. With top-level accounts excluded. As always, column totals are the sum of # the highest-level displayed accounts, now assets:cash and assets:checking. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' not:assets$ +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' not:assets$ >>> Change of balance (flow): @@ -110,7 +110,7 @@ Change of balance (flow): >>>=0 # 8. cumulative: -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' not:assets$ --cumulative +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' not:assets$ --cumulative >>> Ending balance (cumulative): @@ -124,7 +124,7 @@ Ending balance (cumulative): >>>=0 # 9. historical -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --historical +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --historical >>> Ending balance (historical): @@ -141,7 +141,7 @@ Ending balance (historical): # --depth # 10. A flow report with depth limiting. The depth limit aggregates the three accounts as "assets". -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --depth 1 +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 >>> Change of balance (flow): @@ -154,7 +154,7 @@ Change of balance (flow): >>>=0 # 11. As above, but postings in the top-level assets account have been excluded. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --depth 1 assets: +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 assets: >>> Change of balance (flow): @@ -167,7 +167,7 @@ Change of balance (flow): >>>=0 # 12. A cumulative balance report with depth limiting. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --depth 1 --cumulative +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 --cumulative >>> Ending balance (cumulative): @@ -180,7 +180,7 @@ Ending balance (cumulative): >>>=0 # 13. A historical balance report with depth limiting. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --depth 1 --historical +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 --historical >>> Ending balance (historical): @@ -193,7 +193,7 @@ Ending balance (historical): >>>=0 # 14. The three multicol balance report types again, this time with --tree -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --tree +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --tree >>> Change of balance (flow): @@ -208,7 +208,7 @@ Change of balance (flow): >>>=0 # 15. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --cumulative --tree +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --cumulative --tree >>> Ending balance (cumulative): @@ -223,7 +223,7 @@ Ending balance (cumulative): >>>=0 # 16. -hledgerdev -f data/balance-multicol.journal balance -p 'monthly in 2013' --historical --tree +hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --historical --tree >>> Ending balance (historical): diff --git a/tests/balance-eliding.test b/tests/balance/no-total-no-elide.test similarity index 100% rename from tests/balance-eliding.test rename to tests/balance/no-total-no-elide.test diff --git a/tests/balance-precision.test b/tests/balance/precision.test similarity index 100% rename from tests/balance-precision.test rename to tests/balance/precision.test diff --git a/tests/balance/sample.journal b/tests/balance/sample.journal new file mode 120000 index 000000000..8f14a625d --- /dev/null +++ b/tests/balance/sample.journal @@ -0,0 +1 @@ +../../data/sample.journal \ No newline at end of file diff --git a/tests/command-line.test b/tests/cli/cli.test similarity index 89% rename from tests/command-line.test rename to tests/cli/cli.test index bda22b455..4fe235f6a 100644 --- a/tests/command-line.test +++ b/tests/cli/cli.test @@ -131,20 +131,3 @@ hledgerdev register -f/dev/null --alias=somealiases --rules-file -? -h --help -- >>> /^register \[OPTIONS\]/ >>>=0 -# do "make addons" to set up for these: - -# 14. flags after an add-command are handled by the add-on -PATH=$PATH:tests/addons hledgerdev addon --help ->>> /hledger-addon/ ->>>=0 - -# 15. add-on flags which are not also defined in the main executable are a problem -PATH=$PATH:tests/addons hledgerdev addon --addonflag ->>>2 /Unknown flag: --addonflag/ ->>>=1 - -# 16. hledger main executable ignores anything after -- (and hides the -- from the add-on) -PATH=$PATH:tests/addons hledgerdev addon --help -- --addonflag ->>> /hledger-addon/ ->>>=0 - diff --git a/tests/no-such-file.test b/tests/cli/no-such-file.test similarity index 100% rename from tests/no-such-file.test rename to tests/cli/no-such-file.test diff --git a/tests/filter-patterns.test b/tests/cli/query-args.test similarity index 100% rename from tests/filter-patterns.test rename to tests/cli/query-args.test diff --git a/tests/read-csv.test b/tests/csv/read.test similarity index 100% rename from tests/read-csv.test rename to tests/csv/read.test diff --git a/tests/decimals-balance-failure.test b/tests/decimals-balance-failure.test deleted file mode 100644 index e2a542982..000000000 --- a/tests/decimals-balance-failure.test +++ /dev/null @@ -1,10 +0,0 @@ -# b amount with no decimal places, in middle, causes balance failure (0.6.1) -hledgerdev -f - print -<<< -2009/1/1 x - a $1.25 - b $-1 - c $-0.25 - ->>>2 ->>>=0 diff --git a/tests/eliding-print.test.notimplemented b/tests/eliding-print.test.notimplemented deleted file mode 100644 index 271d4e84c..000000000 --- a/tests/eliding-print.test.notimplemented +++ /dev/null @@ -1,9 +0,0 @@ -hledgerdev -f- print -<<< -2009/1/1 x - aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa €1 - b ->>> -2009/01/01 x - aa:aaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa - b diff --git a/tests/eliding-register.test.notimplemented b/tests/eliding-register.test.notimplemented deleted file mode 100644 index bffa2351a..000000000 --- a/tests/eliding-register.test.notimplemented +++ /dev/null @@ -1,7 +0,0 @@ -hledgerdev -f- register -<<< -2009/1/1 x aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa €1 - b ->>> -2009/01/01 x aa:aa:aaaaaaaaaaaaaaaa €1 €1 - b €-1 0 diff --git a/tests/balance-assertions.test b/tests/journal/balance-assertions.test similarity index 100% rename from tests/balance-assertions.test rename to tests/journal/balance-assertions.test diff --git a/tests/parse-blank-description.test b/tests/journal/blank-description.test similarity index 100% rename from tests/parse-blank-description.test rename to tests/journal/blank-description.test diff --git a/tests/comments.test b/tests/journal/comments.test similarity index 100% rename from tests/comments.test rename to tests/journal/comments.test diff --git a/tests/parse-dates.test b/tests/journal/dates.test similarity index 100% rename from tests/parse-dates.test rename to tests/journal/dates.test diff --git a/tests/default-commodity.test b/tests/journal/default-commodity.test similarity index 100% rename from tests/default-commodity.test rename to tests/journal/default-commodity.test diff --git a/tests/include.test b/tests/journal/include.test similarity index 100% rename from tests/include.test rename to tests/journal/include.test diff --git a/tests/parens-in-account-name.test b/tests/journal/parens-in-account-name.test similarity index 100% rename from tests/parens-in-account-name.test rename to tests/journal/parens-in-account-name.test diff --git a/tests/parse-ledger-sample.test b/tests/journal/parse-sample-journal.test similarity index 100% rename from tests/parse-ledger-sample.test rename to tests/journal/parse-sample-journal.test diff --git a/tests/unbalanced.test b/tests/journal/unbalanced.test similarity index 100% rename from tests/unbalanced.test rename to tests/journal/unbalanced.test diff --git a/tests/aliases.test b/tests/misc/aliases.test similarity index 100% rename from tests/aliases.test rename to tests/misc/aliases.test diff --git a/tests/amount-layout-vertical.test b/tests/misc/amount-rendering.test similarity index 90% rename from tests/amount-layout-vertical.test rename to tests/misc/amount-rendering.test index d5cf3b997..5a5aeb244 100644 --- a/tests/amount-layout-vertical.test +++ b/tests/misc/amount-rendering.test @@ -46,7 +46,21 @@ hledgerdev -f - balance 0 >>>=0 -# 4. mixed amounts with prices +# 4. a zero amount is always displayed as just "0", regardless of any commodity/decimal places/price (like ledger) +# +hledgerdev -f- print --empty +<<< +2010/3/1 x + a $0.00 @ 3EUR + b +>>> +2010/03/01 x + a 0 + b 0 + +>>>=0 + +# 5. mixed amounts with prices # XXX # hledgerdev -f - print # <<< diff --git a/tests/commodities.test b/tests/misc/commodities.test similarity index 100% rename from tests/commodities.test rename to tests/misc/commodities.test diff --git a/tests/precision.test b/tests/misc/precision.test similarity index 100% rename from tests/precision.test rename to tests/misc/precision.test diff --git a/tests/prices.test b/tests/misc/prices.test similarity index 100% rename from tests/prices.test rename to tests/misc/prices.test diff --git a/tests/status.test b/tests/misc/query-status.test similarity index 100% rename from tests/status.test rename to tests/misc/query-status.test diff --git a/tests/tags.test b/tests/misc/tags.test similarity index 100% rename from tests/tags.test rename to tests/misc/tags.test diff --git a/tests/virtual.test b/tests/misc/virtual-postings.test similarity index 100% rename from tests/virtual.test rename to tests/misc/virtual-postings.test diff --git a/tests/unicode-account-matching.test b/tests/nonascii/unicode-account-matching.test similarity index 100% rename from tests/unicode-account-matching.test rename to tests/nonascii/unicode-account-matching.test diff --git a/tests/unicode-balance.test b/tests/nonascii/unicode-balance.test similarity index 100% rename from tests/unicode-balance.test rename to tests/nonascii/unicode-balance.test diff --git a/tests/unicode-description-matching.test b/tests/nonascii/unicode-description-matching.test similarity index 100% rename from tests/unicode-description-matching.test rename to tests/nonascii/unicode-description-matching.test diff --git a/tests/unicode-error-message.test b/tests/nonascii/unicode-error-message.test similarity index 100% rename from tests/unicode-error-message.test rename to tests/nonascii/unicode-error-message.test diff --git a/tests/unicode-print.test b/tests/nonascii/unicode-print.test similarity index 100% rename from tests/unicode-print.test rename to tests/nonascii/unicode-print.test diff --git a/tests/unicode-register.test b/tests/nonascii/unicode-register.test similarity index 100% rename from tests/unicode-register.test rename to tests/nonascii/unicode-register.test diff --git a/tests/null-accountname-component.test b/tests/null-accountname-component.test deleted file mode 100644 index c8859305b..000000000 --- a/tests/null-accountname-component.test +++ /dev/null @@ -1,7 +0,0 @@ -# hledgerdev -f - balance -E -# <<< -# 2009/1/1 x -# a: 13 -# b -# >>>2 /accountname seems ill-formed: a:/ -# >>>= 1 diff --git a/tests/parse-posting-error-pos.test b/tests/parse-posting-error-pos.test deleted file mode 100644 index e9a5e7587..000000000 --- a/tests/parse-posting-error-pos.test +++ /dev/null @@ -1,13 +0,0 @@ -# should give an accurate parse error location -# hledgerdev -f- stat -# <<< -# 2010/1/1 x -# a 1 -# b - -# 2010/1/1 y -# c: 1 -# d - -# >>>2 /line 6, column 5/ -# >>>= 1 diff --git a/tests/print-date2.test b/tests/print/date2.test similarity index 100% rename from tests/print-date2.test rename to tests/print/date2.test diff --git a/tests/print-long-account.test b/tests/print/long-account-name.test similarity index 100% rename from tests/print-long-account.test rename to tests/print/long-account-name.test diff --git a/tests/print-desc-pattern.test b/tests/print/query-desc.test similarity index 100% rename from tests/print-desc-pattern.test rename to tests/print/query-desc.test diff --git a/tests/print-acct-pattern.test b/tests/print/query-not-acct.test similarity index 100% rename from tests/print-acct-pattern.test rename to tests/print/query-not-acct.test diff --git a/tests/register-date2.test b/tests/register/date2.test similarity index 100% rename from tests/register-date2.test rename to tests/register/date2.test diff --git a/tests/register-depth.test b/tests/register/depth.test similarity index 100% rename from tests/register-depth.test rename to tests/register/depth.test diff --git a/tests/register-intervals.test b/tests/register/intervals.test similarity index 100% rename from tests/register-intervals.test rename to tests/register/intervals.test diff --git a/tests/stats.test b/tests/stats/stats.test similarity index 100% rename from tests/stats.test rename to tests/stats/stats.test diff --git a/tests/timelog-stack-overflow.test b/tests/timelog-stack-overflow.test deleted file mode 100644 index 1b65b01a7..000000000 --- a/tests/timelog-stack-overflow.test +++ /dev/null @@ -1,13 +0,0 @@ -# this gave a stack space overflow error with 0.8-0.9 due to infinite -# recursion in Posting and Transaction's equality tests: -hledgerdev -f - balance -<<< -i 2010/1/1 09:00:00 a:b -o 2010/1/1 09:03:00 ->>>=0 -# incidentally this didn't trigger it.. go figure -#hledgerdev -f - balance -#<<< -#i 2010/1/1 09:00:00 a:b -#o 2010/1/1 09:02:00 -#>>>=0 diff --git a/tests/timelog.test b/tests/timelog/timelog.test similarity index 100% rename from tests/timelog.test rename to tests/timelog/timelog.test diff --git a/tests/timelog/timezone.test.notimplemented b/tests/timelog/timezone.test.notimplemented new file mode 100644 index 000000000..bc700010c --- /dev/null +++ b/tests/timelog/timezone.test.notimplemented @@ -0,0 +1,22 @@ +# timezone-related tests +# 1. as in ledger, historical prices may contain a time and timezone. +# hledger ignores them and uses 00:00 local time instead. +# XXX needs --value not --cost +hledgerdev -f - balance --no-total --cost +<<< +P 2011/01/01 00:00:00 A $1 +P 2011/01/01 15:00:00-0100 A $2 + +2010/12/31 + (20101231) 1 A + +2011/1/1 + (20110101) 1 A + +2011/1/2 + (20110102) 1 A +>>> + 1 A 20101231 + $2 20110101 + $2 20110102 +>>>=0 diff --git a/tests/timezone.test b/tests/timezone.test deleted file mode 100644 index 903d8b6ea..000000000 --- a/tests/timezone.test +++ /dev/null @@ -1,22 +0,0 @@ -# timezone-related tests -# 1. as in ledger, historical prices may contain a time and timezone. -# hledger ignores them and uses 00:00 local time instead. -# XXX needs --value not --cost -# hledgerdev -f - balance --no-total --cost -# <<< -# P 2011/01/01 00:00:00 A $1 -# P 2011/01/01 15:00:00-0100 A $2 - -# 2010/12/31 -# (20101231) 1 A - -# 2011/1/1 -# (20110101) 1 A - -# 2011/1/2 -# (20110102) 1 A -# >>> -# 1 A 20101231 -# $2 20110101 -# $2 20110102 -# >>>=0 diff --git a/tests/zero-handling.test b/tests/zero-handling.test deleted file mode 100644 index 0659bedbf..000000000 --- a/tests/zero-handling.test +++ /dev/null @@ -1,13 +0,0 @@ -# a zero amount is always displayed as just "0", regardless of any commodity/decimal places/price (like ledger) -# -hledgerdev -f- print --empty -<<< -2010/3/1 x - a $0.00 @ 3EUR - b ->>> -2010/03/01 x - a 0 - b 0 - ->>>=0