dev: tests: convert remaining format 1 tests to format 3 (or 2)
Mostly done with an unreleased version of shelltestrunner, plus a few manual fixups.
This commit is contained in:
parent
b6d36e9c0b
commit
e9cd1df048
@ -2,24 +2,23 @@
|
|||||||
# data validation
|
# data validation
|
||||||
#
|
#
|
||||||
# 1. should prompt again for a bad date
|
# 1. should prompt again for a bad date
|
||||||
hledger -f $$-add.j add; rm -f $$-add.j
|
|
||||||
<<<
|
<<<
|
||||||
2009/1/32
|
2009/1/32
|
||||||
|
$$$ hledger -f $$-add.j add; rm -f $$-add.j
|
||||||
>>> /A valid hledger smart date is required/
|
>>> /A valid hledger smart date is required/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
# 2. should accept a blank date
|
# 2. should accept a blank date
|
||||||
hledger -f $$-add.j add; rm -f $$-add.j
|
|
||||||
<<<
|
<<<
|
||||||
|
|
||||||
|
$$$ hledger -f $$-add.j add; rm -f $$-add.j
|
||||||
>>> /Date .*Description:/
|
>>> /Date .*Description:/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# precision and commodity handling
|
# precision and commodity handling
|
||||||
#
|
#
|
||||||
# 3. simple add with no existing journal, no commodity entered
|
# 3. simple add with no existing journal, no commodity entered
|
||||||
hledger -f $$-add.j add; rm -f $$-add.j
|
|
||||||
<<<
|
<<<
|
||||||
|
|
||||||
|
|
||||||
@ -28,11 +27,11 @@ a
|
|||||||
b
|
b
|
||||||
|
|
||||||
.
|
.
|
||||||
|
$$$ hledger -f $$-add.j add; rm -f $$-add.j
|
||||||
>>> /Date.*Description.*Account 1.*Amount 1.*Account 2.*Amount 2.*Account 3.*or \. or enter to finish.*/
|
>>> /Date.*Description.*Account 1.*Amount 1.*Account 2.*Amount 2.*Account 3.*or \. or enter to finish.*/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
# 4. default commodity with greater precision
|
# 4. default commodity with greater precision
|
||||||
printf 'D $1000.00\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
|
||||||
<<<
|
<<<
|
||||||
|
|
||||||
|
|
||||||
@ -42,11 +41,11 @@ b
|
|||||||
|
|
||||||
.
|
.
|
||||||
|
|
||||||
|
$$$ printf 'D $1000.00\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
||||||
>>> /a +\$1000\.0/
|
>>> /a +\$1000\.0/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
# 5. default commodity with less precision
|
# 5. default commodity with less precision
|
||||||
printf 'D $1000.0\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
|
||||||
<<<
|
<<<
|
||||||
|
|
||||||
|
|
||||||
@ -56,11 +55,11 @@ b
|
|||||||
|
|
||||||
.
|
.
|
||||||
|
|
||||||
|
$$$ printf 'D $1000.0\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
||||||
>>> /a +\$1000\.00/
|
>>> /a +\$1000\.00/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
# 6. existing commodity with greater precision
|
# 6. existing commodity with greater precision
|
||||||
printf '2010/1/1\n a $1000.00\n b\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
|
||||||
<<<
|
<<<
|
||||||
|
|
||||||
|
|
||||||
@ -69,11 +68,11 @@ $1000.0
|
|||||||
b
|
b
|
||||||
|
|
||||||
.
|
.
|
||||||
|
$$$ printf '2010/1/1\n a $1000.00\n b\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
||||||
>>> /a +\$1000\.0/
|
>>> /a +\$1000\.0/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
# 7. existing commodity with less precision
|
# 7. existing commodity with less precision
|
||||||
printf '2010/1/1\n a $1000.0\n b\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
|
||||||
<<<
|
<<<
|
||||||
|
|
||||||
|
|
||||||
@ -83,11 +82,11 @@ b
|
|||||||
|
|
||||||
.
|
.
|
||||||
|
|
||||||
|
$$$ printf '2010/1/1\n a $1000.0\n b\n' >t$$.j; hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
|
||||||
>>> /a +\$1000\.00/
|
>>> /a +\$1000\.00/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
# 8. default amounts should not fail to balance due to precision
|
# 8. default amounts should not fail to balance due to precision
|
||||||
rm -f nosuch.journal; hledger -f nosuch.journal add; rm -f nosuch.journal
|
|
||||||
<<<
|
<<<
|
||||||
2010/1/1
|
2010/1/1
|
||||||
x
|
x
|
||||||
@ -96,8 +95,9 @@ a
|
|||||||
b
|
b
|
||||||
0.5
|
0.5
|
||||||
c
|
c
|
||||||
|
$$$ rm -f nosuch.journal; hledger -f nosuch.journal add; rm -f nosuch.journal
|
||||||
>>> /Amount 3 \[-0.75\]:/
|
>>> /Amount 3 \[-0.75\]:/
|
||||||
>>>=0
|
>>>2 //
|
||||||
|
|
||||||
## 9. shouldn't add decimals if there aren't any
|
## 9. shouldn't add decimals if there aren't any
|
||||||
## printf '\n\na\n1\nb\n' | hledger -f /dev/null add
|
## printf '\n\na\n1\nb\n' | hledger -f /dev/null add
|
||||||
|
|||||||
@ -1,68 +1,61 @@
|
|||||||
# amount layout tests, using default vertical layout
|
# amount layout tests, using default vertical layout
|
||||||
# 1. print
|
# 1. print
|
||||||
hledger -f - print --explicit
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a EUR 1 ; a euro
|
a EUR 1 ; a euro
|
||||||
b USD 1 ; a dollar
|
b USD 1 ; a dollar
|
||||||
c ; a euro and a dollar
|
c ; a euro and a dollar
|
||||||
>>>
|
$ hledger -f - print --explicit
|
||||||
2010-01-01
|
2010-01-01
|
||||||
a EUR 1 ; a euro
|
a EUR 1 ; a euro
|
||||||
b USD 1 ; a dollar
|
b USD 1 ; a dollar
|
||||||
c EUR -1 ; a euro and a dollar
|
c EUR -1 ; a euro and a dollar
|
||||||
c USD -1 ; a euro and a dollar
|
c USD -1 ; a euro and a dollar
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 2. register
|
# 2. register
|
||||||
hledger -f - register
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a EUR 1 ; a euro
|
a EUR 1 ; a euro
|
||||||
b USD 1 ; a dollar
|
b USD 1 ; a dollar
|
||||||
c ; a euro and a dollar
|
c ; a euro and a dollar
|
||||||
>>>
|
$ hledger -f - register
|
||||||
2010-01-01 a EUR 1 EUR 1
|
2010-01-01 a EUR 1 EUR 1
|
||||||
b USD 1 EUR 1
|
b USD 1 EUR 1
|
||||||
USD 1
|
USD 1
|
||||||
c EUR -1
|
c EUR -1
|
||||||
USD -1 0
|
USD -1 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. balance
|
# 3. balance
|
||||||
hledger -f - balance -N
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a EUR 1 ; a euro
|
a EUR 1 ; a euro
|
||||||
b USD 1 ; a dollar
|
b USD 1 ; a dollar
|
||||||
c ; a euro and a dollar
|
c ; a euro and a dollar
|
||||||
>>>
|
$ hledger -f - balance -N
|
||||||
EUR 1 a
|
EUR 1 a
|
||||||
USD 1 b
|
USD 1 b
|
||||||
EUR -1
|
EUR -1
|
||||||
USD -1 c
|
USD -1 c
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. a single-commodity zero amount's commodity/decimal places/price is preserved, when possible
|
# 4. a single-commodity zero amount's commodity/decimal places/price is preserved, when possible
|
||||||
hledger -f- print --explicit --empty
|
<
|
||||||
<<<
|
|
||||||
2010/3/1 x
|
2010/3/1 x
|
||||||
a $0.00 @ 3EUR
|
a $0.00 @ 3EUR
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger -f- print --explicit --empty
|
||||||
2010-03-01 x
|
2010-03-01 x
|
||||||
a 0 @ 3EUR
|
a 0 @ 3EUR
|
||||||
b 0
|
b 0
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 5.
|
# 5.
|
||||||
# When preserving a zero amount's commodity, we should also preserve
|
# When preserving a zero amount's commodity, we should also preserve
|
||||||
# the amount style, such as where to place the symbol.
|
# the amount style, such as where to place the symbol.
|
||||||
# https://github.com/simonmichael/hledger/issues/230
|
# https://github.com/simonmichael/hledger/issues/230
|
||||||
hledger -f- balance --tree -N
|
<
|
||||||
<<<
|
|
||||||
D 1000,00€
|
D 1000,00€
|
||||||
|
|
||||||
1/1
|
1/1
|
||||||
@ -72,12 +65,11 @@ D 1000,00€
|
|||||||
a:1 4000,58
|
a:1 4000,58
|
||||||
a:D -1000,58
|
a:D -1000,58
|
||||||
e -3000
|
e -3000
|
||||||
>>>
|
$ hledger -f- balance --tree -N
|
||||||
3000,00€ a
|
3000,00€ a
|
||||||
4000,58€ 1
|
4000,58€ 1
|
||||||
-1000,58€ D
|
-1000,58€ D
|
||||||
-3000,00€ e
|
-3000,00€ e
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
|
|
||||||
# 5. mixed amounts with prices
|
# 5. mixed amounts with prices
|
||||||
|
|||||||
@ -1,21 +1,17 @@
|
|||||||
# issue 219, --tree and --flat flags should override each other cleanly
|
# issue 219, --tree and --flat flags should override each other cleanly
|
||||||
# 1. multiple flags ending with --flat, equivalent to --flat
|
# 1. multiple flags ending with --flat, equivalent to --flat
|
||||||
hledger -f balance-multicol.journal bal -MH --no-elide --no-total date:2013/1 --tree --flat
|
$ hledger -f balance-multicol.journal bal -MH --no-elide --no-total date:2013/1 --tree --flat
|
||||||
>>>
|
|
||||||
Ending balances (historical) in 2013-01:
|
Ending balances (historical) in 2013-01:
|
||||||
|
|
||||||
|| 2013-01-31
|
|| 2013-01-31
|
||||||
=================++============
|
=================++============
|
||||||
assets:checking || 10
|
assets:checking || 10
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 2. multiple flags ending with --tree, equivalent to --tree
|
# 2. multiple flags ending with --tree, equivalent to --tree
|
||||||
hledger -f balance-multicol.journal bal -MH --no-elide --no-total date:2013/1 --flat --tree
|
$ hledger -f balance-multicol.journal bal -MH --no-elide --no-total date:2013/1 --flat --tree
|
||||||
>>>
|
|
||||||
Ending balances (historical) in 2013-01:
|
Ending balances (historical) in 2013-01:
|
||||||
|
|
||||||
|| 2013-01-31
|
|| 2013-01-31
|
||||||
============++============
|
============++============
|
||||||
assets || 10
|
assets || 10
|
||||||
checking || 10
|
checking || 10
|
||||||
>>>= 0
|
|
||||||
|
|||||||
@ -1,21 +1,16 @@
|
|||||||
# 1.
|
# 1.
|
||||||
hledger -f sample.journal balance --no-total --depth 1
|
$ hledger -f sample.journal balance --no-total --depth 1
|
||||||
>>>
|
|
||||||
$-1 assets
|
$-1 assets
|
||||||
$2 expenses
|
$2 expenses
|
||||||
$-2 income
|
$-2 income
|
||||||
$1 liabilities
|
$1 liabilities
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. Depth 0 aggregates everything into one line
|
# 2. Depth 0 aggregates everything into one line
|
||||||
hledger -f sample.journal balance --no-total --depth 0 assets
|
$ hledger -f sample.journal balance --no-total --depth 0 assets
|
||||||
>>>
|
|
||||||
$-1 ...
|
$-1 ...
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. Ditto in a multi-column balance report.
|
# 3. Ditto in a multi-column balance report.
|
||||||
hledger -f sample.journal balance -M -e 2008/2 --depth 0 assets
|
$ hledger -f sample.journal balance -M -e 2008/2 --depth 0 assets
|
||||||
>>>
|
|
||||||
Balance changes in 2008-01:
|
Balance changes in 2008-01:
|
||||||
|
|
||||||
|| Jan
|
|| Jan
|
||||||
@ -23,4 +18,3 @@ Balance changes in 2008-01:
|
|||||||
... || $1
|
... || $1
|
||||||
-----++-----
|
-----++-----
|
||||||
|| $1
|
|| $1
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
# --flat shows exclusive balances
|
# --flat shows exclusive balances
|
||||||
# 1.
|
# 1.
|
||||||
hledger -f - balance --flat
|
<
|
||||||
<<<
|
|
||||||
1/1
|
1/1
|
||||||
(a:aa) 1
|
(a:aa) 1
|
||||||
(a:aa:aaa) 1
|
(a:aa:aaa) 1
|
||||||
(a:aa:bbb) 1
|
(a:aa:bbb) 1
|
||||||
(b) 1
|
(b) 1
|
||||||
(b:bb:bbb) 1
|
(b:bb:bbb) 1
|
||||||
>>>
|
$ hledger -f - balance --flat
|
||||||
1 a:aa
|
1 a:aa
|
||||||
1 a:aa:aaa
|
1 a:aa:aaa
|
||||||
1 a:aa:bbb
|
1 a:aa:bbb
|
||||||
@ -30,22 +29,19 @@ hledger -f - balance --flat
|
|||||||
1 b:bb:bbb
|
1 b:bb:bbb
|
||||||
--------------------
|
--------------------
|
||||||
5
|
5
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# --flat --depth shows the same accounts, but clipped and aggregated at the depth limit
|
# --flat --depth shows the same accounts, but clipped and aggregated at the depth limit
|
||||||
# 2.
|
# 2.
|
||||||
hledger -f - balance --flat --depth 2
|
<
|
||||||
<<<
|
|
||||||
1/1
|
1/1
|
||||||
(a:aa) 1
|
(a:aa) 1
|
||||||
(a:aa:aaa) 1
|
(a:aa:aaa) 1
|
||||||
(a:aa:bbb) 1
|
(a:aa:bbb) 1
|
||||||
(b) 1
|
(b) 1
|
||||||
(b:bb:bbb) 1
|
(b:bb:bbb) 1
|
||||||
>>>
|
$ hledger -f - balance --flat --depth 2
|
||||||
3 a:aa
|
3 a:aa
|
||||||
1 b
|
1 b
|
||||||
1 b:bb
|
1 b:bb
|
||||||
--------------------
|
--------------------
|
||||||
5
|
5
|
||||||
>>>= 0
|
|
||||||
|
|||||||
@ -1,20 +1,17 @@
|
|||||||
# multi-column balance reports
|
# multi-column balance reports
|
||||||
|
|
||||||
# 1. Here are the postings used in most tests below:
|
# 1. Here are the postings used in most tests below:
|
||||||
hledger -f balance-multicol.journal register
|
$ hledger -f balance-multicol.journal register
|
||||||
>>>
|
|
||||||
2012-12-31 (assets:checking) 10 10
|
2012-12-31 (assets:checking) 10 10
|
||||||
2013-01-01 (assets:checking) 1 11
|
2013-01-01 (assets:checking) 1 11
|
||||||
2013-01-15 (assets:checking) -1 10
|
2013-01-15 (assets:checking) -1 10
|
||||||
2013-02-01 (assets:cash) 1 11
|
2013-02-01 (assets:cash) 1 11
|
||||||
2013-02-02 (assets) 1 12
|
2013-02-02 (assets) 1 12
|
||||||
2013-03-01 (assets:checking) 1 13
|
2013-03-01 (assets:checking) 1 13
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. A period balance (flow) report. --no-total also works but isn't pretty.
|
# 2. A period balance (flow) report. --no-total also works but isn't pretty.
|
||||||
# Includes leading/trailing empty periods.
|
# Includes leading/trailing empty periods.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly in 2013' --no-total
|
$ hledger -f balance-multicol.journal balance -p 'monthly in 2013' --no-total
|
||||||
>>>
|
|
||||||
Balance changes in 2013:
|
Balance changes in 2013:
|
||||||
|
|
||||||
|| Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
|
|| Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
|
||||||
@ -22,19 +19,17 @@ Balance changes in 2013:
|
|||||||
assets || 0 1 0 0 0 0 0 0 0 0 0 0
|
assets || 0 1 0 0 0 0 0 0 0 0 0 0
|
||||||
assets:cash || 0 1 0 0 0 0 0 0 0 0 0 0
|
assets:cash || 0 1 0 0 0 0 0 0 0 0 0 0
|
||||||
assets:checking || 0 0 1 0 0 0 0 0 0 0 0 0
|
assets:checking || 0 0 1 0 0 0 0 0 0 0 0 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. With --empty, includes leading/trailing empty periods
|
# 3. With --empty, includes leading/trailing empty periods
|
||||||
#hledger -f balance-multicol.journal balance -p 'quarterly in 2013' --empty
|
#hledger -f balance-multicol.journal balance -p 'quarterly in 2013' --empty
|
||||||
hledger -f - balance -p 'quarterly in 2013' --empty
|
<
|
||||||
<<<
|
|
||||||
2012/12/31
|
2012/12/31
|
||||||
(a) 10
|
(a) 10
|
||||||
2013/1/1
|
2013/1/1
|
||||||
(a) 1
|
(a) 1
|
||||||
2013/3/1
|
2013/3/1
|
||||||
(a) 1
|
(a) 1
|
||||||
>>>
|
$ hledger -f - balance -p 'quarterly in 2013' --empty
|
||||||
Balance changes in 2013:
|
Balance changes in 2013:
|
||||||
|
|
||||||
|| 2013Q1 2013Q2 2013Q3 2013Q4
|
|| 2013Q1 2013Q2 2013Q3 2013Q4
|
||||||
@ -42,12 +37,10 @@ Balance changes in 2013:
|
|||||||
a || 2 0 0 0
|
a || 2 0 0 0
|
||||||
---++--------------------------------
|
---++--------------------------------
|
||||||
|| 2 0 0 0
|
|| 2 0 0 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. A cumulative ending balance report. Column totals are the sum of
|
# 4. A cumulative ending balance report. Column totals are the sum of
|
||||||
# the highest-level displayed accounts (here, assets).
|
# the highest-level displayed accounts (here, assets).
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --cumulative
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --cumulative
|
||||||
>>>
|
|
||||||
Ending balances (cumulative) in 2013Q1:
|
Ending balances (cumulative) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -57,13 +50,11 @@ Ending balances (cumulative) in 2013Q1:
|
|||||||
assets:checking || 0 0 1
|
assets:checking || 0 0 1
|
||||||
-----------------++------------------------------------
|
-----------------++------------------------------------
|
||||||
|| 0 2 3
|
|| 0 2 3
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5. With the assets:cash account excluded. As with a single-column
|
# 5. With the assets:cash account excluded. As with a single-column
|
||||||
# balance --flat report, or ledger's balance --flat, assets' balance
|
# balance --flat report, or ledger's balance --flat, assets' balance
|
||||||
# includes the displayed subaccount and not the excluded one.
|
# includes the displayed subaccount and not the excluded one.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --cumulative not:cash
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --cumulative not:cash
|
||||||
>>>
|
|
||||||
Ending balances (cumulative) in 2013Q1:
|
Ending balances (cumulative) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -72,11 +63,9 @@ Ending balances (cumulative) in 2013Q1:
|
|||||||
assets:checking || 0 0 1
|
assets:checking || 0 0 1
|
||||||
-----------------++------------------------------------
|
-----------------++------------------------------------
|
||||||
|| 0 1 2
|
|| 0 1 2
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 6. A historical ending balance report.
|
# 6. A historical ending balance report.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --historical
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --historical
|
||||||
>>>
|
|
||||||
Ending balances (historical) in 2013Q1:
|
Ending balances (historical) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -86,12 +75,10 @@ Ending balances (historical) in 2013Q1:
|
|||||||
assets:checking || 10 10 11
|
assets:checking || 10 10 11
|
||||||
-----------------++------------------------------------
|
-----------------++------------------------------------
|
||||||
|| 10 12 13
|
|| 10 12 13
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 7. With top-level accounts excluded. As always, column totals are the sum of
|
# 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.
|
# the highest-level displayed accounts, now assets:cash and assets:checking.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' not:assets$
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' not:assets$
|
||||||
>>>
|
|
||||||
Balance changes in 2013Q1:
|
Balance changes in 2013Q1:
|
||||||
|
|
||||||
|| Jan Feb Mar
|
|| Jan Feb Mar
|
||||||
@ -100,11 +87,9 @@ Balance changes in 2013Q1:
|
|||||||
assets:checking || 0 0 1
|
assets:checking || 0 0 1
|
||||||
-----------------++---------------
|
-----------------++---------------
|
||||||
|| 0 1 1
|
|| 0 1 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 8. cumulative:
|
# 8. cumulative:
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' not:assets$ --cumulative
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' not:assets$ --cumulative
|
||||||
>>>
|
|
||||||
Ending balances (cumulative) in 2013Q1:
|
Ending balances (cumulative) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -113,11 +98,9 @@ Ending balances (cumulative) in 2013Q1:
|
|||||||
assets:checking || 0 0 1
|
assets:checking || 0 0 1
|
||||||
-----------------++------------------------------------
|
-----------------++------------------------------------
|
||||||
|| 0 1 2
|
|| 0 1 2
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 9. historical
|
# 9. historical
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --historical
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --historical
|
||||||
>>>
|
|
||||||
Ending balances (historical) in 2013Q1:
|
Ending balances (historical) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -127,13 +110,11 @@ Ending balances (historical) in 2013Q1:
|
|||||||
assets:checking || 10 10 11
|
assets:checking || 10 10 11
|
||||||
-----------------++------------------------------------
|
-----------------++------------------------------------
|
||||||
|| 10 12 13
|
|| 10 12 13
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# --depth
|
# --depth
|
||||||
|
|
||||||
# 10. A flow report with depth limiting. The depth limit aggregates the three accounts as "assets".
|
# 10. A flow report with depth limiting. The depth limit aggregates the three accounts as "assets".
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1
|
||||||
>>>
|
|
||||||
Balance changes in 2013Q1:
|
Balance changes in 2013Q1:
|
||||||
|
|
||||||
|| Jan Feb Mar
|
|| Jan Feb Mar
|
||||||
@ -141,11 +122,9 @@ Balance changes in 2013Q1:
|
|||||||
assets || 0 2 1
|
assets || 0 2 1
|
||||||
--------++---------------
|
--------++---------------
|
||||||
|| 0 2 1
|
|| 0 2 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 11. As above, but postings in the top-level assets account have been excluded.
|
# 11. As above, but postings in the top-level assets account have been excluded.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1 assets:
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1 assets:
|
||||||
>>>
|
|
||||||
Balance changes in 2013Q1:
|
Balance changes in 2013Q1:
|
||||||
|
|
||||||
|| Jan Feb Mar
|
|| Jan Feb Mar
|
||||||
@ -153,11 +132,9 @@ Balance changes in 2013Q1:
|
|||||||
assets || 0 1 1
|
assets || 0 1 1
|
||||||
--------++---------------
|
--------++---------------
|
||||||
|| 0 1 1
|
|| 0 1 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 12. A cumulative balance report with depth limiting.
|
# 12. A cumulative balance report with depth limiting.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1 --cumulative
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1 --cumulative
|
||||||
>>>
|
|
||||||
Ending balances (cumulative) in 2013Q1:
|
Ending balances (cumulative) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -165,11 +142,9 @@ Ending balances (cumulative) in 2013Q1:
|
|||||||
assets || 0 2 3
|
assets || 0 2 3
|
||||||
--------++------------------------------------
|
--------++------------------------------------
|
||||||
|| 0 2 3
|
|| 0 2 3
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 13. A historical balance report with depth limiting.
|
# 13. A historical balance report with depth limiting.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1 --historical
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --depth 1 --historical
|
||||||
>>>
|
|
||||||
Ending balances (historical) in 2013Q1:
|
Ending balances (historical) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -177,11 +152,9 @@ Ending balances (historical) in 2013Q1:
|
|||||||
assets || 10 12 13
|
assets || 10 12 13
|
||||||
--------++------------------------------------
|
--------++------------------------------------
|
||||||
|| 10 12 13
|
|| 10 12 13
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 14. The three multicol balance report types again, this time with --tree
|
# 14. The three multicol balance report types again, this time with --tree
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --tree
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --tree
|
||||||
>>>
|
|
||||||
Balance changes in 2013Q1:
|
Balance changes in 2013Q1:
|
||||||
|
|
||||||
|| Jan Feb Mar
|
|| Jan Feb Mar
|
||||||
@ -191,11 +164,9 @@ Balance changes in 2013Q1:
|
|||||||
checking || 0 0 1
|
checking || 0 0 1
|
||||||
------------++---------------
|
------------++---------------
|
||||||
|| 0 2 1
|
|| 0 2 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 15.
|
# 15.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --cumulative --tree
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --cumulative --tree
|
||||||
>>>
|
|
||||||
Ending balances (cumulative) in 2013Q1:
|
Ending balances (cumulative) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -205,11 +176,9 @@ Ending balances (cumulative) in 2013Q1:
|
|||||||
checking || 0 0 1
|
checking || 0 0 1
|
||||||
------------++------------------------------------
|
------------++------------------------------------
|
||||||
|| 0 2 3
|
|| 0 2 3
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 16.
|
# 16.
|
||||||
hledger -f balance-multicol.journal balance -p 'monthly from 2013' --historical --tree
|
$ hledger -f balance-multicol.journal balance -p 'monthly from 2013' --historical --tree
|
||||||
>>>
|
|
||||||
Ending balances (historical) in 2013Q1:
|
Ending balances (historical) in 2013Q1:
|
||||||
|
|
||||||
|| 2013-01-31 2013-02-28 2013-03-31
|
|| 2013-01-31 2013-02-28 2013-03-31
|
||||||
@ -219,18 +188,16 @@ Ending balances (historical) in 2013Q1:
|
|||||||
checking || 10 10 11
|
checking || 10 10 11
|
||||||
------------++------------------------------------
|
------------++------------------------------------
|
||||||
|| 10 12 13
|
|| 10 12 13
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 17. --date2 should work
|
# 17. --date2 should work
|
||||||
hledger -f- balance --monthly --date2
|
<
|
||||||
<<<
|
|
||||||
2014/1/1
|
2014/1/1
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2014/2/1=2014/1/31
|
2014/2/1=2014/1/31
|
||||||
(b) 1
|
(b) 1
|
||||||
|
|
||||||
>>>
|
$ hledger -f- balance --monthly --date2
|
||||||
Balance changes in 2014-01:
|
Balance changes in 2014-01:
|
||||||
|
|
||||||
|| Jan
|
|| Jan
|
||||||
@ -239,11 +206,9 @@ Balance changes in 2014-01:
|
|||||||
b || 1
|
b || 1
|
||||||
---++-----
|
---++-----
|
||||||
|| 2
|
|| 2
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 18. All matched postings in the displayed intervals should be reported on.
|
# 18. All matched postings in the displayed intervals should be reported on.
|
||||||
hledger -f- balance -p 'monthly 2014/1/10-2014/2/20'
|
<
|
||||||
<<<
|
|
||||||
2014/1/5
|
2014/1/5
|
||||||
(before) 1
|
(before) 1
|
||||||
|
|
||||||
@ -253,7 +218,7 @@ hledger -f- balance -p 'monthly 2014/1/10-2014/2/20'
|
|||||||
2014/2/25
|
2014/2/25
|
||||||
(after) 1
|
(after) 1
|
||||||
|
|
||||||
>>>
|
$ hledger -f- balance -p 'monthly 2014/1/10-2014/2/20'
|
||||||
Balance changes in 2014-01-01..2014-02-28:
|
Balance changes in 2014-01-01..2014-02-28:
|
||||||
|
|
||||||
|| Jan Feb
|
|| Jan Feb
|
||||||
@ -263,4 +228,3 @@ Balance changes in 2014-01-01..2014-02-28:
|
|||||||
within || 0 1
|
within || 0 1
|
||||||
--------++----------
|
--------++----------
|
||||||
|| 1 2
|
|| 1 2
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,17 +1,14 @@
|
|||||||
#!/usr/bin/env shelltest
|
#!/usr/bin/env shelltest
|
||||||
# 1. Single column percent
|
# 1. Single column percent
|
||||||
hledger -f sample.journal balance expenses -% --tree
|
$ hledger -f sample.journal balance expenses -% --tree
|
||||||
>>>
|
|
||||||
100.0 % expenses
|
100.0 % expenses
|
||||||
50.0 % food
|
50.0 % food
|
||||||
50.0 % supplies
|
50.0 % supplies
|
||||||
--------------------
|
--------------------
|
||||||
100.0 %
|
100.0 %
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 2. Multi column percent
|
# 2. Multi column percent
|
||||||
hledger -f sample.journal balance expenses -% -p quarterly
|
$ hledger -f sample.journal balance expenses -% -p quarterly
|
||||||
>>>
|
|
||||||
Balance changes in 2008:
|
Balance changes in 2008:
|
||||||
|
|
||||||
|| 2008Q1 2008Q2 2008Q3 2008Q4
|
|| 2008Q1 2008Q2 2008Q3 2008Q4
|
||||||
@ -20,11 +17,9 @@ Balance changes in 2008:
|
|||||||
expenses:supplies || 0 50.0 % 0 0
|
expenses:supplies || 0 50.0 % 0 0
|
||||||
-------------------++---------------------------------
|
-------------------++---------------------------------
|
||||||
|| 0 100.0 % 0 0
|
|| 0 100.0 % 0 0
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 3. In a balanced ledger everything should sum up to zero, therefore all percentages should be zero.
|
# 3. In a balanced ledger everything should sum up to zero, therefore all percentages should be zero.
|
||||||
hledger -f sample.journal balance -% -p quarterly
|
$ hledger -f sample.journal balance -% -p quarterly
|
||||||
>>>
|
|
||||||
Balance changes in 2008:
|
Balance changes in 2008:
|
||||||
|
|
||||||
|| 2008Q1 2008Q2 2008Q3 2008Q4
|
|| 2008Q1 2008Q2 2008Q3 2008Q4
|
||||||
@ -39,4 +34,3 @@ Balance changes in 2008:
|
|||||||
liabilities:debts || 0 0 0 0
|
liabilities:debts || 0 0 0 0
|
||||||
----------------------++--------------------------------
|
----------------------++--------------------------------
|
||||||
|| 0 0 0 0
|
|| 0 0 0 0
|
||||||
>>>= 0
|
|
||||||
|
|||||||
@ -1,12 +1,10 @@
|
|||||||
#
|
#
|
||||||
hledger -f- balance
|
<
|
||||||
<<<
|
|
||||||
1/1
|
1/1
|
||||||
a 1.00
|
a 1.00
|
||||||
b -1
|
b -1
|
||||||
>>>
|
$ hledger -f- balance
|
||||||
1.00 a
|
1.00 a
|
||||||
-1.00 b
|
-1.00 b
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
# 1. Uses Unicode tables when given --pretty=yes
|
# 1. Uses Unicode tables when given --pretty=yes
|
||||||
hledger -f balance-multicol.journal balance --pretty=yes -M
|
$ hledger -f balance-multicol.journal balance --pretty=yes -M
|
||||||
>>>
|
|
||||||
Balance changes in 2012-12-01..2013-03-31:
|
Balance changes in 2012-12-01..2013-03-31:
|
||||||
|
|
||||||
║ 2012-12 2013-01 2013-02 2013-03
|
║ 2012-12 2013-01 2013-02 2013-03
|
||||||
@ -10,11 +9,9 @@ Balance changes in 2012-12-01..2013-03-31:
|
|||||||
assets:checking ║ 10 0 0 1
|
assets:checking ║ 10 0 0 1
|
||||||
─────────────────╫────────────────────────────────────
|
─────────────────╫────────────────────────────────────
|
||||||
║ 10 0 2 1
|
║ 10 0 2 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. Uses Unicode tables when given --pretty
|
# 2. Uses Unicode tables when given --pretty
|
||||||
hledger -f balance-multicol.journal balance --pretty -M
|
$ hledger -f balance-multicol.journal balance --pretty -M
|
||||||
>>>
|
|
||||||
Balance changes in 2012-12-01..2013-03-31:
|
Balance changes in 2012-12-01..2013-03-31:
|
||||||
|
|
||||||
║ 2012-12 2013-01 2013-02 2013-03
|
║ 2012-12 2013-01 2013-02 2013-03
|
||||||
@ -24,11 +21,9 @@ Balance changes in 2012-12-01..2013-03-31:
|
|||||||
assets:checking ║ 10 0 0 1
|
assets:checking ║ 10 0 0 1
|
||||||
─────────────────╫────────────────────────────────────
|
─────────────────╫────────────────────────────────────
|
||||||
║ 10 0 2 1
|
║ 10 0 2 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. Uses ASCII tables when given --pretty=no
|
# 3. Uses ASCII tables when given --pretty=no
|
||||||
hledger -f balance-multicol.journal balance --pretty=no -M
|
$ hledger -f balance-multicol.journal balance --pretty=no -M
|
||||||
>>>
|
|
||||||
Balance changes in 2012-12-01..2013-03-31:
|
Balance changes in 2012-12-01..2013-03-31:
|
||||||
|
|
||||||
|| 2012-12 2013-01 2013-02 2013-03
|
|| 2012-12 2013-01 2013-02 2013-03
|
||||||
@ -38,11 +33,9 @@ Balance changes in 2012-12-01..2013-03-31:
|
|||||||
assets:checking || 10 0 0 1
|
assets:checking || 10 0 0 1
|
||||||
-----------------++------------------------------------
|
-----------------++------------------------------------
|
||||||
|| 10 0 2 1
|
|| 10 0 2 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. Still accepts the legacy --pretty-tables for now
|
# 4. Still accepts the legacy --pretty-tables for now
|
||||||
hledger -f balance-multicol.journal balance --pretty-tables -M
|
$ hledger -f balance-multicol.journal balance --pretty-tables -M
|
||||||
>>>
|
|
||||||
Balance changes in 2012-12-01..2013-03-31:
|
Balance changes in 2012-12-01..2013-03-31:
|
||||||
|
|
||||||
║ 2012-12 2013-01 2013-02 2013-03
|
║ 2012-12 2013-01 2013-02 2013-03
|
||||||
@ -52,4 +45,3 @@ Balance changes in 2012-12-01..2013-03-31:
|
|||||||
assets:checking ║ 10 0 0 1
|
assets:checking ║ 10 0 0 1
|
||||||
─────────────────╫────────────────────────────────────
|
─────────────────╫────────────────────────────────────
|
||||||
║ 10 0 2 1
|
║ 10 0 2 1
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
hledger -f balance-multicol.journal balance -M -A --transpose
|
$ hledger -f balance-multicol.journal balance -M -A --transpose
|
||||||
>>>
|
|
||||||
Balance changes in 2012-12-01..2013-03-31:
|
Balance changes in 2012-12-01..2013-03-31:
|
||||||
|
|
||||||
|| assets assets:cash assets:checking |
|
|| assets assets:cash assets:checking |
|
||||||
@ -9,21 +8,17 @@ Balance changes in 2012-12-01..2013-03-31:
|
|||||||
2013-02 || 1 1 0 | 2
|
2013-02 || 1 1 0 | 2
|
||||||
2013-03 || 0 0 1 | 1
|
2013-03 || 0 0 1 | 1
|
||||||
Average || 0 0 3 | 3
|
Average || 0 0 3 | 3
|
||||||
>>>=0
|
|
||||||
|
|
||||||
hledger -f balance-multicol.journal balance -M -A -O csv --transpose
|
$ hledger -f balance-multicol.journal balance -M -A -O csv --transpose
|
||||||
>>>
|
|
||||||
"account","assets","assets:cash","assets:checking","total"
|
"account","assets","assets:cash","assets:checking","total"
|
||||||
"2012-12","0","0","10","10"
|
"2012-12","0","0","10","10"
|
||||||
"2013-01","0","0","0","0"
|
"2013-01","0","0","0","0"
|
||||||
"2013-02","1","1","0","2"
|
"2013-02","1","1","0","2"
|
||||||
"2013-03","0","0","1","1"
|
"2013-03","0","0","1","1"
|
||||||
"average","0","0","3","3"
|
"average","0","0","3","3"
|
||||||
>>>=0
|
|
||||||
|
|
||||||
|
|
||||||
hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget
|
<
|
||||||
<<<
|
|
||||||
2016/12/01
|
2016/12/01
|
||||||
expenses:food $10
|
expenses:food $10
|
||||||
assets:cash
|
assets:cash
|
||||||
@ -52,7 +47,7 @@ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget
|
|||||||
expenses:food $10
|
expenses:food $10
|
||||||
expenses:leisure $15
|
expenses:leisure $15
|
||||||
assets:cash
|
assets:cash
|
||||||
>>>
|
$ hledger bal -D -b 2016-12-01 -e 2016-12-04 -f - --budget
|
||||||
Budget performance in 2016-12-01..2016-12-03:
|
Budget performance in 2016-12-01..2016-12-03:
|
||||||
|
|
||||||
|| 2016-12-01 2016-12-02 2016-12-03
|
|| 2016-12-01 2016-12-02 2016-12-03
|
||||||
@ -63,4 +58,3 @@ Budget performance in 2016-12-01..2016-12-03:
|
|||||||
expenses:leisure || 0 [ 0% of $15] $5 [33% of $15] 0 [ 0% of $15]
|
expenses:leisure || 0 [ 0% of $15] $5 [33% of $15] 0 [ 0% of $15]
|
||||||
------------------++--------------------------------------------------------------
|
------------------++--------------------------------------------------------------
|
||||||
|| 0 [ 0] 0 [ 0] 0 [ 0]
|
|| 0 [ 0] 0 [ 0] 0 [ 0]
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,12 +1,8 @@
|
|||||||
# commands should generally autocreate an empty journal when missing, see also add*.test
|
# commands should generally autocreate an empty journal when missing, see also add*.test
|
||||||
# $$ used for safe concurrent test running, may be a bash-ism
|
# $$ used for safe concurrent test running, may be a bash-ism
|
||||||
|
|
||||||
hledger register -f no-such-file-$$; rm -f no-such-file-$$
|
$ hledger register -f no-such-file-$$; rm -f no-such-file-$$
|
||||||
>>>
|
>2 /journal file.*not found/
|
||||||
>>>2 /journal file.*not found/
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
hledger balance --no-total -f no-such-file-$$; rm -f no-such-file-$$
|
$ hledger balance --no-total -f no-such-file-$$; rm -f no-such-file-$$
|
||||||
>>>
|
>2 /journal file.*not found/
|
||||||
>>>2 /journal file.*not found/
|
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check accounts -f accounts.j
|
$ hledger check accounts -f accounts.j
|
||||||
>>>2 /hledger: Error: .*accounts.j:4:
|
>2 /hledger: Error: .*accounts.j:4:
|
||||||
\| 2022-01-01
|
\| 2022-01-01
|
||||||
4 \| \(a\) 1
|
4 \| \(a\) 1
|
||||||
\| \^
|
\| \^
|
||||||
@ -12,4 +12,4 @@ account a
|
|||||||
account a ; type:A ; \(L,E,R,X,C,V\)
|
account a ; type:A ; \(L,E,R,X,C,V\)
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f assertions.j
|
$ hledger check -f assertions.j
|
||||||
>>>2 /hledger: Error: .*assertions.j:4:8:
|
>2 /hledger: Error: .*assertions.j:4:8:
|
||||||
\| 2022-01-01
|
\| 2022-01-01
|
||||||
4 \| a 0 = 1
|
4 \| a 0 = 1
|
||||||
\| \^\^\^
|
\| \^\^\^
|
||||||
@ -12,4 +12,4 @@ but the calculated balance is: 0
|
|||||||
a difference of: 1
|
a difference of: 1
|
||||||
|
|
||||||
Consider viewing t/
|
Consider viewing t/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f balanced.j
|
$ hledger check -f balanced.j
|
||||||
>>>2 /hledger: Error: .*balanced.j:3-4:
|
>2 /hledger: Error: .*balanced.j:3-4:
|
||||||
3 \| 2022-01-01
|
3 \| 2022-01-01
|
||||||
\| a 1
|
\| a 1
|
||||||
|
|
||||||
@ -7,4 +7,4 @@ This transaction is unbalanced.
|
|||||||
The real postings' sum should be 0 but is: 1
|
The real postings' sum should be 0 but is: 1
|
||||||
Consider adjusting this entry's amounts, or adding missing postings.
|
Consider adjusting this entry's amounts, or adding missing postings.
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check balancednoautoconversion -f balancednoautoconversion.j
|
$ hledger check balancednoautoconversion -f balancednoautoconversion.j
|
||||||
>>>2 /hledger: Error: .*balancednoautoconversion.j:6-8:
|
>2 /hledger: Error: .*balancednoautoconversion.j:6-8:
|
||||||
6 \| 2022-01-01
|
6 \| 2022-01-01
|
||||||
\| a 1 A
|
\| a 1 A
|
||||||
\| b -1 B
|
\| b -1 B
|
||||||
@ -8,4 +8,4 @@ This multi-commodity transaction is unbalanced.
|
|||||||
Automatic commodity conversion is not enabled.
|
Automatic commodity conversion is not enabled.
|
||||||
The real postings' sum should be 0 but is: 1 A, -1 B
|
The real postings' sum should be 0 but is: 1 A, -1 B
|
||||||
Consider adjusting this entry's/
|
Consider adjusting this entry's/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check commodities -f commodities.j
|
$ hledger check commodities -f commodities.j
|
||||||
>>>2 /hledger: Error: .*commodities.j:6:
|
>2 /hledger: Error: .*commodities.j:6:
|
||||||
\| 2022-01-01
|
\| 2022-01-01
|
||||||
6 \| \(a\) A 1
|
6 \| \(a\) A 1
|
||||||
\| \^\^\^
|
\| \^\^\^
|
||||||
@ -12,4 +12,4 @@ commodity A1000.00
|
|||||||
commodity 1.000,00 A
|
commodity 1.000,00 A
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f csvamountonenonzero.csv
|
$ hledger check -f csvamountonenonzero.csv
|
||||||
>>>2 /hledger: Error: in CSV rules:
|
>2 /hledger: Error: in CSV rules:
|
||||||
While processing CSV record: "2022-01-03","1","2"
|
While processing CSV record: "2022-01-03","1","2"
|
||||||
while calculating amount for posting 1
|
while calculating amount for posting 1
|
||||||
rule "amount-in %2" assigned value "1"
|
rule "amount-in %2" assigned value "1"
|
||||||
@ -7,4 +7,4 @@ rule "amount-out %3" assigned value "2"
|
|||||||
|
|
||||||
Multiple non-zero amounts were assigned for an amount field.
|
Multiple non-zero amounts were assigned for an amount field.
|
||||||
Please ensure just one non-zero amount i/
|
Please ensure just one non-zero amount i/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f csvamountparse.csv
|
$ hledger check -f csvamountparse.csv
|
||||||
>>>2 /hledger: Error: error: could not parse "badamount" as an amount
|
>2 /hledger: Error: error: could not parse "badamount" as an amount
|
||||||
CSV record: "2022-01-03","badamount"
|
CSV record: "2022-01-03","badamount"
|
||||||
the amount rule is: %2
|
the amount rule is: %2
|
||||||
the date rule is: %1
|
the date rule is: %1
|
||||||
@ -12,4 +12,4 @@ unexpected end of input
|
|||||||
expecting '\+', '-', or number
|
expecting '\+', '-', or number
|
||||||
|
|
||||||
you may need to change your am/
|
you may need to change your am/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f csvbalanceparse.csv
|
$ hledger check -f csvbalanceparse.csv
|
||||||
>>>2 /hledger: Error: error: could not parse "badbalance" as balance1 amount
|
>2 /hledger: Error: error: could not parse "badbalance" as balance1 amount
|
||||||
CSV record: "2022-01-03","badbalance"
|
CSV record: "2022-01-03","badbalance"
|
||||||
the balance rule is: %2
|
the balance rule is: %2
|
||||||
the date rule is: %1
|
the date rule is: %1
|
||||||
@ -13,4 +13,4 @@ expecting '\+', '-', or number
|
|||||||
|
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
$$$ hledger check -f csvbalancetypeparse.csv
|
$ hledger check -f csvbalancetypeparse.csv
|
||||||
>>>2 /hledger: Error: balance-type "badtype" is invalid. Use =, ==, =\* or ==\*.
|
>2 /hledger: Error: balance-type "badtype" is invalid. Use =, ==, =\* or ==\*.
|
||||||
CSV record: "2022-01-01","1"
|
CSV record: "2022-01-01","1"
|
||||||
the balance rule is: %2
|
the balance rule is: %2
|
||||||
the date rule is: %1
|
the date rule is: %1
|
||||||
|
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
$$$ hledger check -f csvdateparse.csv
|
$ hledger check -f csvdateparse.csv
|
||||||
>>>2 /hledger: Error: error: could not parse "baddate" as a date using date format "%Y-%m-%d"
|
>2 /hledger: Error: error: could not parse "baddate" as a date using date format "%Y-%m-%d"
|
||||||
CSV record: "baddate","b"
|
CSV record: "baddate","b"
|
||||||
the date rule is: %1
|
the date rule is: %1
|
||||||
the date-format is: %Y-%m-%d
|
the date-format is: %Y-%m-%d
|
||||||
you may need to change your date rule, change your date-format rule, or change your skip rule
|
you may need to change your date rule, change your date-format rule, or change your skip rule
|
||||||
for m\/d\/y or d\/m\/y dates, use date-f/
|
for m\/d\/y or d\/m\/y dates, use date-f/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
$$$ hledger check -f csvdaterule.csv
|
$ hledger check -f csvdaterule.csv
|
||||||
>>>2 /hledger: Error: offset=0:
|
>2 /hledger: Error: offset=0:
|
||||||
Please specify \(at top level\) the date field. Eg: date %1
|
Please specify \(at top level\) the date field. Eg: date %1
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
$$$ hledger check -f csvdecimalmarkparse.csv
|
$ hledger check -f csvdecimalmarkparse.csv
|
||||||
>>>2 /hledger: Error: decimal-mark's argument should be "." or "," \(not "badmark"\)
|
>2 /hledger: Error: decimal-mark's argument should be "." or "," \(not "badmark"\)
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f csvifblocknonempty.csv
|
$ hledger check -f csvifblocknonempty.csv
|
||||||
>>>2 /hledger: Error: .*csvifblocknonempty.csv.rules:2:1:
|
>2 /hledger: Error: .*csvifblocknonempty.csv.rules:2:1:
|
||||||
\|
|
\|
|
||||||
2 \| if foo
|
2 \| if foo
|
||||||
\| \^
|
\| \^
|
||||||
@ -7,4 +7,4 @@ start of conditional block found, but no assignment rules afterward
|
|||||||
\(assignment rules in a conditional block should be indented\)
|
\(assignment rules in a conditional block should be indented\)
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
$$$ hledger check -f csviftablefieldnames.csv
|
$ hledger check -f csviftablefieldnames.csv
|
||||||
>>>2 /hledger: Error: .*csviftablefieldnames.csv.rules:2:9:
|
>2 /hledger: Error: .*csviftablefieldnames.csv.rules:2:9:
|
||||||
\|
|
\|
|
||||||
2 \| if,date,nosuchfield,description
|
2 \| if,date,nosuchfield,description
|
||||||
\| \^\^\^\^\^\^\^\^\^\^\^\^
|
\| \^\^\^\^\^\^\^\^\^\^\^\^
|
||||||
unexpected "nosuchfield,"
|
unexpected "nosuchfield,"
|
||||||
expecting "account1", "account10", "account11", "account12", "account13", "account14", "account15", "account16", "account17", "account18", "/
|
expecting "account1", "account10", "account11", "account12", "account13", "account14", "account15", "account16", "account17", "account18", "/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
$$$ hledger check -f csviftablenonempty.csv
|
$ hledger check -f csviftablenonempty.csv
|
||||||
>>>2 /hledger: Error: .*csviftablenonempty.csv.rules:2:1:
|
>2 /hledger: Error: .*csviftablenonempty.csv.rules:2:1:
|
||||||
\|
|
\|
|
||||||
2 \| if,date,description,comment
|
2 \| if,date,description,comment
|
||||||
\| \^
|
\| \^
|
||||||
start of conditional table found, but no assignment rules afterward
|
start of conditional table found, but no assignment rules afterward
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
$$$ hledger check -f csviftablevaluecount.csv
|
$ hledger check -f csviftablevaluecount.csv
|
||||||
>>>2 /hledger: Error: .*csviftablevaluecount.csv.rules:4:1:
|
>2 /hledger: Error: .*csviftablevaluecount.csv.rules:4:1:
|
||||||
\|
|
\|
|
||||||
4 \| one,val1
|
4 \| one,val1
|
||||||
\| \^
|
\| \^
|
||||||
line of conditional table should have 2 values, but this one has only 1
|
line of conditional table should have 2 values, but this one has only 1
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
$$$ hledger check -f csvnoinclude.j
|
$ hledger check -f csvnoinclude.j
|
||||||
>>>2 /hledger: Error: sorry, CSV files can't be included yet
|
>2 /hledger: Error: sorry, CSV files can't be included yet
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
$$$ hledger check -f csvskipvalue.csv
|
$ hledger check -f csvskipvalue.csv
|
||||||
>>>2 /hledger: Error: could not parse skip value: "badval"
|
>2 /hledger: Error: could not parse skip value: "badval"
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger print -f csvstatusparse.csv
|
$ hledger print -f csvstatusparse.csv
|
||||||
>>>2 /hledger: Error: error: could not parse "badstatus" as a cleared status \(should be \*, ! or empty\)
|
>2 /hledger: Error: error: could not parse "badstatus" as a cleared status \(should be \*, ! or empty\)
|
||||||
the parse error is: 1:1:
|
the parse error is: 1:1:
|
||||||
\|
|
\|
|
||||||
1 \| badstatus
|
1 \| badstatus
|
||||||
@ -9,4 +9,4 @@ expecting '!', '\*', or end of input
|
|||||||
|
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
$$$ sh csvstdinrules.sh
|
$ sh csvstdinrules.sh
|
||||||
>>>2 /hledger: Error: please use --rules-file when reading CSV from stdin
|
>2 /hledger: Error: please use --rules-file when reading CSV from stdin
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
$$$ hledger check -f csvtwofields.csv
|
$ hledger check -f csvtwofields.csv
|
||||||
>>>2 /hledger: Error: CSV record \["b"\] has less than two fields
|
>2 /hledger: Error: CSV record \["b"\] has less than two fields
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check ordereddates -f ordereddates.j
|
$ hledger check ordereddates -f ordereddates.j
|
||||||
>>>2 /hledger: Error: .*ordereddates.j:10:
|
>2 /hledger: Error: .*ordereddates.j:10:
|
||||||
7 \| 2022-01-02 p
|
7 \| 2022-01-02 p
|
||||||
\| \(a\) 1
|
\| \(a\) 1
|
||||||
|
|
||||||
@ -10,4 +10,4 @@ $$$ hledger check ordereddates -f ordereddates.j
|
|||||||
Ordered dates checking is enabled, and this transaction's
|
Ordered dates checking is enabled, and this transaction's
|
||||||
date \(2022-01-01\) is out of order with the previous transaction.
|
date \(2022-01-01\) is out of order with the previous transaction.
|
||||||
Consider/
|
Consider/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f parseable-dates.j
|
$ hledger check -f parseable-dates.j
|
||||||
>>>2 /hledger: Error: .*parseable-dates.j:3:1:
|
>2 /hledger: Error: .*parseable-dates.j:3:1:
|
||||||
\|
|
\|
|
||||||
3 \| 2022\/1\/32
|
3 \| 2022\/1\/32
|
||||||
\| \^\^\^\^\^\^\^\^\^
|
\| \^\^\^\^\^\^\^\^\^
|
||||||
@ -7,4 +7,4 @@ $$$ hledger check -f parseable-dates.j
|
|||||||
This date is invalid, please correct it: 2022\/1\/32
|
This date is invalid, please correct it: 2022\/1\/32
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f parseable-regexps.j
|
$ hledger check -f parseable-regexps.j
|
||||||
>>>2 /hledger: Error: .*parseable-regexps.j:3:8:
|
>2 /hledger: Error: .*parseable-regexps.j:3:8:
|
||||||
\|
|
\|
|
||||||
3 \| alias \/\(\/ = a
|
3 \| alias \/\(\/ = a
|
||||||
\| \^
|
\| \^
|
||||||
@ -8,4 +8,4 @@ This regular expression is malformed, please correct it:
|
|||||||
\(
|
\(
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f parseable.j
|
$ hledger check -f parseable.j
|
||||||
>>>2 /hledger: Error: .*parseable.j:3:2:
|
>2 /hledger: Error: .*parseable.j:3:2:
|
||||||
\|
|
\|
|
||||||
3 \| 1
|
3 \| 1
|
||||||
\| \^
|
\| \^
|
||||||
@ -7,4 +7,4 @@ unexpected newline
|
|||||||
expecting date separator or digit
|
expecting date separator or digit
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check payees -f payees.j
|
$ hledger check payees -f payees.j
|
||||||
>>>2 /hledger: Error: .*payees.j:6:
|
>2 /hledger: Error: .*payees.j:6:
|
||||||
6 \| 2022-01-01 p
|
6 \| 2022-01-01 p
|
||||||
\| \^
|
\| \^
|
||||||
\| \(a\) A 1
|
\| \(a\) A 1
|
||||||
@ -11,4 +11,4 @@ Consider adding a payee directive. Examples:
|
|||||||
payee p
|
payee p
|
||||||
|
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check recentassertions -f recentassertions.j
|
$ hledger check recentassertions -f recentassertions.j
|
||||||
>>>2 /hledger: Error: .*recentassertions.j:5:8:
|
>2 /hledger: Error: .*recentassertions.j:5:8:
|
||||||
\| 2022-01-01 \*
|
\| 2022-01-01 \*
|
||||||
5 \| a 0 = 0
|
5 \| a 0 = 0
|
||||||
\| \^\^\^
|
\| \^\^\^
|
||||||
@ -8,4 +8,4 @@ The recentassertions check is enabled, so accounts with balance assertions must
|
|||||||
have a balance assertion no more than 7 days before their latest posting date.
|
have a balance assertion no more than 7 days before their latest posting date.
|
||||||
In account a,
|
In account a,
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f tcclockouttime.timeclock
|
$ hledger check -f tcclockouttime.timeclock
|
||||||
>>>2 /hledger: Error: .*tcclockouttime.timeclock:5:1:
|
>2 /hledger: Error: .*tcclockouttime.timeclock:5:1:
|
||||||
\| i 2022-01-01 00:01:00
|
\| i 2022-01-01 00:01:00
|
||||||
5 \| o 2022-01-01 00:00:00
|
5 \| o 2022-01-01 00:00:00
|
||||||
\| \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^
|
\| \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^
|
||||||
@ -7,4 +7,4 @@ $$$ hledger check -f tcclockouttime.timeclock
|
|||||||
This clockout time \(2022-01-01 00:00:00\) is earlier than the previous clockin.
|
This clockout time \(2022-01-01 00:00:00\) is earlier than the previous clockin.
|
||||||
Please adjust it to be later than 2022-01-01 00:01:00.
|
Please adjust it to be later than 2022-01-01 00:01:00.
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check -f tcorderedactions.timeclock
|
$ hledger check -f tcorderedactions.timeclock
|
||||||
>>>2 /hledger: Error: .*tcorderedactions.timeclock:8:1:
|
>2 /hledger: Error: .*tcorderedactions.timeclock:8:1:
|
||||||
8 \| i 2022-01-01 00:01:00
|
8 \| i 2022-01-01 00:01:00
|
||||||
\| \^
|
\| \^
|
||||||
|
|
||||||
@ -7,4 +7,4 @@ Expected a timeclock o entry but got i.
|
|||||||
Only one session may be clocked in at a time.
|
Only one session may be clocked in at a time.
|
||||||
Please alternate i and o, beginning with i.
|
Please alternate i and o, beginning with i.
|
||||||
/
|
/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
$$$ hledger check uniqueleafnames -f uniqueleafnames.j
|
$ hledger check uniqueleafnames -f uniqueleafnames.j
|
||||||
>>>2 /hledger: Error: .*uniqueleafnames.j:12:
|
>2 /hledger: Error: .*uniqueleafnames.j:12:
|
||||||
\| 2022-01-01 p
|
\| 2022-01-01 p
|
||||||
9 \| \(a:c\) 1
|
9 \| \(a:c\) 1
|
||||||
...
|
...
|
||||||
@ -10,4 +10,4 @@ $$$ hledger check uniqueleafnames -f uniqueleafnames.j
|
|||||||
Checking for unique account leaf names is enabled, and
|
Checking for unique account leaf names is enabled, and
|
||||||
account leaf name "c" is not unique.
|
account leaf name "c" is not unique.
|
||||||
It appears in these account names, which a/
|
It appears in these account names, which a/
|
||||||
>>>= 1
|
>= 1
|
||||||
|
|||||||
@ -1,17 +1,13 @@
|
|||||||
hledger -f - register τράπ
|
<
|
||||||
<<<
|
|
||||||
2009-01-01 проверка
|
2009-01-01 проверка
|
||||||
τράπεζα 10 руб
|
τράπεζα 10 руб
|
||||||
नकद
|
नकद
|
||||||
>>>
|
$ hledger -f - register τράπ
|
||||||
2009-01-01 проверка τράπεζα 10 руб 10 руб
|
2009-01-01 проверка τράπεζα 10 руб 10 руб
|
||||||
>>>=0
|
|
||||||
|
|
||||||
hledger -f - balance -N " ét"
|
<
|
||||||
<<<
|
|
||||||
2020-09-19 Test
|
2020-09-19 Test
|
||||||
assets:a ét 5
|
assets:a ét 5
|
||||||
assets:b
|
assets:b
|
||||||
>>>
|
$ hledger -f - balance -N " ét"
|
||||||
5 assets:a ét
|
5 assets:a ét
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
hledger -f - balance
|
<
|
||||||
<<<
|
|
||||||
2009-01-01 проверка
|
2009-01-01 проверка
|
||||||
τράπεζα 10 руб
|
τράπεζα 10 руб
|
||||||
नकद
|
नकद
|
||||||
>>>
|
$ hledger -f - balance
|
||||||
10 руб τράπεζα
|
10 руб τράπεζα
|
||||||
-10 руб नकद
|
-10 руб नकद
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,12 +1,10 @@
|
|||||||
hledger -f - register desc:аура
|
<
|
||||||
<<<
|
|
||||||
2009-01-01 аура (cyrillic letters)
|
2009-01-01 аура (cyrillic letters)
|
||||||
bank 10
|
bank 10
|
||||||
cash
|
cash
|
||||||
2010-01-01 aypa (roman letters)
|
2010-01-01 aypa (roman letters)
|
||||||
bank 20
|
bank 20
|
||||||
cash
|
cash
|
||||||
>>>
|
$ hledger -f - register desc:аура
|
||||||
2009-01-01 аура (cyrillic le.. bank 10 10
|
2009-01-01 аура (cyrillic le.. bank 10 10
|
||||||
cash -10 0
|
cash -10 0
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
hledger -f - balance
|
<
|
||||||
<<<
|
|
||||||
2009-01-01 broken entry
|
2009-01-01 broken entry
|
||||||
дебит 1
|
дебит 1
|
||||||
кредит -2
|
кредит -2
|
||||||
>>>2 /дебит/
|
$ hledger -f - balance
|
||||||
>>>= 1
|
>2 /дебит/
|
||||||
|
>= 1
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2009-01-01 проверка
|
2009-01-01 проверка
|
||||||
счёт:первый 1
|
счёт:первый 1
|
||||||
счёт:второй
|
счёт:второй
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2009-01-01 проверка
|
2009-01-01 проверка
|
||||||
счёт:первый 1
|
счёт:первый 1
|
||||||
счёт:второй
|
счёт:второй
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|||||||
@ -1,9 +1,7 @@
|
|||||||
hledger -f - register
|
<
|
||||||
<<<
|
|
||||||
2009-01-01 проверка
|
2009-01-01 проверка
|
||||||
τράπεζα 10 руб
|
τράπεζα 10 руб
|
||||||
नकद
|
नकद
|
||||||
>>>
|
$ hledger -f - register
|
||||||
2009-01-01 проверка τράπεζα 10 руб 10 руб
|
2009-01-01 проверка τράπεζα 10 руб 10 руб
|
||||||
नकद -10 руб 0
|
नकद -10 руб 0
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -5,8 +5,7 @@
|
|||||||
# XXX how to test hledger-ui ?
|
# XXX how to test hledger-ui ?
|
||||||
|
|
||||||
# 1.
|
# 1.
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2000-01-01 transaction 1
|
2000-01-01 transaction 1
|
||||||
㐀 㐃㐃1 @ 2 㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂
|
㐀 㐃㐃1 @ 2 㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂
|
||||||
㐀:㐁 ;㐃㐃-1
|
㐀:㐁 ;㐃㐃-1
|
||||||
@ -18,7 +17,7 @@ hledger -f - print
|
|||||||
2000-01-03 transaction 3
|
2000-01-03 transaction 3
|
||||||
㐀:㐁:㐂:㐃:㐄 1
|
㐀:㐁:㐂:㐃:㐄 1
|
||||||
㐀 -1
|
㐀 -1
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2000-01-01 transaction 1
|
2000-01-01 transaction 1
|
||||||
㐀 㐃㐃1 @ 2 㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂
|
㐀 㐃㐃1 @ 2 㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂㐂
|
||||||
㐀:㐁 ; 㐃㐃-1
|
㐀:㐁 ; 㐃㐃-1
|
||||||
@ -31,36 +30,28 @@ hledger -f - print
|
|||||||
㐀:㐁:㐂:㐃:㐄 1
|
㐀:㐁:㐂:㐃:㐄 1
|
||||||
㐀 -1
|
㐀 -1
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2.
|
# 2.
|
||||||
hledger -f chinese.journal register --width 80
|
$ hledger -f chinese.journal register --width 80
|
||||||
>>>
|
|
||||||
2000-01-01 transaction 1 㐀 1 A 1 A
|
2000-01-01 transaction 1 㐀 1 A 1 A
|
||||||
㐀:㐁 -1 A 0
|
㐀:㐁 -1 A 0
|
||||||
2000-01-02 transaction 2 㐀:㐁:㐂 1 A 1 A
|
2000-01-02 transaction 2 㐀:㐁:㐂 1 A 1 A
|
||||||
㐀:㐁:㐂:㐃 -1 A 0
|
㐀:㐁:㐂:㐃 -1 A 0
|
||||||
2000-01-03 transaction 3 㐀:㐁:㐂:㐃:㐄 1 A 1 A
|
2000-01-03 transaction 3 㐀:㐁:㐂:㐃:㐄 1 A 1 A
|
||||||
㐀 -1 A 0
|
㐀 -1 A 0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3.
|
# 3.
|
||||||
hledger -f chinese.journal balance --tree
|
$ hledger -f chinese.journal balance --tree
|
||||||
>>>
|
|
||||||
0 㐀:㐁
|
0 㐀:㐁
|
||||||
1 A 㐂
|
1 A 㐂
|
||||||
0 㐃
|
0 㐃
|
||||||
1 A 㐄
|
1 A 㐄
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4.
|
# 4.
|
||||||
hledger -f chinese.journal balance -Y
|
$ hledger -f chinese.journal balance -Y
|
||||||
>>>
|
|
||||||
Balance changes in 2000:
|
Balance changes in 2000:
|
||||||
|
|
||||||
|| 2000
|
|| 2000
|
||||||
@ -71,8 +62,6 @@ Balance changes in 2000:
|
|||||||
㐀:㐁:㐂:㐃:㐄 || 1 A
|
㐀:㐁:㐂:㐃:㐄 || 1 A
|
||||||
----------------++------
|
----------------++------
|
||||||
|| 0
|
|| 0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5.
|
# 5.
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
# 1. Simple statement works
|
# 1. Simple statement works
|
||||||
hledger -f - incomestatement
|
<
|
||||||
<<<
|
|
||||||
2016/1/1
|
2016/1/1
|
||||||
income 1
|
income 1
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger -f - incomestatement
|
||||||
Income Statement 2016-01-01
|
Income Statement 2016-01-01
|
||||||
|
|
||||||
|| 2016-01-01
|
|| 2016-01-01
|
||||||
@ -21,12 +20,9 @@ Income Statement 2016-01-01
|
|||||||
||
|
||
|
||||||
==========++============
|
==========++============
|
||||||
Net: || -1
|
Net: || -1
|
||||||
>>>2
|
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 2. Period reporting works for a specific year
|
# 2. Period reporting works for a specific year
|
||||||
hledger -f - incomestatement -b 2016 -e 2017
|
<
|
||||||
<<<
|
|
||||||
2015/10/10 Client A | Invoice #1
|
2015/10/10 Client A | Invoice #1
|
||||||
assets:receivables $10,000.00
|
assets:receivables $10,000.00
|
||||||
revenue:clients:A -$10,000.00
|
revenue:clients:A -$10,000.00
|
||||||
@ -46,7 +42,7 @@ hledger -f - incomestatement -b 2016 -e 2017
|
|||||||
2016/03/01 Deposit | Invoice #2
|
2016/03/01 Deposit | Invoice #2
|
||||||
assets:checking $10.00
|
assets:checking $10.00
|
||||||
assets:receivables -$10.00
|
assets:receivables -$10.00
|
||||||
>>>
|
$ hledger -f - incomestatement -b 2016 -e 2017
|
||||||
Income Statement 2016
|
Income Statement 2016
|
||||||
|
|
||||||
|| 2016
|
|| 2016
|
||||||
@ -64,12 +60,9 @@ Income Statement 2016
|
|||||||
|| $50.00
|
|| $50.00
|
||||||
===================++=========
|
===================++=========
|
||||||
Net: || $-40.00
|
Net: || $-40.00
|
||||||
>>>2
|
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 3. Period reporting works for two years
|
# 3. Period reporting works for two years
|
||||||
hledger -f - incomestatement -b 2015 -e 2017
|
<
|
||||||
<<<
|
|
||||||
2015/10/10 Client A | Invoice #1
|
2015/10/10 Client A | Invoice #1
|
||||||
assets:receivables $10,000.00
|
assets:receivables $10,000.00
|
||||||
revenue:clients:A -$10,000.00
|
revenue:clients:A -$10,000.00
|
||||||
@ -89,7 +82,7 @@ hledger -f - incomestatement -b 2015 -e 2017
|
|||||||
2016/03/01 Deposit | Invoice #2
|
2016/03/01 Deposit | Invoice #2
|
||||||
assets:checking $10.00
|
assets:checking $10.00
|
||||||
assets:receivables -$10.00
|
assets:receivables -$10.00
|
||||||
>>>
|
$ hledger -f - incomestatement -b 2015 -e 2017
|
||||||
Income Statement 2015-01-01..2016-12-31
|
Income Statement 2015-01-01..2016-12-31
|
||||||
|
|
||||||
|| 2015-01-01..2016-12-31
|
|| 2015-01-01..2016-12-31
|
||||||
@ -108,12 +101,9 @@ Income Statement 2015-01-01..2016-12-31
|
|||||||
|| $50.00
|
|| $50.00
|
||||||
===================++========================
|
===================++========================
|
||||||
Net: || $9,960.00
|
Net: || $9,960.00
|
||||||
>>>2
|
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 4. Period reporting works for one month
|
# 4. Period reporting works for one month
|
||||||
hledger -f - incomestatement -b 2015/10 -e 2015/11
|
<
|
||||||
<<<
|
|
||||||
2015/10/10 Client A | Invoice #1
|
2015/10/10 Client A | Invoice #1
|
||||||
assets:receivables $10,000.00
|
assets:receivables $10,000.00
|
||||||
revenue:clients:A -$10,000.00
|
revenue:clients:A -$10,000.00
|
||||||
@ -133,7 +123,7 @@ hledger -f - incomestatement -b 2015/10 -e 2015/11
|
|||||||
2016/03/01 Deposit | Invoice #2
|
2016/03/01 Deposit | Invoice #2
|
||||||
assets:checking $10.00
|
assets:checking $10.00
|
||||||
assets:receivables -$10.00
|
assets:receivables -$10.00
|
||||||
>>>
|
$ hledger -f - incomestatement -b 2015/10 -e 2015/11
|
||||||
Income Statement 2015-10
|
Income Statement 2015-10
|
||||||
|
|
||||||
|| Oct
|
|| Oct
|
||||||
@ -150,12 +140,9 @@ Income Statement 2015-10
|
|||||||
||
|
||
|
||||||
===================++============
|
===================++============
|
||||||
Net: || $10,000.00
|
Net: || $10,000.00
|
||||||
>>>2
|
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 5. Period reporting works for one month in another year
|
# 5. Period reporting works for one month in another year
|
||||||
hledger -f - incomestatement -b 2016/10 -e 2016/11
|
<
|
||||||
<<<
|
|
||||||
2015/10/10 Client A | Invoice #1
|
2015/10/10 Client A | Invoice #1
|
||||||
assets:receivables $10,000.00
|
assets:receivables $10,000.00
|
||||||
revenue:clients:A -$10,000.00
|
revenue:clients:A -$10,000.00
|
||||||
@ -175,7 +162,7 @@ hledger -f - incomestatement -b 2016/10 -e 2016/11
|
|||||||
2016/03/01 Deposit | Invoice #2
|
2016/03/01 Deposit | Invoice #2
|
||||||
assets:checking $10.00
|
assets:checking $10.00
|
||||||
assets:receivables -$10.00
|
assets:receivables -$10.00
|
||||||
>>>
|
$ hledger -f - incomestatement -b 2016/10 -e 2016/11
|
||||||
Income Statement 2016-10
|
Income Statement 2016-10
|
||||||
|
|
||||||
|| Oct
|
|| Oct
|
||||||
@ -191,8 +178,6 @@ Income Statement 2016-10
|
|||||||
||
|
||
|
||||||
==========++=====
|
==========++=====
|
||||||
Net: ||
|
Net: ||
|
||||||
>>>2
|
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 6. Multicolumn test
|
# 6. Multicolumn test
|
||||||
# old (arithmetic sign):
|
# old (arithmetic sign):
|
||||||
@ -216,8 +201,7 @@ Income Statement 2016-10
|
|||||||
# ===================++==============================================================================================================================
|
# ===================++==============================================================================================================================
|
||||||
# Total || $-1 0 0 0 0 $1 0 0 0 0 0 0 0 0
|
# Total || $-1 0 0 0 0 $1 0 0 0 0 0 0 0 0
|
||||||
#
|
#
|
||||||
hledger -f sample.journal incomestatement -p 'monthly in 2008' -AT
|
$ hledger -f sample.journal incomestatement -p 'monthly in 2008' -AT
|
||||||
>>>
|
|
||||||
Income Statement 2008
|
Income Statement 2008
|
||||||
|
|
||||||
|| Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total Average
|
|| Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total Average
|
||||||
@ -237,7 +221,6 @@ Income Statement 2008
|
|||||||
|| 0 0 0 0 0 $2 0 0 0 0 0 0 $2 0
|
|| 0 0 0 0 0 $2 0 0 0 0 0 0 $2 0
|
||||||
===================++==============================================================================
|
===================++==============================================================================
|
||||||
Net: || $1 0 0 0 0 $-1 0 0 0 0 0 0 0 0
|
Net: || $1 0 0 0 0 $-1 0 0 0 0 0 0 0 0
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 7. Multicolumn test (historical)
|
# 7. Multicolumn test (historical)
|
||||||
# old (arithmetic sign):
|
# old (arithmetic sign):
|
||||||
@ -261,8 +244,7 @@ Income Statement 2008
|
|||||||
# ===================++================================================================================================================================================
|
# ===================++================================================================================================================================================
|
||||||
# Total || $-1 $-1 $-1 $-1 $-1 0 0 0 0 0 0 0
|
# Total || $-1 $-1 $-1 $-1 $-1 0 0 0 0 0 0 0
|
||||||
#
|
#
|
||||||
hledger -f sample.journal incomestatement -p 'monthly in 2008' --historical
|
$ hledger -f sample.journal incomestatement -p 'monthly in 2008' --historical
|
||||||
>>>
|
|
||||||
Income Statement 2008-01-31..2008-12-31 (Historical Ending Balances)
|
Income Statement 2008-01-31..2008-12-31 (Historical Ending Balances)
|
||||||
|
|
||||||
|| 2008-01-31 2008-02-29 2008-03-31 2008-04-30 2008-05-31 2008-06-30 2008-07-31 2008-08-31 2008-09-30 2008-10-31 2008-11-30 2008-12-31
|
|| 2008-01-31 2008-02-29 2008-03-31 2008-04-30 2008-05-31 2008-06-30 2008-07-31 2008-08-31 2008-09-30 2008-10-31 2008-11-30 2008-12-31
|
||||||
@ -282,11 +264,9 @@ Income Statement 2008-01-31..2008-12-31 (Historical Ending Balances)
|
|||||||
|| 0 0 0 0 0 $2 $2 $2 $2 $2 $2 $2
|
|| 0 0 0 0 0 $2 $2 $2 $2 $2 $2 $2
|
||||||
===================++================================================================================================================================================
|
===================++================================================================================================================================================
|
||||||
Net: || $1 $1 $1 $1 $1 0 0 0 0 0 0 0
|
Net: || $1 $1 $1 $1 $1 0 0 0 0 0 0 0
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 8. Percentage test
|
# 8. Percentage test
|
||||||
hledger -f sample.journal incomestatement -p 'quarterly 2008' -T --average -% --no-total
|
$ hledger -f sample.journal incomestatement -p 'quarterly 2008' -T --average -% --no-total
|
||||||
>>>
|
|
||||||
Income Statement 2008
|
Income Statement 2008
|
||||||
|
|
||||||
|| 2008Q1 2008Q2 2008Q3 2008Q4 Total Average
|
|| 2008Q1 2008Q2 2008Q3 2008Q4 Total Average
|
||||||
@ -300,17 +280,15 @@ Income Statement 2008
|
|||||||
-------------------++----------------------------------------------------
|
-------------------++----------------------------------------------------
|
||||||
expenses:food || 0 50.0 % 0 0 50.0 % 50.0 %
|
expenses:food || 0 50.0 % 0 0 50.0 % 50.0 %
|
||||||
expenses:supplies || 0 50.0 % 0 0 50.0 % 50.0 %
|
expenses:supplies || 0 50.0 % 0 0 50.0 % 50.0 %
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 9. With --declared, declared leaf accounts are included, and in the right place.
|
# 9. With --declared, declared leaf accounts are included, and in the right place.
|
||||||
hledger -f - incomestatement -N -E --declared
|
<
|
||||||
<<<
|
|
||||||
account revenues
|
account revenues
|
||||||
account revenues:aa
|
account revenues:aa
|
||||||
account revenues:ab
|
account revenues:ab
|
||||||
account revenues:ac:aca
|
account revenues:ac:aca
|
||||||
account expenses
|
account expenses
|
||||||
>>>
|
$ hledger -f - incomestatement -N -E --declared
|
||||||
Income Statement ..
|
Income Statement ..
|
||||||
|
|
||||||
|| ..
|
|| ..
|
||||||
@ -324,4 +302,3 @@ Income Statement ..
|
|||||||
Expenses ||
|
Expenses ||
|
||||||
-----------------++----
|
-----------------++----
|
||||||
expenses || 0
|
expenses || 0
|
||||||
>>>= 0
|
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
# 1. accept a blank description
|
# 1. accept a blank description
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>=0
|
$ hledger -f- print
|
||||||
|
> //
|
||||||
|
|
||||||
# 2. same, but no separator space after the date
|
# 2. same, but no separator space after the date
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>=0
|
$ hledger -f- print
|
||||||
|
> //
|
||||||
|
|||||||
@ -3,8 +3,7 @@
|
|||||||
# 1. several comment characters allowed for file characters;
|
# 1. several comment characters allowed for file characters;
|
||||||
# print shows in-transaction & posting comments;
|
# print shows in-transaction & posting comments;
|
||||||
# comment line is preserved, starting column is not.
|
# comment line is preserved, starting column is not.
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
; file comments, ignored
|
; file comments, ignored
|
||||||
# file comment using a hash
|
# file comment using a hash
|
||||||
* file comment using a star (org node)
|
* file comment using a star (org node)
|
||||||
@ -22,7 +21,7 @@ hledger -f - print
|
|||||||
; file comment right after the transaction, ignored
|
; file comment right after the transaction, ignored
|
||||||
|
|
||||||
; trailing file comment, ignored
|
; trailing file comment, ignored
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2009-01-01 x ; transaction same line comment
|
2009-01-01 x ; transaction same line comment
|
||||||
; transaction new line comment
|
; transaction new line comment
|
||||||
a 1 ; posting 1 same line comment
|
a 1 ; posting 1 same line comment
|
||||||
@ -30,36 +29,32 @@ hledger -f - print
|
|||||||
a
|
a
|
||||||
; posting 2 new line comment
|
; posting 2 new line comment
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. transaction comments must use ;
|
# 2. transaction comments must use ;
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2017/1/1 this # and * are not ; the comment
|
2017/1/1 this # and * are not ; the comment
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2017-01-01 this # and * are not ; the comment
|
2017-01-01 this # and * are not ; the comment
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. posting comments must use ;
|
# 3. posting comments must use ;
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 0 # hash & star not allowed for posting comments
|
a 0 # hash & star not allowed for posting comments
|
||||||
>>>=1
|
$ hledger -f - print
|
||||||
|
> //
|
||||||
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 4. register does not show comments
|
# 4. register does not show comments
|
||||||
hledger -f - register
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
a 1 ; comment
|
a 1 ; comment
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>
|
$ hledger -f - register
|
||||||
2010-01-01 x a 1 1
|
2010-01-01 x a 1 1
|
||||||
b -1 0
|
b -1 0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
|
|||||||
@ -1,44 +1,43 @@
|
|||||||
# invalid dates should be rejected
|
# invalid dates should be rejected
|
||||||
# 1. valid month and day, but flipped
|
# 1. valid month and day, but flipped
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2010/31/12 x
|
2010/31/12 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>2 /date is invalid/
|
$ hledger -f- print
|
||||||
>>>= 1
|
>2 /date is invalid/
|
||||||
|
>= 1
|
||||||
# 2. too-large day
|
# 2. too-large day
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2010/12/32 x
|
2010/12/32 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>2 /date is invalid/
|
$ hledger -f- print
|
||||||
>>>= 1
|
>2 /date is invalid/
|
||||||
|
>= 1
|
||||||
# 3. 29th feb on leap year should be ok
|
# 3. 29th feb on leap year should be ok
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2000/2/29 x
|
2000/2/29 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger -f- print
|
||||||
2000-02-29 x
|
2000-02-29 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>= 0
|
>= 0
|
||||||
# 4. 29th feb on non-leap year should fail
|
# 4. 29th feb on non-leap year should fail
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2001/2/29 x
|
2001/2/29 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>2 /date is invalid/
|
$ hledger -f- print
|
||||||
>>>= 1
|
>2 /date is invalid/
|
||||||
|
>= 1
|
||||||
# 5. dates must be followed by whitespace or newline
|
# 5. dates must be followed by whitespace or newline
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2015/9/6*
|
2015/9/6*
|
||||||
a 0
|
a 0
|
||||||
>>>2 /unexpected '*'/
|
$ hledger -f- print
|
||||||
>>>= 1
|
>2 /unexpected '*'/
|
||||||
|
>= 1
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
# 1. nested includes in subdirectories
|
# 1. nested includes in subdirectories
|
||||||
mkdir -p b/c/d ; printf '2010/1/1\n (D) 1\n' >b/c/d/d.journal ; printf '2010/1/1\n (C) 1\ninclude d/d.journal\n' >b/c/c.journal ; printf '2010/1/1\n (B) 1\ninclude c/c.journal\n' >b/b.journal ; printf '2010/1/1\n (A) 1\ninclude b/b.journal\n' >a.journal ; hledger -f a.journal print; rm -rf a.journal bG
|
$ mkdir -p b/c/d ; printf '2010/1/1\n (D) 1\n' >b/c/d/d.journal ; printf '2010/1/1\n (C) 1\ninclude d/d.journal\n' >b/c/c.journal ; printf '2010/1/1\n (B) 1\ninclude c/c.journal\n' >b/b.journal ; printf '2010/1/1\n (A) 1\ninclude b/b.journal\n' >a.journal ; hledger -f a.journal print; rm -rf a.journal bG
|
||||||
>>>
|
|
||||||
2010-01-01
|
2010-01-01
|
||||||
(A) 1
|
(A) 1
|
||||||
|
|
||||||
@ -13,18 +12,16 @@
|
|||||||
2010-01-01
|
2010-01-01
|
||||||
(D) 1
|
(D) 1
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. including other formats
|
# 2. including other formats
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2016/1/1
|
2016/1/1
|
||||||
(x) 1
|
(x) 1
|
||||||
|
|
||||||
include a.timeclock
|
include a.timeclock
|
||||||
include b.timedot
|
include b.timedot
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2016-01-01
|
2016-01-01
|
||||||
(x) 1.00
|
(x) 1.00
|
||||||
|
|
||||||
@ -34,69 +31,61 @@ include b.timedot
|
|||||||
2016-01-01 *
|
2016-01-01 *
|
||||||
(b.bb) 1.00
|
(b.bb) 1.00
|
||||||
|
|
||||||
>>>=0
|
>=
|
||||||
|
|
||||||
# 3. include glob patterns
|
# 3. include glob patterns
|
||||||
printf '2018/01/01\n (A) 1\n' >ab.journal; printf '2018/01/01\n (B) 1' >bb.journal; hledger -f - print; rm -f ab.journal bb.journal
|
<
|
||||||
<<<
|
|
||||||
include *b.journal
|
include *b.journal
|
||||||
>>>
|
$ printf '2018/01/01\n (A) 1\n' >ab.journal; printf '2018/01/01\n (B) 1' >bb.journal; hledger -f - print; rm -f ab.journal bb.journal
|
||||||
2018-01-01
|
2018-01-01
|
||||||
(A) 1
|
(A) 1
|
||||||
|
|
||||||
2018-01-01
|
2018-01-01
|
||||||
(B) 1
|
(B) 1
|
||||||
|
|
||||||
>>>=0
|
>=
|
||||||
|
|
||||||
# 4. include invalid glob patterns
|
# 4. include invalid glob patterns
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
include [.journal
|
include [.journal
|
||||||
>>>=1
|
$ hledger -f - print
|
||||||
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 5. include nonexsitant file
|
# 5. include nonexsitant file
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
include doesnotexist.journal
|
include doesnotexist.journal
|
||||||
>>>=1
|
$ hledger -f - print
|
||||||
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 6. include relative to home
|
# 6. include relative to home
|
||||||
printf '2018/01/01\n (A) 1\n' >included.journal; HOME="$PWD" hledger -f - print; rm -rf included.journal
|
<
|
||||||
<<<
|
|
||||||
include ~/included.journal
|
include ~/included.journal
|
||||||
>>>
|
$ printf '2018/01/01\n (A) 1\n' >included.journal; HOME="$PWD" hledger -f - print; rm -rf included.journal
|
||||||
2018-01-01
|
2018-01-01
|
||||||
(A) 1
|
(A) 1
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# The next tests require hard coded file names, so are not concurrent-safe.
|
# The next tests require hard coded file names, so are not concurrent-safe.
|
||||||
# They use different file names so a single concurrent shelltest invocation will be fine.
|
# They use different file names so a single concurrent shelltest invocation will be fine.
|
||||||
|
|
||||||
# 7. test that order of include files is maintained
|
# 7. test that order of include files is maintained
|
||||||
printf 'include _b\n' >_a; touch _b; hledger -f _a stats | grep _ | sed -e 's%.*/%%'; rm -rf _a _b
|
$ printf 'include _b\n' >_a; touch _b; hledger -f _a stats | grep _ | sed -e 's%.*/%%'; rm -rf _a _b
|
||||||
>>>
|
|
||||||
_a
|
_a
|
||||||
_b
|
_b
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 8. and with --auto code path
|
# 8. and with --auto code path
|
||||||
printf 'include _d\n=\n' >_c; touch _d; hledger -f _c stats --auto | grep _ | sed -e 's%.*/%%'; rm -rf _c _d
|
$ printf 'include _d\n=\n' >_c; touch _d; hledger -f _c stats --auto | grep _ | sed -e 's%.*/%%'; rm -rf _c _d
|
||||||
>>>
|
|
||||||
_c
|
_c
|
||||||
_d
|
_d
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 9. include using old !include directive
|
# 9. include using old !include directive
|
||||||
printf '2018/01/01\n (A) 1\n' >f.journal; hledger -f - print; rm -f f.journal
|
<
|
||||||
<<<
|
|
||||||
!include f.journal
|
!include f.journal
|
||||||
>>>
|
$ printf '2018/01/01\n (A) 1\n' >f.journal; hledger -f - print; rm -f f.journal
|
||||||
2018-01-01
|
2018-01-01
|
||||||
(A) 1
|
(A) 1
|
||||||
|
|
||||||
>>>=0
|
>=
|
||||||
|
|||||||
@ -1,236 +1,203 @@
|
|||||||
# 1. Simple case
|
# 1. Simple case
|
||||||
hledger bal -f - --no-total
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,000.00 EUR
|
a 1,000.00 EUR
|
||||||
b -1,000.00 EUR
|
b -1,000.00 EUR
|
||||||
>>>
|
$ hledger bal -f - --no-total
|
||||||
1,000.00 EUR a
|
1,000.00 EUR a
|
||||||
-1,000.00 EUR b
|
-1,000.00 EUR b
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. No digits before decimal sep
|
# 2. No digits before decimal sep
|
||||||
hledger bal -f - --no-total
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a .01 EUR
|
a .01 EUR
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger bal -f - --no-total
|
||||||
0.01 EUR a
|
0.01 EUR a
|
||||||
-0.01 EUR b
|
-0.01 EUR b
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. No digits after decimal sep
|
# 3. No digits after decimal sep
|
||||||
hledger bal -f - --no-total
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1. EUR
|
a 1. EUR
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger bal -f - --no-total
|
||||||
1 EUR a
|
1 EUR a
|
||||||
-1 EUR b
|
-1 EUR b
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. No digits at all
|
# 4. No digits at all
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a . EUR
|
a . EUR
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 5. Space between digits groups
|
# 5. Space between digits groups
|
||||||
hledger bal -f - --no-total
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1 000.00 EUR
|
a 1 000.00 EUR
|
||||||
b -1 000.00 EUR
|
b -1 000.00 EUR
|
||||||
>>>
|
$ hledger bal -f - --no-total
|
||||||
1 000.00 EUR a
|
1 000.00 EUR a
|
||||||
-1 000.00 EUR b
|
-1 000.00 EUR b
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 6. Space between digits groups in commodity directive
|
# 6. Space between digits groups in commodity directive
|
||||||
hledger bal -f - --no-total
|
<
|
||||||
<<<
|
|
||||||
commodity 1 000.00 EUR
|
commodity 1 000.00 EUR
|
||||||
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,000.00 EUR
|
a 1,000.00 EUR
|
||||||
b -1,000.00 EUR
|
b -1,000.00 EUR
|
||||||
>>>
|
$ hledger bal -f - --no-total
|
||||||
1 000.00 EUR a
|
1 000.00 EUR a
|
||||||
-1 000.00 EUR b
|
-1 000.00 EUR b
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 7. Default commodity
|
# 7. Default commodity
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
D 1,000.00 EUR
|
D 1,000.00 EUR
|
||||||
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,000
|
a 1,000
|
||||||
b -1,000 EUR
|
b -1,000 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
1,000.00 EUR a
|
1,000.00 EUR a
|
||||||
-1,000.00 EUR b
|
-1,000.00 EUR b
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 8. Omitted decimals
|
# 8. Omitted decimals
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,000 EUR
|
a 1,000 EUR
|
||||||
b -1,000.00 EUR
|
b -1,000.00 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 9. Omitted decimals with commodity hint
|
# 9. Omitted decimals with commodity hint
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
commodity 1,000.00 EUR
|
commodity 1,000.00 EUR
|
||||||
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,000 EUR
|
a 1,000 EUR
|
||||||
b -1,000.00 EUR
|
b -1,000.00 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
1,000.00 EUR a
|
1,000.00 EUR a
|
||||||
-1,000.00 EUR b
|
-1,000.00 EUR b
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 10. Omitted decimals with commodity hint and symbol on left
|
# 10. Omitted decimals with commodity hint and symbol on left
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
commodity €1,000.00
|
commodity €1,000.00
|
||||||
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a €1,000
|
a €1,000
|
||||||
b €-1,000.00
|
b €-1,000.00
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
€1,000.00 a
|
€1,000.00 a
|
||||||
€-1,000.00 b
|
€-1,000.00 b
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 11. Commodity directive requires a decimal separator
|
# 11. Commodity directive requires a decimal separator
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
commodity 1000 EUR
|
commodity 1000 EUR
|
||||||
>>>2 /Please include a decimal point or decimal comma/
|
$ hledger bal -f -
|
||||||
>>>=1
|
> //
|
||||||
|
>2 /Please include a decimal point or decimal comma/
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 12. Commodity directive with zero precision
|
# 12. Commodity directive with zero precision
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
commodity 100. EUR
|
commodity 100. EUR
|
||||||
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,000 EUR
|
a 1,000 EUR
|
||||||
b -1,000.00 EUR
|
b -1,000.00 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
1000 EUR a
|
1000 EUR a
|
||||||
-1000 EUR b
|
-1000 EUR b
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 13. Big prices
|
# 13. Big prices
|
||||||
hledger bal -f - --no-total
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a -1 BTC @ 24,840 UAH
|
a -1 BTC @ 24,840 UAH
|
||||||
b 24,840.00 UAH
|
b 24,840.00 UAH
|
||||||
>>>
|
$ hledger bal -f - --no-total
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 14. Big prices with commodity hint
|
# 14. Big prices with commodity hint
|
||||||
hledger bal -f - --no-total
|
<
|
||||||
<<<
|
|
||||||
commodity ₴1,000.00
|
commodity ₴1,000.00
|
||||||
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a -1 BTC @ ₴24,840
|
a -1 BTC @ ₴24,840
|
||||||
b ₴24,840.00
|
b ₴24,840.00
|
||||||
>>>
|
$ hledger bal -f - --no-total
|
||||||
-1 BTC a
|
-1 BTC a
|
||||||
₴24,840.00 b
|
₴24,840.00 b
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 15. adjacent punctuation chars
|
# 15. adjacent punctuation chars
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,,0,,0.0 EUR
|
a 1,,0,,0.0 EUR
|
||||||
b -1..0..0,0 EUR
|
b -1..0..0,0 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 16. adjacent punctuation chars of different types
|
# 16. adjacent punctuation chars of different types
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1,0,.0 EUR
|
a 1,0,.0 EUR
|
||||||
b -1.0.,0 EUR
|
b -1.0.,0 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 17. separator chars vary
|
# 17. separator chars vary
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a 1.0,0.0,0 EUR
|
a 1.0,0.0,0 EUR
|
||||||
b -1,0.0,0.0 EUR
|
b -1,0.0,0.0 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 18. number begins with a decimal char
|
# 18. number begins with a decimal char
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a .1 EUR
|
a .1 EUR
|
||||||
b -.1 EUR
|
b -.1 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
0.1 EUR a
|
0.1 EUR a
|
||||||
-0.1 EUR b
|
-0.1 EUR b
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 19. number begins with a separator char
|
# 19. number begins with a separator char
|
||||||
hledger bal -f -
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
a ,100.0 EUR
|
a ,100.0 EUR
|
||||||
b -,100.0 EUR
|
b -,100.0 EUR
|
||||||
>>>
|
$ hledger bal -f -
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 20. long numbers in multi balance reports
|
# 20. long numbers in multi balance reports
|
||||||
hledger bal -YN -f -
|
<
|
||||||
<<<
|
|
||||||
2021-01-01
|
2021-01-01
|
||||||
(a) -0.12345678901234567890123456 EUR
|
(a) -0.12345678901234567890123456 EUR
|
||||||
>>>
|
$ hledger bal -YN -f -
|
||||||
Balance changes in 2021:
|
Balance changes in 2021:
|
||||||
|
|
||||||
|| 2021
|
|| 2021
|
||||||
===++===================================
|
===++===================================
|
||||||
a || -0.12345678901234567890123456 EUR
|
a || -0.12345678901234567890123456 EUR
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,33 +1,31 @@
|
|||||||
# Tests for parentheses and brackets in account names
|
# Tests for parentheses and brackets in account names
|
||||||
|
|
||||||
# 1. Parentheses in the middle of an account name are ignored.
|
# 1. Parentheses in the middle of an account name are ignored.
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2009-01-01 x
|
2009-01-01 x
|
||||||
a 2
|
a 2
|
||||||
b (b) b -1
|
b (b) b -1
|
||||||
c
|
c
|
||||||
|
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2009-01-01 x
|
2009-01-01 x
|
||||||
a 2
|
a 2
|
||||||
b (b) b -1
|
b (b) b -1
|
||||||
c
|
c
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 2. Nested parentheses are removed and the outer brackets are used as the type.
|
# 2. Nested parentheses are removed and the outer brackets are used as the type.
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2023-01-01
|
2023-01-01
|
||||||
[([(a)])] 1
|
[([(a)])] 1
|
||||||
[(b:bb)] 1
|
[(b:bb)] 1
|
||||||
[b:[bbb]]
|
[b:[bbb]]
|
||||||
|
|
||||||
>>>
|
$ hledger -f- print
|
||||||
2023-01-01
|
2023-01-01
|
||||||
[a] 1
|
[a] 1
|
||||||
[b:bb] 1
|
[b:bb] 1
|
||||||
[b:[bbb]]
|
[b:[bbb]]
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
# can we parse this sample journal from c++ ledger source
|
# can we parse this sample journal from c++ ledger source
|
||||||
hledger -f- stats
|
<
|
||||||
<<<
|
|
||||||
; -*- ledger -*-
|
; -*- ledger -*-
|
||||||
|
|
||||||
N $
|
N $
|
||||||
@ -55,4 +54,6 @@ end tag
|
|||||||
; :MyTag:
|
; :MyTag:
|
||||||
Assets:Bank:Checking
|
Assets:Bank:Checking
|
||||||
; :AnotherTag:
|
; :AnotherTag:
|
||||||
>>>= 0
|
$ hledger -f- stats
|
||||||
|
> //
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,15 @@
|
|||||||
# 1. posting dates can be set with a tag. Also the year can be
|
# 1. posting dates can be set with a tag. Also the year can be
|
||||||
# inferred from the transaction. If there are multiple tags, the first
|
# inferred from the transaction. If there are multiple tags, the first
|
||||||
# is used. Date separators /-. are allowed.
|
# is used. Date separators /-. are allowed.
|
||||||
hledger -f- register
|
<
|
||||||
<<<
|
|
||||||
2000/1/2
|
2000/1/2
|
||||||
a 0 ; date: 3/4, date: 4-5, date:6.7
|
a 0 ; date: 3/4, date: 4-5, date:6.7
|
||||||
>>> /^2000-03-04/
|
$ hledger -f- register
|
||||||
>>>=0
|
> /^2000-03-04/
|
||||||
|
|
||||||
# 2. If the date: or date2: tags do not have a valid simple date
|
# 2. If the date: or date2: tags do not have a valid simple date
|
||||||
# value, there should be a corresponding error at the right position
|
# value, there should be a corresponding error at the right position
|
||||||
hledger -f- register
|
<
|
||||||
<<<
|
|
||||||
comment
|
comment
|
||||||
Journal comment to prevent this being parsed as a timedot file
|
Journal comment to prevent this being parsed as a timedot file
|
||||||
end comment
|
end comment
|
||||||
@ -23,23 +21,22 @@ end comment
|
|||||||
b 0
|
b 0
|
||||||
; date: 3.32
|
; date: 3.32
|
||||||
|
|
||||||
>>>2 /10:16/
|
$ hledger -f- register
|
||||||
>>>=1
|
>2 /10:16/
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 3. Ledger's bracketed date syntax is also supported: `[DATE]`,
|
# 3. Ledger's bracketed date syntax is also supported: `[DATE]`,
|
||||||
# `[DATE=DATE2]` or `[=DATE2]`. This is equivalent to using `date:` or
|
# `[DATE=DATE2]` or `[=DATE2]`. This is equivalent to using `date:` or
|
||||||
# `date2:` tags.
|
# `date2:` tags.
|
||||||
hledger -f- register --date2
|
<
|
||||||
<<<
|
|
||||||
2000/1/2
|
2000/1/2
|
||||||
a 0 ; [=3-4]
|
a 0 ; [=3-4]
|
||||||
>>> /^2000-03-04/
|
$ hledger -f- register --date2
|
||||||
>>>=0
|
> /^2000-03-04/
|
||||||
|
|
||||||
# 4. Date parsing and error reporting activates for square brackets
|
# 4. Date parsing and error reporting activates for square brackets
|
||||||
# containing only `0123456789/-.=` characters.
|
# containing only `0123456789/-.=` characters.
|
||||||
hledger -f- register
|
<
|
||||||
<<<
|
|
||||||
comment
|
comment
|
||||||
Journal comment to prevent this being parsed as a timedot file
|
Journal comment to prevent this being parsed as a timedot file
|
||||||
end comment
|
end comment
|
||||||
@ -50,5 +47,6 @@ end comment
|
|||||||
2000/1/2
|
2000/1/2
|
||||||
b 0 ; [1/1=1/2/3/4] bad second date, should error
|
b 0 ; [1/1=1/2/3/4] bad second date, should error
|
||||||
|
|
||||||
>>>2 /-:9:21/
|
$ hledger -f- register
|
||||||
>>>=1
|
>2 /-:9:21/
|
||||||
|
>= 1
|
||||||
|
|||||||
@ -2,67 +2,61 @@
|
|||||||
#
|
#
|
||||||
# 1. original test case, this should balance since price precisions do
|
# 1. original test case, this should balance since price precisions do
|
||||||
# not affect the canonical display precisions used for display and balancing
|
# not affect the canonical display precisions used for display and balancing
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
A 55.3653 C @ 30.92189512 D
|
A 55.3653 C @ 30.92189512 D
|
||||||
A -1712 D
|
A -1712 D
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2010-01-01 x
|
2010-01-01 x
|
||||||
A 55.3653 C @ 30.92189512 D
|
A 55.3653 C @ 30.92189512 D
|
||||||
A -1712 D
|
A -1712 D
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 2. here the price should be printed with its original precision, not
|
# 2. here the price should be printed with its original precision, not
|
||||||
# the canonical display precision. And the inferred amount should be printed
|
# the canonical display precision. And the inferred amount should be printed
|
||||||
# with the canonical precision (2 digits, inferred from the first posting).
|
# with the canonical precision (2 digits, inferred from the first posting).
|
||||||
hledger -f - print --explicit
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a $0.00
|
a $0.00
|
||||||
a 1C @ $1.0049
|
a 1C @ $1.0049
|
||||||
a
|
a
|
||||||
>>>
|
$ hledger -f - print --explicit
|
||||||
2010-01-01
|
2010-01-01
|
||||||
a 0
|
a 0
|
||||||
a 1C @ $1.0049
|
a 1C @ $1.0049
|
||||||
a $-1.0049
|
a $-1.0049
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 3. with $'s display precision at 3 or more, this txn should not balance.
|
# 3. with $'s display precision at 3 or more, this txn should not balance.
|
||||||
# The error message shows the difference with full precision.
|
# The error message shows the difference with full precision.
|
||||||
hledger -f - balance --no-total --cost --empty
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a 1C @ $1.0049
|
a 1C @ $1.0049
|
||||||
a $-1.000
|
a $-1.000
|
||||||
>>>2 /should be 0 but is: \$0.0049/
|
$ hledger -f - balance --no-total --cost --empty
|
||||||
>>>= 1
|
>2 /should be 0 but is: \$0.0049/
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 4. with $'s display precision at 2 or less, this txn should balance
|
# 4. with $'s display precision at 2 or less, this txn should balance
|
||||||
hledger -f - balance --no-total --cost --empty
|
<
|
||||||
<<<
|
|
||||||
2010/1/1
|
2010/1/1
|
||||||
a 1C @ $1.0049
|
a 1C @ $1.0049
|
||||||
a $-1.00
|
a $-1.00
|
||||||
>>>
|
$ hledger -f - balance --no-total --cost --empty
|
||||||
0 a
|
0 a
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5. avamk's 2011/1/19 example
|
# 5. avamk's 2011/1/19 example
|
||||||
hledger -f - balance --cost
|
<
|
||||||
<<<
|
|
||||||
2001/01/01 * ACME fund
|
2001/01/01 * ACME fund
|
||||||
assets:investment:ACME 203.890 ACME @ $16.02
|
assets:investment:ACME 203.890 ACME @ $16.02
|
||||||
equity:opening balances
|
equity:opening balances
|
||||||
>>>
|
$ hledger -f - balance --cost
|
||||||
$3266.32 assets:investment:ACME
|
$3266.32 assets:investment:ACME
|
||||||
$-3266.32 equity:opening balances
|
$-3266.32 equity:opening balances
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# hledger 0.14pre: precision=2, presumably from price
|
# hledger 0.14pre: precision=2, presumably from price
|
||||||
# $3266.32 assets:investment:ACME
|
# $3266.32 assets:investment:ACME
|
||||||
@ -81,18 +75,16 @@ hledger -f - balance --cost
|
|||||||
# 0
|
# 0
|
||||||
|
|
||||||
## 6. with a default commodity..
|
## 6. with a default commodity..
|
||||||
hledger -f - balance --cost
|
<
|
||||||
<<<
|
|
||||||
D $1000.0
|
D $1000.0
|
||||||
2001/01/01 * ACME fund
|
2001/01/01 * ACME fund
|
||||||
assets:investment:ACME 203.890 ACME @ $16.02
|
assets:investment:ACME 203.890 ACME @ $16.02
|
||||||
equity:opening balances
|
equity:opening balances
|
||||||
>>>
|
$ hledger -f - balance --cost
|
||||||
$3266.3 assets:investment:ACME
|
$3266.3 assets:investment:ACME
|
||||||
$-3266.3 equity:opening balances
|
$-3266.3 equity:opening balances
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>=0
|
|
||||||
### hledger 0.14pre: precision=2, presumably from price, ignores D
|
### hledger 0.14pre: precision=2, presumably from price, ignores D
|
||||||
### $3266.32 assets:investment:ACME
|
### $3266.32 assets:investment:ACME
|
||||||
### $-3266.32 equity:opening balances
|
### $-3266.32 equity:opening balances
|
||||||
@ -115,33 +107,31 @@ D $1000.0
|
|||||||
# the max precisions of the commodities being converted (#262).
|
# the max precisions of the commodities being converted (#262).
|
||||||
# Here the (irrational) price should be displayed with just precision 4
|
# Here the (irrational) price should be displayed with just precision 4
|
||||||
# (C's precision 2 + D's precision 2).
|
# (C's precision 2 + D's precision 2).
|
||||||
hledger -f- print --explicit
|
<
|
||||||
<<<
|
|
||||||
2015/1/1
|
2015/1/1
|
||||||
c C 10.00
|
c C 10.00
|
||||||
c C 11.00
|
c C 11.00
|
||||||
d D -320.00
|
d D -320.00
|
||||||
>>>
|
$ hledger -f- print --explicit
|
||||||
2015-01-01
|
2015-01-01
|
||||||
c C 10.00 @ D 15.2381
|
c C 10.00 @ D 15.2381
|
||||||
c C 11.00 @ D 15.2381
|
c C 11.00 @ D 15.2381
|
||||||
d D -320.00
|
d D -320.00
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
|
|
||||||
## 8. Here the price should be displayed with precision 7
|
## 8. Here the price should be displayed with precision 7
|
||||||
# (E's precision 4 + F's precision 3).
|
# (E's precision 4 + F's precision 3).
|
||||||
hledger -f- print --explicit
|
<
|
||||||
<<<
|
|
||||||
2015/1/1
|
2015/1/1
|
||||||
e E 10.0000
|
e E 10.0000
|
||||||
e E 11
|
e E 11
|
||||||
f F -320.000
|
f F -320.000
|
||||||
>>>
|
$ hledger -f- print --explicit
|
||||||
2015-01-01
|
2015-01-01
|
||||||
e E 10.0000 @ F 15.2380952
|
e E 10.0000 @ F 15.2380952
|
||||||
e E 11.0000 @ F 15.2380952
|
e E 11.0000 @ F 15.2380952
|
||||||
f F -320.000
|
f F -320.000
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|||||||
@ -1,17 +1,14 @@
|
|||||||
# just check
|
# just check
|
||||||
hledger -f - bal --no-total
|
<
|
||||||
<<<
|
|
||||||
D $1,000.00
|
D $1,000.00
|
||||||
|
|
||||||
2018/1/1
|
2018/1/1
|
||||||
(a) 2.3
|
(a) 2.3
|
||||||
>>>
|
$ hledger -f - bal --no-total
|
||||||
$2.30 a
|
$2.30 a
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# some basic cases with commodity
|
# some basic cases with commodity
|
||||||
hledger -f - bal --no-total
|
<
|
||||||
<<<
|
|
||||||
commodity $1,000.00000000
|
commodity $1,000.00000000
|
||||||
|
|
||||||
2018/1/1
|
2018/1/1
|
||||||
@ -19,16 +16,14 @@ commodity $1,000.00000000
|
|||||||
b $31415926e-7
|
b $31415926e-7
|
||||||
c $1E+3
|
c $1E+3
|
||||||
d
|
d
|
||||||
>>>
|
$ hledger -f - bal --no-total
|
||||||
$105.00000000 a
|
$105.00000000 a
|
||||||
$3.14159260 b
|
$3.14159260 b
|
||||||
$1,000.00000000 c
|
$1,000.00000000 c
|
||||||
$-1,108.14159260 d
|
$-1,108.14159260 d
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# some basic cases with commodity
|
# some basic cases with commodity
|
||||||
hledger -f - print --explicit
|
<
|
||||||
<<<
|
|
||||||
commodity $1,000.00000000
|
commodity $1,000.00000000
|
||||||
|
|
||||||
2018/1/1
|
2018/1/1
|
||||||
@ -36,48 +31,43 @@ commodity $1,000.00000000
|
|||||||
b $31415926e-7
|
b $31415926e-7
|
||||||
c $1E+3
|
c $1E+3
|
||||||
d
|
d
|
||||||
>>>
|
$ hledger -f - print --explicit
|
||||||
2018-01-01
|
2018-01-01
|
||||||
a $105.00000000
|
a $105.00000000
|
||||||
b $3.14159260
|
b $3.14159260
|
||||||
c $1,000.00000000
|
c $1,000.00000000
|
||||||
d $-1,108.14159260
|
d $-1,108.14159260
|
||||||
|
|
||||||
>>>=0
|
>=
|
||||||
#
|
|
||||||
# some basic cases
|
# some basic cases
|
||||||
hledger -f - bal --no-total
|
<
|
||||||
<<<
|
|
||||||
2018/1/1
|
2018/1/1
|
||||||
a 1.05e2
|
a 1.05e2
|
||||||
b 31415926e-7
|
b 31415926e-7
|
||||||
c 1E+3
|
c 1E+3
|
||||||
d
|
d
|
||||||
>>>
|
$ hledger -f - bal --no-total
|
||||||
105.0000000 a
|
105.0000000 a
|
||||||
3.1415926 b
|
3.1415926 b
|
||||||
1000.0000000 c
|
1000.0000000 c
|
||||||
-1108.1415926 d
|
-1108.1415926 d
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# we still should recognize commodities with e
|
# we still should recognize commodities with e
|
||||||
hledger -f - bal --no-total
|
<
|
||||||
<<<
|
|
||||||
2018/1/1
|
2018/1/1
|
||||||
(a) 1.00005e
|
(a) 1.00005e
|
||||||
(a) 2.00003E
|
(a) 2.00003E
|
||||||
>>>
|
$ hledger -f - bal --no-total
|
||||||
2.00003E
|
2.00003E
|
||||||
1.00005e a
|
1.00005e a
|
||||||
>>>=0
|
|
||||||
|
|
||||||
hledger -f - reg
|
<
|
||||||
<<<
|
|
||||||
2018/1/1
|
2018/1/1
|
||||||
(a) 1,000.5e-1
|
(a) 1,000.5e-1
|
||||||
>>>
|
$ hledger -f - reg
|
||||||
>>>=1
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# different digit group separator chars before and after decimal point, not supported
|
# different digit group separator chars before and after decimal point, not supported
|
||||||
# 2018/1/4
|
# 2018/1/4
|
||||||
|
|||||||
@ -1,8 +1,7 @@
|
|||||||
## parsing
|
## parsing
|
||||||
|
|
||||||
# 1. transactions and postings have status marks which are nothing, ! or *
|
# 1. transactions and postings have status marks which are nothing, ! or *
|
||||||
hledger -fstatus.journal print
|
$ hledger -fstatus.journal print
|
||||||
>>>
|
|
||||||
2017-01-01 unmarked
|
2017-01-01 unmarked
|
||||||
(a) 1
|
(a) 1
|
||||||
(b) 1
|
(b) 1
|
||||||
@ -15,94 +14,82 @@ hledger -fstatus.journal print
|
|||||||
(a) 1
|
(a) 1
|
||||||
* (b) 1
|
* (b) 1
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 2. other characters will be considered part of the description
|
# 2. other characters will be considered part of the description
|
||||||
hledger -f- print desc:%
|
<
|
||||||
<<<
|
|
||||||
2017/01/01 %
|
2017/01/01 %
|
||||||
>>>
|
$ hledger -f- print desc:%
|
||||||
2017-01-01 %
|
2017-01-01 %
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
## matching with flags
|
## matching with flags
|
||||||
|
|
||||||
# 3. --cleared matches * only
|
# 3. --cleared matches * only
|
||||||
hledger -fstatus.journal print --cleared
|
$ hledger -fstatus.journal print --cleared
|
||||||
>>>
|
|
||||||
2017-01-03 * cleared
|
2017-01-03 * cleared
|
||||||
(a) 1
|
(a) 1
|
||||||
* (b) 1
|
* (b) 1
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 4. --pending matches ! only
|
# 4. --pending matches ! only
|
||||||
hledger -fstatus.journal print --pending
|
$ hledger -fstatus.journal print --pending
|
||||||
>>>
|
|
||||||
2017-01-02 ! pending
|
2017-01-02 ! pending
|
||||||
(a) 1
|
(a) 1
|
||||||
! (b) 1
|
! (b) 1
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 5. --unmarked matches no status mark only
|
# 5. --unmarked matches no status mark only
|
||||||
hledger -fstatus.journal print --unmarked
|
$ hledger -fstatus.journal print --unmarked
|
||||||
>>>
|
|
||||||
2017-01-01 unmarked
|
2017-01-01 unmarked
|
||||||
(a) 1
|
(a) 1
|
||||||
(b) 1
|
(b) 1
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 6. these flags can be combined
|
# 6. these flags can be combined
|
||||||
hledger -fstatus.journal register --unmarked --pending
|
$ hledger -fstatus.journal register --unmarked --pending
|
||||||
>>>
|
|
||||||
2017-01-01 unmarked (a) 1 1
|
2017-01-01 unmarked (a) 1 1
|
||||||
(b) 1 2
|
(b) 1 2
|
||||||
2017-01-02 pending (a) 1 3
|
2017-01-02 pending (a) 1 3
|
||||||
(b) 1 4
|
(b) 1 4
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 7. these flags work with other commands
|
# 7. these flags work with other commands
|
||||||
hledger -fstatus.journal balance -N --unmarked
|
$ hledger -fstatus.journal balance -N --unmarked
|
||||||
>>>
|
|
||||||
1 a
|
1 a
|
||||||
1 b
|
1 b
|
||||||
>>>=0
|
|
||||||
|
|
||||||
## matching with status: query
|
## matching with status: query
|
||||||
|
|
||||||
# 8. status:* matches * only
|
# 8. status:* matches * only
|
||||||
hledger -fstatus.journal print status:*
|
$ hledger -fstatus.journal print status:*
|
||||||
>>>
|
|
||||||
2017-01-03 * cleared
|
2017-01-03 * cleared
|
||||||
(a) 1
|
(a) 1
|
||||||
* (b) 1
|
* (b) 1
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 9. status:! matches ! only
|
# 9. status:! matches ! only
|
||||||
hledger -fstatus.journal print status:!
|
$ hledger -fstatus.journal print status:!
|
||||||
>>>
|
|
||||||
2017-01-02 ! pending
|
2017-01-02 ! pending
|
||||||
(a) 1
|
(a) 1
|
||||||
! (b) 1
|
! (b) 1
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 10. status: matches unmarked only
|
# 10. status: matches unmarked only
|
||||||
hledger -fstatus.journal print status:
|
$ hledger -fstatus.journal print status:
|
||||||
>>>
|
|
||||||
2017-01-01 unmarked
|
2017-01-01 unmarked
|
||||||
(a) 1
|
(a) 1
|
||||||
(b) 1
|
(b) 1
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 11. multiple status: queries are OR'd
|
# 11. multiple status: queries are OR'd
|
||||||
hledger -fstatus.journal print status: status:!
|
$ hledger -fstatus.journal print status: status:!
|
||||||
>>>
|
|
||||||
2017-01-01 unmarked
|
2017-01-01 unmarked
|
||||||
(a) 1
|
(a) 1
|
||||||
(b) 1
|
(b) 1
|
||||||
@ -111,5 +98,5 @@ hledger -fstatus.journal print status: status:!
|
|||||||
(a) 1
|
(a) 1
|
||||||
! (b) 1
|
! (b) 1
|
||||||
|
|
||||||
>>>= 0
|
>= 0
|
||||||
|
|
||||||
|
|||||||
@ -1,42 +1,42 @@
|
|||||||
# 1. virtual posting shouldn't affect balance
|
# 1. virtual posting shouldn't affect balance
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2009/1/1 x
|
2009/1/1 x
|
||||||
(virtual) 100
|
(virtual) 100
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>=0
|
$ hledger -f- print
|
||||||
#
|
> //
|
||||||
|
|
||||||
# 2. balanced virtual postings should be required to balance (themselves)
|
# 2. balanced virtual postings should be required to balance (themselves)
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
[balanced virtual] 10
|
[balanced virtual] 10
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>= !0
|
$ hledger -f- print
|
||||||
#
|
>2 //
|
||||||
|
>= 1
|
||||||
|
|
||||||
# 3. balanced virtual postings should be required to balance (themselves)
|
# 3. balanced virtual postings should be required to balance (themselves)
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
[balanced virtual] 10
|
[balanced virtual] 10
|
||||||
[balanced virtual] -10
|
[balanced virtual] -10
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>=0
|
$ hledger -f- print
|
||||||
#
|
> //
|
||||||
|
|
||||||
# 4. a virtual posting with implicit amount should be handled correctly
|
# 4. a virtual posting with implicit amount should be handled correctly
|
||||||
hledger -f- print
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
[a] 10
|
[a] 10
|
||||||
[b]
|
[b]
|
||||||
>>>=0
|
$ hledger -f- print
|
||||||
#
|
> //
|
||||||
|
|
||||||
# 5. real and balanced virtual postings are balanced separately, and multiple blank virtuals are ok
|
# 5. real and balanced virtual postings are balanced separately, and multiple blank virtuals are ok
|
||||||
hledger -f- balance --tree
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
@ -44,12 +44,10 @@ hledger -f- balance --tree
|
|||||||
[f]
|
[f]
|
||||||
(c)
|
(c)
|
||||||
(d)
|
(d)
|
||||||
>>>
|
$ hledger -f- balance --tree
|
||||||
1 a
|
1 a
|
||||||
-1 b
|
-1 b
|
||||||
10 e
|
10 e
|
||||||
-10 f
|
-10 f
|
||||||
--------------------
|
--------------------
|
||||||
0
|
0
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,47 +1,41 @@
|
|||||||
# --pivot tests
|
# --pivot tests
|
||||||
|
|
||||||
# 1. check pivot with print
|
# 1. check pivot with print
|
||||||
hledger -f- --pivot TAG print
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 Test Transaction
|
2016/02/16 Test Transaction
|
||||||
Account1 2 EUR
|
Account1 2 EUR
|
||||||
Account2 -2 EUR
|
Account2 -2 EUR
|
||||||
; TAG: value
|
; TAG: value
|
||||||
>>>
|
$ hledger -f- --pivot TAG print
|
||||||
2016-02-16 Test Transaction
|
2016-02-16 Test Transaction
|
||||||
2 EUR
|
2 EUR
|
||||||
value -2 EUR
|
value -2 EUR
|
||||||
; TAG: value
|
; TAG: value
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 2. check pivot with bal
|
# 2. check pivot with bal
|
||||||
hledger -f- --pivot member bal --no-total
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 Member Fee Payment John Doe
|
2016/02/16 Member Fee Payment John Doe
|
||||||
assets:bank account 2 EUR
|
assets:bank account 2 EUR
|
||||||
income:member fees -2 EUR
|
income:member fees -2 EUR
|
||||||
; member: John Doe
|
; member: John Doe
|
||||||
>>>
|
$ hledger -f- --pivot member bal --no-total
|
||||||
2 EUR
|
2 EUR
|
||||||
-2 EUR John Doe
|
-2 EUR John Doe
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. check with another example
|
# 3. check with another example
|
||||||
hledger -f- --pivot budget bal --no-total
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 Donation Freifunk
|
2016/02/16 Donation Freifunk
|
||||||
assets:bank account 2 EUR
|
assets:bank account 2 EUR
|
||||||
income:donations -2 EUR
|
income:donations -2 EUR
|
||||||
; budget: Freifunk
|
; budget: Freifunk
|
||||||
>>>
|
$ hledger -f- --pivot budget bal --no-total
|
||||||
2 EUR
|
2 EUR
|
||||||
-2 EUR Freifunk
|
-2 EUR Freifunk
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. query on account will find either effective name or original one
|
# 4. query on account will find either effective name or original one
|
||||||
hledger -f- --pivot TAG reg '^Account2$' '^fun$' not:hidden
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 Test Transaction
|
2016/02/16 Test Transaction
|
||||||
Account1 2 EUR
|
Account1 2 EUR
|
||||||
; TAG: fun
|
; TAG: fun
|
||||||
@ -49,60 +43,50 @@ hledger -f- --pivot TAG reg '^Account2$' '^fun$' not:hidden
|
|||||||
; TAG: value
|
; TAG: value
|
||||||
Account2 -1 EUR
|
Account2 -1 EUR
|
||||||
; TAG: hidden
|
; TAG: hidden
|
||||||
>>>
|
$ hledger -f- --pivot TAG reg '^Account2$' '^fun$' not:hidden
|
||||||
2016-02-16 Test Transaction fun 2 EUR 2 EUR
|
2016-02-16 Test Transaction fun 2 EUR 2 EUR
|
||||||
value -1 EUR 1 EUR
|
value -1 EUR 1 EUR
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5. We should be able to query on original account names
|
# 5. We should be able to query on original account names
|
||||||
hledger -f- --pivot expenses reg not:liabilities
|
<
|
||||||
<<<
|
|
||||||
2017/1/1 prepay
|
2017/1/1 prepay
|
||||||
assets $1500 ; expenses:a
|
assets $1500 ; expenses:a
|
||||||
assets $100 ; expenses:b
|
assets $100 ; expenses:b
|
||||||
assets $5 ; expenses:c
|
assets $5 ; expenses:c
|
||||||
liabilities $-1605
|
liabilities $-1605
|
||||||
>>>
|
$ hledger -f- --pivot expenses reg not:liabilities
|
||||||
2017-01-01 prepay a $1500 $1500
|
2017-01-01 prepay a $1500 $1500
|
||||||
b $100 $1600
|
b $100 $1600
|
||||||
c $5 $1605
|
c $5 $1605
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 6. pivot for implicit tag desc (technical sample)
|
# 6. pivot for implicit tag desc (technical sample)
|
||||||
hledger -f- --pivot description reg -M
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 Freifunk
|
2016/02/16 Freifunk
|
||||||
assets:bank account 2 EUR ; date:03/01
|
assets:bank account 2 EUR ; date:03/01
|
||||||
income:donations -2 EUR
|
income:donations -2 EUR
|
||||||
>>>
|
$ hledger -f- --pivot description reg -M
|
||||||
2016-02 Freifunk -2 EUR -2 EUR
|
2016-02 Freifunk -2 EUR -2 EUR
|
||||||
2016-03 Freifunk 2 EUR 0
|
2016-03 Freifunk 2 EUR 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 7. pivot for implicit tag code (technical sample)
|
# 7. pivot for implicit tag code (technical sample)
|
||||||
hledger -f- --pivot code reg -M
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 (Freifunk) Donation Freifunk
|
2016/02/16 (Freifunk) Donation Freifunk
|
||||||
assets:bank account 2 EUR ; date:03/01
|
assets:bank account 2 EUR ; date:03/01
|
||||||
income:donations -2 EUR
|
income:donations -2 EUR
|
||||||
>>>
|
$ hledger -f- --pivot code reg -M
|
||||||
2016-02 Freifunk -2 EUR -2 EUR
|
2016-02 Freifunk -2 EUR -2 EUR
|
||||||
2016-03 Freifunk 2 EUR 0
|
2016-03 Freifunk 2 EUR 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 8. use of pivot with code-based budgeting
|
# 8. use of pivot with code-based budgeting
|
||||||
hledger -f- --pivot code reg ^income
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 (Freifunk) Donation Freifunk
|
2016/02/16 (Freifunk) Donation Freifunk
|
||||||
assets:bank account 2 EUR
|
assets:bank account 2 EUR
|
||||||
income:donations -2 EUR
|
income:donations -2 EUR
|
||||||
>>>
|
$ hledger -f- --pivot code reg ^income
|
||||||
2016-02-16 Donation Freifunk Freifunk -2 EUR -2 EUR
|
2016-02-16 Donation Freifunk Freifunk -2 EUR -2 EUR
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 9. get expenses balance by description/payee
|
# 9. get expenses balance by description/payee
|
||||||
hledger -f- --pivot payee bal --no-total --flat ^expense
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 (1138) Auchan | buy a food for tomorrow morning
|
2016/02/16 (1138) Auchan | buy a food for tomorrow morning
|
||||||
assets:bank account
|
assets:bank account
|
||||||
expense:snacks 2 EUR
|
expense:snacks 2 EUR
|
||||||
@ -111,14 +95,12 @@ hledger -f- --pivot payee bal --no-total --flat ^expense
|
|||||||
2016/02/16 StarBars
|
2016/02/16 StarBars
|
||||||
assets:bank account
|
assets:bank account
|
||||||
expense:coffee 5 EUR
|
expense:coffee 5 EUR
|
||||||
>>>
|
$ hledger -f- --pivot payee bal --no-total --flat ^expense
|
||||||
22 EUR Auchan
|
22 EUR Auchan
|
||||||
5 EUR StarBars
|
5 EUR StarBars
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 10. get daily expenses by description/payee
|
# 10. get daily expenses by description/payee
|
||||||
hledger -f- --pivot payee reg -D ^expense
|
<
|
||||||
<<<
|
|
||||||
2016/02/16 (1138) Auchan
|
2016/02/16 (1138) Auchan
|
||||||
assets:bank account
|
assets:bank account
|
||||||
expense:snacks 2 EUR
|
expense:snacks 2 EUR
|
||||||
@ -131,8 +113,7 @@ hledger -f- --pivot payee reg -D ^expense
|
|||||||
2016/02/17 (1139) Auchan
|
2016/02/17 (1139) Auchan
|
||||||
assets:bank account
|
assets:bank account
|
||||||
expense:grocery 30 EUR
|
expense:grocery 30 EUR
|
||||||
>>>
|
$ hledger -f- --pivot payee reg -D ^expense
|
||||||
2016-02-16 Auchan 22 EUR 22 EUR
|
2016-02-16 Auchan 22 EUR 22 EUR
|
||||||
StarBars 5 EUR 27 EUR
|
StarBars 5 EUR 27 EUR
|
||||||
2016-02-17 Auchan 30 EUR 57 EUR
|
2016-02-17 Auchan 30 EUR 57 EUR
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,37 +1,33 @@
|
|||||||
# 1. print shows both primary and secondary dates. The second's year defaults to the first's.
|
# 1. print shows both primary and secondary dates. The second's year defaults to the first's.
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2000/1/1=3/3
|
2000/1/1=3/3
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2000/1/2=2/2
|
2000/1/2=2/2
|
||||||
(b) 1
|
(b) 1
|
||||||
|
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2000-01-01=2000-03-03
|
2000-01-01=2000-03-03
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2000-01-02=2000-02-02
|
2000-01-02=2000-02-02
|
||||||
(b) 1
|
(b) 1
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>= 0
|
|
||||||
|
|
||||||
# 2. With --date2, the secondary date is used for sorting.
|
# 2. With --date2, the secondary date is used for sorting.
|
||||||
hledger -f - print --date2
|
<
|
||||||
<<<
|
|
||||||
2000/1/1=3/3
|
2000/1/1=3/3
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2000/1/2=2/2
|
2000/1/2=2/2
|
||||||
(b) 1
|
(b) 1
|
||||||
|
|
||||||
>>>
|
$ hledger -f - print --date2
|
||||||
2000-01-02=2000-02-02
|
2000-01-02=2000-02-02
|
||||||
(b) 1
|
(b) 1
|
||||||
|
|
||||||
2000-01-01=2000-03-03
|
2000-01-01=2000-03-03
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>= 0
|
|
||||||
|
|||||||
@ -1,121 +1,104 @@
|
|||||||
# Tests of --explicit option effect
|
# Tests of --explicit option effect
|
||||||
|
|
||||||
# 1. implicit transaction balance w/o --explict
|
# 1. implicit transaction balance w/o --explict
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
expenses $5
|
expenses $5
|
||||||
assets
|
assets
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2017-01-01
|
2017-01-01
|
||||||
expenses $5
|
expenses $5
|
||||||
assets
|
assets
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. implicit transaction balance w/ --explict
|
# 2. implicit transaction balance w/ --explict
|
||||||
hledger -f - print --explicit
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
expenses $5
|
expenses $5
|
||||||
assets
|
assets
|
||||||
>>>
|
$ hledger -f - print --explicit
|
||||||
2017-01-01
|
2017-01-01
|
||||||
expenses $5
|
expenses $5
|
||||||
assets $-5
|
assets $-5
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. implicit commodity price w/o --explict
|
# 3. implicit commodity price w/o --explict
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
expenses 4 EUR
|
expenses 4 EUR
|
||||||
assets $-5
|
assets $-5
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2017-01-01
|
2017-01-01
|
||||||
expenses 4 EUR
|
expenses 4 EUR
|
||||||
assets $-5
|
assets $-5
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. implicit commodity price w/ --explict
|
# 4. implicit commodity price w/ --explict
|
||||||
hledger -f - print --explicit
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
expenses 4 EUR
|
expenses 4 EUR
|
||||||
assets $-5
|
assets $-5
|
||||||
>>>
|
$ hledger -f - print --explicit
|
||||||
2017-01-01
|
2017-01-01
|
||||||
expenses 4 EUR @@ $5
|
expenses 4 EUR @@ $5
|
||||||
assets $-5
|
assets $-5
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5. implicit account balance w/o --explict
|
# 5. implicit account balance w/o --explict
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
assets = $100
|
assets = $100
|
||||||
equity
|
equity
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2017-01-01
|
2017-01-01
|
||||||
assets = $100
|
assets = $100
|
||||||
equity
|
equity
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 6. implicit account balance w/ --explict
|
# 6. implicit account balance w/ --explict
|
||||||
hledger -f - print --explicit
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
assets = $100
|
assets = $100
|
||||||
equity
|
equity
|
||||||
>>>
|
$ hledger -f - print --explicit
|
||||||
2017-01-01
|
2017-01-01
|
||||||
assets $100 = $100
|
assets $100 = $100
|
||||||
equity $-100
|
equity $-100
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 7. default commodity always applied because print do not issue appropriate directive
|
# 7. default commodity always applied because print do not issue appropriate directive
|
||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
D 1000.00 EUR
|
D 1000.00 EUR
|
||||||
2017/1/1
|
2017/1/1
|
||||||
expenses 100
|
expenses 100
|
||||||
assets
|
assets
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2017-01-01
|
2017-01-01
|
||||||
expenses 100.00 EUR
|
expenses 100.00 EUR
|
||||||
assets
|
assets
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 8. option --explicit implies effect of --empty
|
# 8. option --explicit implies effect of --empty
|
||||||
hledger -f - print --explicit
|
<
|
||||||
<<<
|
|
||||||
2017/1/1
|
2017/1/1
|
||||||
assets $0
|
assets $0
|
||||||
equity
|
equity
|
||||||
>>>
|
$ hledger -f - print --explicit
|
||||||
2017-01-01
|
2017-01-01
|
||||||
assets 0
|
assets 0
|
||||||
equity 0
|
equity 0
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 9. Auto postings are always explicit
|
# 9. Auto postings are always explicit
|
||||||
hledger -f - print --auto
|
<
|
||||||
<<<
|
|
||||||
= a
|
= a
|
||||||
c *-0.453
|
c *-0.453
|
||||||
d
|
d
|
||||||
@ -123,12 +106,11 @@ hledger -f - print --auto
|
|||||||
2021-09-01
|
2021-09-01
|
||||||
a 1000 EUR
|
a 1000 EUR
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger -f - print --auto
|
||||||
2021-09-01 ; modified:
|
2021-09-01 ; modified:
|
||||||
a 1000 EUR
|
a 1000 EUR
|
||||||
c -453 EUR ; generated-posting: = a
|
c -453 EUR ; generated-posting: = a
|
||||||
d 453 EUR ; generated-posting: = a
|
d 453 EUR ; generated-posting: = a
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
hledger -f - print
|
<
|
||||||
<<<
|
|
||||||
2009/1/1 x
|
2009/1/1 x
|
||||||
aaaaabbbbbcccccdddddeeeeefffffggggghhhhh 1
|
aaaaabbbbbcccccdddddeeeeefffffggggghhhhh 1
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger -f - print
|
||||||
2009-01-01 x
|
2009-01-01 x
|
||||||
aaaaabbbbbcccccdddddeeeeefffffggggghhhhh 1
|
aaaaabbbbbcccccdddddeeeeefffffggggghhhhh 1
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
# print with negative account pattern should exclude transactions containing a matched posting
|
# print with negative account pattern should exclude transactions containing a matched posting
|
||||||
hledger -f- print not:a
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
a 1
|
a 1
|
||||||
b -1
|
b -1
|
||||||
>>>
|
$ hledger -f- print not:a
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
hledger -f - print desc:x
|
<
|
||||||
<<<
|
|
||||||
2009/1/1 x
|
2009/1/1 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
@ -8,9 +7,9 @@ hledger -f - print desc:x
|
|||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>
|
$ hledger -f - print desc:x
|
||||||
2009-01-01 x
|
2009-01-01 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|||||||
@ -6,31 +6,26 @@
|
|||||||
# date2:D matches the secondary date
|
# date2:D matches the secondary date
|
||||||
|
|
||||||
# 1. --date2 causes the secondary date to be displayed
|
# 1. --date2 causes the secondary date to be displayed
|
||||||
hledger -f - register --date2
|
<
|
||||||
<<<
|
|
||||||
2009/1/1=2010/1/1 x
|
2009/1/1=2010/1/1 x
|
||||||
a 1
|
a 1
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger -f - register --date2
|
||||||
2010-01-01 x a 1 1
|
2010-01-01 x a 1 1
|
||||||
b -1 0
|
b -1 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. --date2 causes -b/-e/-p to match the secondary date
|
# 2. --date2 causes -b/-e/-p to match the secondary date
|
||||||
hledger -f- register -p 2014/1/2 --date2
|
<
|
||||||
<<<
|
|
||||||
2014/1/1=1/2
|
2014/1/1=1/2
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2014/1/3
|
2014/1/3
|
||||||
(b) 1
|
(b) 1
|
||||||
>>>
|
$ hledger -f- register -p 2014/1/2 --date2
|
||||||
2014-01-02 (a) 1 1
|
2014-01-02 (a) 1 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. --date2 causes date: to match the secondary date (or the primary date, if there is no secondary)
|
# 3. --date2 causes date: to match the secondary date (or the primary date, if there is no secondary)
|
||||||
hledger -f- register date:2014/1/2 --date2
|
<
|
||||||
<<<
|
|
||||||
2014/1/1=1/2
|
2014/1/1=1/2
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
@ -39,55 +34,46 @@ hledger -f- register date:2014/1/2 --date2
|
|||||||
|
|
||||||
2014/1/2=1/3
|
2014/1/2=1/3
|
||||||
(C) 1
|
(C) 1
|
||||||
>>>
|
$ hledger -f- register date:2014/1/2 --date2
|
||||||
2014-01-02 (a) 1 1
|
2014-01-02 (a) 1 1
|
||||||
2014-01-02 (b) 1 2
|
2014-01-02 (b) 1 2
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. date2: matches the secondary date (but does not necessarily display it)
|
# 4. date2: matches the secondary date (but does not necessarily display it)
|
||||||
hledger -f- register date2:2014/1/2
|
<
|
||||||
<<<
|
|
||||||
2014/1/1=1/2
|
2014/1/1=1/2
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2014/1/3
|
2014/1/3
|
||||||
(b) 1
|
(b) 1
|
||||||
>>>
|
$ hledger -f- register date2:2014/1/2
|
||||||
2014-01-01 (a) 1 1
|
2014-01-01 (a) 1 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5. date2: plus --date2 both matches and displays the secondary date
|
# 5. date2: plus --date2 both matches and displays the secondary date
|
||||||
hledger -f- register date2:2014/1/2 --date2
|
<
|
||||||
<<<
|
|
||||||
2014/1/1=1/2
|
2014/1/1=1/2
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2014/1/3
|
2014/1/3
|
||||||
(b) 1
|
(b) 1
|
||||||
>>>
|
$ hledger -f- register date2:2014/1/2 --date2
|
||||||
2014-01-02 (a) 1 1
|
2014-01-02 (a) 1 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 6. date2: matching is not affected by --date2
|
# 6. date2: matching is not affected by --date2
|
||||||
hledger -f- register date2:2014/1/1 --date2
|
<
|
||||||
<<<
|
|
||||||
2014/1/1=1/2
|
2014/1/1=1/2
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2014/1/3
|
2014/1/3
|
||||||
(b) 1
|
(b) 1
|
||||||
>>>
|
$ hledger -f- register date2:2014/1/1 --date2
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 7. with --date2, the secondary date is used for sorting
|
# 7. with --date2, the secondary date is used for sorting
|
||||||
hledger -f- register --date2
|
<
|
||||||
<<<
|
|
||||||
2014/1/1=2/2
|
2014/1/1=2/2
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
2014/1/3=2/1
|
2014/1/3=2/1
|
||||||
(b) 1
|
(b) 1
|
||||||
>>>
|
$ hledger -f- register --date2
|
||||||
2014-02-01 (b) 1 1
|
2014-02-01 (b) 1 1
|
||||||
2014-02-02 (a) 1 2
|
2014-02-02 (a) 1 2
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,16 +1,13 @@
|
|||||||
# 1. register --depth N matches postings as usual but clips account names to N
|
# 1. register --depth N matches postings as usual but clips account names to N
|
||||||
hledger -f - register aa --depth 1
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
a:aa:aaa 1
|
a:aa:aaa 1
|
||||||
b
|
b
|
||||||
>>>
|
$ hledger -f - register aa --depth 1
|
||||||
2010-01-01 x a 1 1
|
2010-01-01 x a 1 1
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. separate postings remain separate
|
# 2. separate postings remain separate
|
||||||
hledger -f - register aa --depth 2
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
a:aa 1
|
a:aa 1
|
||||||
b:bb:bbb
|
b:bb:bbb
|
||||||
@ -22,15 +19,13 @@ hledger -f - register aa --depth 2
|
|||||||
2010/1/2 z
|
2010/1/2 z
|
||||||
a:aa 1
|
a:aa 1
|
||||||
b:bb:bbb
|
b:bb:bbb
|
||||||
>>>
|
$ hledger -f - register aa --depth 2
|
||||||
2010-01-01 x a:aa 1 1
|
2010-01-01 x a:aa 1 1
|
||||||
2010-01-01 y a:aa 1 2
|
2010-01-01 y a:aa 1 2
|
||||||
2010-01-02 z a:aa 1 3
|
2010-01-02 z a:aa 1 3
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. with a reporting interval, all postings are aggregated under each (clipped) account
|
# 3. with a reporting interval, all postings are aggregated under each (clipped) account
|
||||||
hledger -f - register aa --depth 1 --daily
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
a:aa 1
|
a:aa 1
|
||||||
b:bb:bbb
|
b:bb:bbb
|
||||||
@ -42,24 +37,19 @@ hledger -f - register aa --depth 1 --daily
|
|||||||
2010/1/2 z
|
2010/1/2 z
|
||||||
a:aa 1
|
a:aa 1
|
||||||
b:bb:bbb
|
b:bb:bbb
|
||||||
>>>
|
$ hledger -f - register aa --depth 1 --daily
|
||||||
2010-01-01 a 2 2
|
2010-01-01 a 2 2
|
||||||
2010-01-02 a 1 3
|
2010-01-02 a 1 3
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 4. with --cleared
|
# 4. with --cleared
|
||||||
hledger -f - register a --depth 1 --cleared
|
<
|
||||||
<<<
|
|
||||||
2012/1/1 *
|
2012/1/1 *
|
||||||
(a:aa) 1
|
(a:aa) 1
|
||||||
>>>
|
$ hledger -f - register a --depth 1 --cleared
|
||||||
2012-01-01 (a) 1 1
|
2012-01-01 (a) 1 1
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5. depth 0 aggregates everything into a single line
|
# 5. depth 0 aggregates everything into a single line
|
||||||
hledger -f - register --depth 0 --daily a b
|
<
|
||||||
<<<
|
|
||||||
2010/1/1 x
|
2010/1/1 x
|
||||||
a:aa 1
|
a:aa 1
|
||||||
b:bb 2
|
b:bb 2
|
||||||
@ -74,8 +64,7 @@ hledger -f - register --depth 0 --daily a b
|
|||||||
a:aa 1
|
a:aa 1
|
||||||
b:bb 2
|
b:bb 2
|
||||||
c:cc
|
c:cc
|
||||||
>>>
|
$ hledger -f - register --depth 0 --daily a b
|
||||||
2010-01-01 ... 6 6
|
2010-01-01 ... 6 6
|
||||||
2010-01-02 ... 3 9
|
2010-01-02 ... 3 9
|
||||||
>>>=0
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
hledger -f- register date:2014/4
|
<
|
||||||
<<<
|
|
||||||
2014/3/30
|
2014/3/30
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
@ -9,7 +8,5 @@ hledger -f- register date:2014/4
|
|||||||
2014/3/31
|
2014/3/31
|
||||||
(a) 1
|
(a) 1
|
||||||
|
|
||||||
>>>
|
$ hledger -f- register date:2014/4
|
||||||
2014-04-01 (a) 1 1
|
2014-04-01 (a) 1 1
|
||||||
>>>2
|
|
||||||
>>>= 0
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
# 1. Add proportional income tax (from documentation)
|
# 1. Add proportional income tax (from documentation)
|
||||||
hledger rewrite -f- ^income --add-posting '(liabilities:tax) *.33 ; income tax'
|
<
|
||||||
<<<
|
|
||||||
2016/1/1 paycheck
|
2016/1/1 paycheck
|
||||||
income:remuneration $-100
|
income:remuneration $-100
|
||||||
income:donations $-15
|
income:donations $-15
|
||||||
@ -10,7 +9,7 @@ hledger rewrite -f- ^income --add-posting '(liabilities:tax) *.33 ; income tax
|
|||||||
2016/1/1 withdraw
|
2016/1/1 withdraw
|
||||||
assets:cash $20
|
assets:cash $20
|
||||||
assets:bank
|
assets:bank
|
||||||
>>>
|
$ hledger rewrite -f- ^income --add-posting '(liabilities:tax) *.33 ; income tax'
|
||||||
2016-01-01 paycheck ; modified:
|
2016-01-01 paycheck ; modified:
|
||||||
income:remuneration $-100
|
income:remuneration $-100
|
||||||
(liabilities:tax) $-33 ; income tax, generated-posting: = ^income
|
(liabilities:tax) $-33 ; income tax, generated-posting: = ^income
|
||||||
@ -22,13 +21,11 @@ hledger rewrite -f- ^income --add-posting '(liabilities:tax) *.33 ; income tax
|
|||||||
assets:cash $20
|
assets:cash $20
|
||||||
assets:bank
|
assets:bank
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. Duplicate posting for budgeting (from documentation).
|
# 2. Duplicate posting for budgeting (from documentation).
|
||||||
# It uses same date as the matched posting.
|
# It uses same date as the matched posting.
|
||||||
hledger rewrite -f- expenses:gifts --add-posting '(budget:gifts) *-1'
|
<
|
||||||
<<<
|
|
||||||
2016/1/1 withdraw
|
2016/1/1 withdraw
|
||||||
assets:cash $20
|
assets:cash $20
|
||||||
assets:bank
|
assets:bank
|
||||||
@ -36,7 +33,7 @@ hledger rewrite -f- expenses:gifts --add-posting '(budget:gifts) *-1'
|
|||||||
2016/1/1 gift
|
2016/1/1 gift
|
||||||
assets:cash $-15
|
assets:cash $-15
|
||||||
expenses:gifts ; [1/2]
|
expenses:gifts ; [1/2]
|
||||||
>>>
|
$ hledger rewrite -f- expenses:gifts --add-posting '(budget:gifts) *-1'
|
||||||
2016-01-01 withdraw
|
2016-01-01 withdraw
|
||||||
assets:cash $20
|
assets:cash $20
|
||||||
assets:bank
|
assets:bank
|
||||||
@ -46,12 +43,10 @@ hledger rewrite -f- expenses:gifts --add-posting '(budget:gifts) *-1'
|
|||||||
expenses:gifts ; [1/2]
|
expenses:gifts ; [1/2]
|
||||||
(budget:gifts) $-15 ; [2016-01-02], generated-posting: = expenses:gifts
|
(budget:gifts) $-15 ; [2016-01-02], generated-posting: = expenses:gifts
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 3. Add postings in another commodity
|
# 3. Add postings in another commodity
|
||||||
hledger rewrite -f-
|
<
|
||||||
<<<
|
|
||||||
2017/04/24 * 09:00-09:25
|
2017/04/24 * 09:00-09:25
|
||||||
(assets:unbilled:client1) 0.42h
|
(assets:unbilled:client1) 0.42h
|
||||||
|
|
||||||
@ -67,7 +62,7 @@ hledger rewrite -f-
|
|||||||
|
|
||||||
= ^assets:unbilled:client2
|
= ^assets:unbilled:client2
|
||||||
(assets:to bill:client2) *150.00 CAD
|
(assets:to bill:client2) *150.00 CAD
|
||||||
>>>
|
$ hledger rewrite -f-
|
||||||
2017-04-24 * 09:00-09:25 ; modified:
|
2017-04-24 * 09:00-09:25 ; modified:
|
||||||
(assets:unbilled:client1) 0.42h
|
(assets:unbilled:client1) 0.42h
|
||||||
(assets:to bill:client1) 42.00 CAD ; generated-posting: = ^assets:unbilled:client1
|
(assets:to bill:client1) 42.00 CAD ; generated-posting: = ^assets:unbilled:client1
|
||||||
@ -80,13 +75,11 @@ hledger rewrite -f-
|
|||||||
(assets:unbilled:client2) 1.54h
|
(assets:unbilled:client2) 1.54h
|
||||||
(assets:to bill:client2) 231.00 CAD ; generated-posting: = ^assets:unbilled:client2
|
(assets:to bill:client2) 231.00 CAD ; generated-posting: = ^assets:unbilled:client2
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
|
|
||||||
# 4. Add postings with prices
|
# 4. Add postings with prices
|
||||||
hledger rewrite -f- -B
|
<
|
||||||
<<<
|
|
||||||
2017/04/24 * 09:00-09:25
|
2017/04/24 * 09:00-09:25
|
||||||
(assets:unbilled:client1) 0.42h
|
(assets:unbilled:client1) 0.42h
|
||||||
|
|
||||||
@ -104,7 +97,7 @@ hledger rewrite -f- -B
|
|||||||
= ^assets:unbilled:client2
|
= ^assets:unbilled:client2
|
||||||
assets:to bill:client2 *1.00 hours @ $150.00
|
assets:to bill:client2 *1.00 hours @ $150.00
|
||||||
income:consulting:client2
|
income:consulting:client2
|
||||||
>>>
|
$ hledger rewrite -f- -B
|
||||||
2017-04-24 * 09:00-09:25 ; modified:
|
2017-04-24 * 09:00-09:25 ; modified:
|
||||||
(assets:unbilled:client1) 0.42h
|
(assets:unbilled:client1) 0.42h
|
||||||
assets:to bill:client1 $42.00 ; generated-posting: = ^assets:unbilled:client1
|
assets:to bill:client1 $42.00 ; generated-posting: = ^assets:unbilled:client1
|
||||||
@ -120,13 +113,11 @@ hledger rewrite -f- -B
|
|||||||
assets:to bill:client2 $231.00 ; generated-posting: = ^assets:unbilled:client2
|
assets:to bill:client2 $231.00 ; generated-posting: = ^assets:unbilled:client2
|
||||||
income:consulting:client2 ; generated-posting: = ^assets:unbilled:client2
|
income:consulting:client2 ; generated-posting: = ^assets:unbilled:client2
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 5. Add absolute bank processing fee
|
# 5. Add absolute bank processing fee
|
||||||
# XXX is "and" really processed here ?
|
# XXX is "and" really processed here ?
|
||||||
hledger rewrite -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
|
<
|
||||||
<<<
|
|
||||||
2016/1/1 withdraw
|
2016/1/1 withdraw
|
||||||
assets:cash $20
|
assets:cash $20
|
||||||
assets:bank
|
assets:bank
|
||||||
@ -139,7 +130,7 @@ hledger rewrite -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' -
|
|||||||
# 2016/1/31 paycheck
|
# 2016/1/31 paycheck
|
||||||
# income:remuneration $-100
|
# income:remuneration $-100
|
||||||
# assets:bank
|
# assets:bank
|
||||||
>>>
|
$ hledger rewrite -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
|
||||||
2016-01-01 withdraw ; modified:
|
2016-01-01 withdraw ; modified:
|
||||||
assets:cash $20
|
assets:cash $20
|
||||||
assets:bank
|
assets:bank
|
||||||
@ -152,12 +143,10 @@ hledger rewrite -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' -
|
|||||||
expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
||||||
assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 6. Rewrite rule within journal
|
# 6. Rewrite rule within journal
|
||||||
hledger rewrite -f- date:2017/1 --add-posting 'Here comes Santa $0'
|
<
|
||||||
<<<
|
|
||||||
= ^assets:bank$ date:2017/1 amt:<0
|
= ^assets:bank$ date:2017/1 amt:<0
|
||||||
assets:bank *0.008
|
assets:bank *0.008
|
||||||
expenses:fee *-0.008 ; cash withdraw fee
|
expenses:fee *-0.008 ; cash withdraw fee
|
||||||
@ -188,7 +177,7 @@ hledger rewrite -f- date:2017/1 --add-posting 'Here comes Santa $0'
|
|||||||
; but relative order matters to refer-rewritten transactions
|
; but relative order matters to refer-rewritten transactions
|
||||||
= ^expenses not:housing not:grocery not:food
|
= ^expenses not:housing not:grocery not:food
|
||||||
(budget:misc) *-1
|
(budget:misc) *-1
|
||||||
>>>
|
$ hledger rewrite -f- date:2017/1 --add-posting 'Here comes Santa $0'
|
||||||
2016-12-31 ; modified:
|
2016-12-31 ; modified:
|
||||||
expenses:housing $600.00
|
expenses:housing $600.00
|
||||||
(budget:housing) $-600.00 ; generated-posting: = ^expenses:housing
|
(budget:housing) $-600.00 ; generated-posting: = ^expenses:housing
|
||||||
@ -220,12 +209,10 @@ hledger rewrite -f- date:2017/1 --add-posting 'Here comes Santa $0'
|
|||||||
assets:cash $100.00
|
assets:cash $100.00
|
||||||
assets:bank
|
assets:bank
|
||||||
|
|
||||||
>>>2
|
>= 0
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 7. Rewrite using diff output
|
# 7. Rewrite using diff output
|
||||||
hledger rewrite --diff -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
|
<
|
||||||
<<<
|
|
||||||
2016/01/01 withdraw
|
2016/01/01 withdraw
|
||||||
assets:cash $20
|
assets:cash $20
|
||||||
assets:bank
|
assets:bank
|
||||||
@ -233,7 +220,7 @@ hledger rewrite --diff -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee
|
|||||||
2016/01/02 withdraw
|
2016/01/02 withdraw
|
||||||
assets:cash
|
assets:cash
|
||||||
assets:bank $-30
|
assets:bank $-30
|
||||||
>>>
|
$ hledger rewrite --diff -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee $5' --add-posting 'assets:bank $-5'
|
||||||
--- -
|
--- -
|
||||||
+++ -
|
+++ -
|
||||||
@@ -1,3 +1,5 @@
|
@@ -1,3 +1,5 @@
|
||||||
@ -250,5 +237,3 @@ hledger rewrite --diff -f- assets:bank and 'amt:<0' --add-posting 'expenses:fee
|
|||||||
assets:bank $-30
|
assets:bank $-30
|
||||||
+ expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
+ expenses:fee $5 ; generated-posting: = assets:bank and "amt:<0"
|
||||||
+ assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
+ assets:bank $-5 ; generated-posting: = assets:bank and "amt:<0"
|
||||||
>>>2
|
|
||||||
>>>=0
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
# 1. investment that does not grow has no return
|
# 1. investment that does not grow has no return
|
||||||
hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
<
|
||||||
<<<
|
|
||||||
2017-01-01 investment
|
2017-01-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
@ -8,18 +7,17 @@ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
|||||||
2017-06-01 investment
|
2017-06-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
>>>
|
$ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++=======+=======+
|
+===++============+============++===============+==========+=============+=====++=======+=======+
|
||||||
| 1 || 2017-01-01 | 2017-12-31 || 0 | $200 | $200 | 0 || 0.00% | 0.00% |
|
| 1 || 2017-01-01 | 2017-12-31 || 0 | $200 | $200 | 0 || 0.00% | 0.00% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 2. Growth by 12% from single investment transaction should show 12% IRR and 12% TWR
|
# 2. Growth by 12% from single investment transaction should show 12% IRR and 12% TWR
|
||||||
hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
<
|
||||||
<<<
|
|
||||||
2017-01-01 investment
|
2017-01-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
@ -27,18 +25,17 @@ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
|||||||
2017-12-31 investment valuation
|
2017-12-31 investment valuation
|
||||||
investment = $112
|
investment = $112
|
||||||
pnl
|
pnl
|
||||||
>>>
|
$ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++========+========+
|
+===++============+============++===============+==========+=============+=====++========+========+
|
||||||
| 1 || 2017-01-01 | 2017-12-31 || 0 | $100 | $112 | $12 || 12.00% | 12.00% |
|
| 1 || 2017-01-01 | 2017-12-31 || 0 | $100 | $112 | $12 || 12.00% | 12.00% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 3. Same as (2), but grow by 1% per month
|
# 3. Same as (2), but grow by 1% per month
|
||||||
hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
<
|
||||||
<<<
|
|
||||||
2017-01-01 investment
|
2017-01-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
@ -91,18 +88,17 @@ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
|||||||
investment = $112
|
investment = $112
|
||||||
pnl
|
pnl
|
||||||
|
|
||||||
>>>
|
$ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++========+========+
|
+===++============+============++===============+==========+=============+=====++========+========+
|
||||||
| 1 || 2017-01-01 | 2017-12-31 || 0 | $100 | $112 | $12 || 12.00% | 12.00% |
|
| 1 || 2017-01-01 | 2017-12-31 || 0 | $100 | $112 | $12 || 12.00% | 12.00% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 4. When $100 invested over 12 month + $100 invested over 6 month yield $220, that's 10% TWR, but 12.73% IRR
|
# 4. When $100 invested over 12 month + $100 invested over 6 month yield $220, that's 10% TWR, but 12.73% IRR
|
||||||
hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
<
|
||||||
<<<
|
|
||||||
2017-01-01 investment
|
2017-01-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
@ -114,18 +110,17 @@ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
|||||||
2017-12-31 investment valuation
|
2017-12-31 investment valuation
|
||||||
investment = $220
|
investment = $220
|
||||||
pnl
|
pnl
|
||||||
>>>
|
$ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++========+========+
|
+===++============+============++===============+==========+=============+=====++========+========+
|
||||||
| 1 || 2017-01-01 | 2017-12-31 || 0 | $200 | $220 | $20 || 12.72% | 10.00% |
|
| 1 || 2017-01-01 | 2017-12-31 || 0 | $200 | $220 | $20 || 12.72% | 10.00% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++--------+--------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 5. When $100 invested over 12 month + $100 invested over 6 month yield $20, that's -90% TWR, but -95.73% IRR
|
# 5. When $100 invested over 12 month + $100 invested over 6 month yield $20, that's -90% TWR, but -95.73% IRR
|
||||||
hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
<
|
||||||
<<<
|
|
||||||
2017-01-01 investment
|
2017-01-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
@ -137,18 +132,17 @@ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
|||||||
2017-12-31 investment valuation
|
2017-12-31 investment valuation
|
||||||
investment = $20
|
investment = $20
|
||||||
pnl
|
pnl
|
||||||
>>>
|
$ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Y
|
||||||
+---++------------+------------++---------------+----------+-------------+-------++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-------++---------+---------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=======++=========+=========+
|
+===++============+============++===============+==========+=============+=======++=========+=========+
|
||||||
| 1 || 2017-01-01 | 2017-12-31 || 0 | $200 | $20 | $-180 || -95.73% | -90.00% |
|
| 1 || 2017-01-01 | 2017-12-31 || 0 | $200 | $20 | $-180 || -95.73% | -90.00% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-------++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-------++---------+---------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 6. Check that deposits/withdrawals and profit/loss are reflected in the right periods
|
# 6. Check that deposits/withdrawals and profit/loss are reflected in the right periods
|
||||||
hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Q
|
<
|
||||||
<<<
|
|
||||||
2017-01-01 investment
|
2017-01-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
@ -168,7 +162,7 @@ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Q
|
|||||||
2017-12-31 investment valuation
|
2017-12-31 investment valuation
|
||||||
investment = $155
|
investment = $155
|
||||||
pnl
|
pnl
|
||||||
>>>
|
$ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Q
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++=========+=========+
|
+===++============+============++===============+==========+=============+=====++=========+=========+
|
||||||
@ -178,11 +172,10 @@ hledger -f- roi --inv investment --pnl pnl -b 2017 -e 2018 -Q
|
|||||||
| 4 || 2017-10-01 | 2017-12-31 || $210 | $-50 | $155 | $-5 || -11.83% | -11.82% |
|
| 4 || 2017-10-01 | 2017-12-31 || $210 | $-50 | $155 | $-5 || -11.83% | -11.82% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 7. Check that reporting for the part of the total history of investment works
|
# 7. Check that reporting for the part of the total history of investment works
|
||||||
hledger -f- roi --inv investment --pnl pnl -b 2017-06 -e 2018
|
<
|
||||||
<<<
|
|
||||||
2017-01-01 investment
|
2017-01-01 investment
|
||||||
assets:cash -$100
|
assets:cash -$100
|
||||||
investment
|
investment
|
||||||
@ -202,33 +195,31 @@ hledger -f- roi --inv investment --pnl pnl -b 2017-06 -e 2018
|
|||||||
2017-12-31 investment valuation
|
2017-12-31 investment valuation
|
||||||
investment = $155
|
investment = $155
|
||||||
pnl
|
pnl
|
||||||
>>>
|
$ hledger -f- roi --inv investment --pnl pnl -b 2017-06 -e 2018
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++-------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++-------+--------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++=======+========+
|
+===++============+============++===============+==========+=============+=====++=======+========+
|
||||||
| 1 || 2017-06-01 | 2017-12-31 || $100 | $50 | $155 | $5 || 5.24% | 11.45% |
|
| 1 || 2017-06-01 | 2017-12-31 || $100 | $50 | $155 | $5 || 5.24% | 11.45% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++-------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++-------+--------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 8. Dont fail where there is no rate-of-return
|
# 8. Dont fail where there is no rate-of-return
|
||||||
hledger -f- roi -p 2019-11
|
<
|
||||||
<<<
|
|
||||||
2019/11/01 Example
|
2019/11/01 Example
|
||||||
Assets:Checking 1
|
Assets:Checking 1
|
||||||
Income:Salary -1
|
Income:Salary -1
|
||||||
>>>
|
$ hledger -f- roi -p 2019-11
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++=======+=======+
|
+===++============+============++===============+==========+=============+=====++=======+=======+
|
||||||
| 1 || 2019-11-01 | 2019-11-30 || 0 | 0 | 0 | 0 || 0.00% | 0.00% |
|
| 1 || 2019-11-01 | 2019-11-30 || 0 | 0 | 0 | 0 || 0.00% | 0.00% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
+---++------------+------------++---------------+----------+-------------+-----++-------+-------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 9. Fail with a nice error message when commodity can't be valued
|
# 9. Fail with a nice error message when commodity can't be valued
|
||||||
hledger -f- roi -p 2019-11 --inv Investment --pnl PnL
|
<
|
||||||
<<<
|
|
||||||
2019/11/01 Example
|
2019/11/01 Example
|
||||||
Assets:Checking -100 A
|
Assets:Checking -100 A
|
||||||
Investment 10 B
|
Investment 10 B
|
||||||
@ -237,15 +228,15 @@ hledger -f- roi -p 2019-11 --inv Investment --pnl PnL
|
|||||||
Investment -10 B @@ 100 A
|
Investment -10 B @@ 100 A
|
||||||
Assets:Checking 101 A
|
Assets:Checking 101 A
|
||||||
Unrealized PnL
|
Unrealized PnL
|
||||||
>>>2
|
$ hledger -f- roi -p 2019-11 --inv Investment --pnl PnL
|
||||||
|
>2
|
||||||
hledger: Error: Amounts could not be converted to a single cost basis: ["10 B","-10 B @@ 100 A"]
|
hledger: Error: Amounts could not be converted to a single cost basis: ["10 B","-10 B @@ 100 A"]
|
||||||
Consider using --value to force all costs to be in a single commodity.
|
Consider using --value to force all costs to be in a single commodity.
|
||||||
For example, "--cost --value=end,<commodity> --infer-market-prices", where commodity is the one that was used to pay for the investment.
|
For example, "--cost --value=end,<commodity> --infer-market-prices", where commodity is the one that was used to pay for the investment.
|
||||||
>>>=1
|
>= 1
|
||||||
|
|
||||||
# 10. Forcing valuation via --value
|
# 10. Forcing valuation via --value
|
||||||
hledger -f- roi -p 2019-11 --inv Investment --pnl PnL --cost --value=then,A --infer-market-prices
|
<
|
||||||
<<<
|
|
||||||
2019/11/01 Example
|
2019/11/01 Example
|
||||||
Assets:Checking -100 A
|
Assets:Checking -100 A
|
||||||
Investment 10 B
|
Investment 10 B
|
||||||
@ -254,18 +245,17 @@ hledger -f- roi -p 2019-11 --inv Investment --pnl PnL --cost --value=then,A --in
|
|||||||
Investment -10 B @@ 100 A
|
Investment -10 B @@ 100 A
|
||||||
Assets:Checking 101 A
|
Assets:Checking 101 A
|
||||||
Unrealized PnL
|
Unrealized PnL
|
||||||
>>>
|
$ hledger -f- roi -p 2019-11 --inv Investment --pnl PnL --cost --value=then,A --infer-market-prices
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++----------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++----------+--------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++==========+========+
|
+===++============+============++===============+==========+=============+=====++==========+========+
|
||||||
| 1 || 2019-11-01 | 2019-11-30 || 0 | -1 A | 0 | 1 A || 3678.34% | 12.87% |
|
| 1 || 2019-11-01 | 2019-11-30 || 0 | -1 A | 0 | 1 A || 3678.34% | 12.87% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++----------+--------+
|
+---++------------+------------++---------------+----------+-------------+-----++----------+--------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 11. Use "then" prices. 10000/76.20 = 131.23, 11000/73.88=148.89
|
# 11. Use "then" prices. 10000/76.20 = 131.23, 11000/73.88=148.89
|
||||||
hledger -f - roi --inv assets:investment --pnl income:investment --value=then,'$'
|
<
|
||||||
<<<
|
|
||||||
P 2020-12-01 $ 76.20
|
P 2020-12-01 $ 76.20
|
||||||
P 2021-01-01 $ 73.88
|
P 2021-01-01 $ 73.88
|
||||||
|
|
||||||
@ -276,18 +266,17 @@ P 2021-01-01 $ 73.88
|
|||||||
2021-01-02 get profit
|
2021-01-02 get profit
|
||||||
assets:investment =11000
|
assets:investment =11000
|
||||||
income:investment
|
income:investment
|
||||||
>>>
|
$ hledger -f - roi --inv assets:investment --pnl income:investment --value=then,'$'
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++=========+=========+
|
+===++============+============++===============+==========+=============+=====++=========+=========+
|
||||||
| 1 || 2020-12-02 | 2021-01-02 || 0 | $131 | $149 | $18 || 321.99% | 321.81% |
|
| 1 || 2020-12-02 | 2021-01-02 || 0 | $131 | $149 | $18 || 321.99% | 321.81% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 12. Use "end" prices. 10000/73.88=135.35
|
# 12. Use "end" prices. 10000/73.88=135.35
|
||||||
hledger -f - roi --inv assets:investment --pnl income:investment --value=end,'$'
|
<
|
||||||
<<<
|
|
||||||
P 2020-12-01 $ 76.20
|
P 2020-12-01 $ 76.20
|
||||||
P 2021-01-01 $ 73.88
|
P 2021-01-01 $ 73.88
|
||||||
|
|
||||||
@ -298,18 +287,17 @@ P 2021-01-01 $ 73.88
|
|||||||
2021-01-02 get profit
|
2021-01-02 get profit
|
||||||
assets:investment =11000
|
assets:investment =11000
|
||||||
income:investment
|
income:investment
|
||||||
>>>
|
$ hledger -f - roi --inv assets:investment --pnl income:investment --value=end,'$'
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=====++=========+=========+
|
+===++============+============++===============+==========+=============+=====++=========+=========+
|
||||||
| 1 || 2020-12-02 | 2021-01-02 || 0 | $135 | $149 | $14 || 196.58% | 196.58% |
|
| 1 || 2020-12-02 | 2021-01-02 || 0 | $135 | $149 | $14 || 196.58% | 196.58% |
|
||||||
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
+---++------------+------------++---------------+----------+-------------+-----++---------+---------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 13. Several PnL transactions on a single date are aggregated together
|
# 13. Several PnL transactions on a single date are aggregated together
|
||||||
hledger -f - roi --inv saving --pnl dividend
|
<
|
||||||
<<<
|
|
||||||
2010-01-01 A1
|
2010-01-01 A1
|
||||||
savingA 100.00 €
|
savingA 100.00 €
|
||||||
checking
|
checking
|
||||||
@ -337,18 +325,17 @@ hledger -f - roi --inv saving --pnl dividend
|
|||||||
2012-03-29 B3
|
2012-03-29 B3
|
||||||
saving -100.00 €
|
saving -100.00 €
|
||||||
checking
|
checking
|
||||||
>>>
|
$ hledger -f - roi --inv saving --pnl dividend
|
||||||
+---++------------+------------++---------------+----------+-------------+---------++-------+-------+
|
+---++------------+------------++---------------+----------+-------------+---------++-------+-------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+=========++=======+=======+
|
+===++============+============++===============+==========+=============+=========++=======+=======+
|
||||||
| 1 || 2010-01-01 | 2012-03-29 || 0 | -16.00 € | 0 | 16.00 € || 3.52% | 3.49% |
|
| 1 || 2010-01-01 | 2012-03-29 || 0 | -16.00 € | 0 | 16.00 € || 3.52% | 3.49% |
|
||||||
+---++------------+------------++---------------+----------+-------------+---------++-------+-------+
|
+---++------------+------------++---------------+----------+-------------+---------++-------+-------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|
||||||
# 14. Should support begin date before first transaction where first transaction has pnl
|
# 14. Should support begin date before first transaction where first transaction has pnl
|
||||||
hledger -f - roi --inv stocks --pnl expenses --value=then,€ -Y
|
<
|
||||||
<<<
|
|
||||||
P 2022-07-31 A € 1
|
P 2022-07-31 A € 1
|
||||||
|
|
||||||
2022-08-01 Purchase
|
2022-08-01 Purchase
|
||||||
@ -358,11 +345,11 @@ P 2022-07-31 A € 1
|
|||||||
|
|
||||||
P 2022-08-02 A € 2
|
P 2022-08-02 A € 2
|
||||||
|
|
||||||
>>>
|
$ hledger -f - roi --inv stocks --pnl expenses --value=then,€ -Y
|
||||||
+---++------------+------------++---------------+----------+-------------+------++---------+--------+
|
+---++------------+------------++---------------+----------+-------------+------++---------+--------+
|
||||||
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
| || Begin | End || Value (begin) | Cashflow | Value (end) | PnL || IRR | TWR |
|
||||||
+===++============+============++===============+==========+=============+======++=========+========+
|
+===++============+============++===============+==========+=============+======++=========+========+
|
||||||
| 1 || 2022-01-01 | 2022-12-31 || 0 | € 101 | € 200 | € 99 || 410.31% | 98.02% |
|
| 1 || 2022-01-01 | 2022-12-31 || 0 | € 101 | € 200 | € 99 || 410.31% | 98.02% |
|
||||||
+---++------------+------------++---------------+----------+-------------+------++---------+--------+
|
+---++------------+------------++---------------+----------+-------------+------++---------+--------+
|
||||||
|
|
||||||
>>>=0
|
>= 0
|
||||||
|
|||||||
@ -1,14 +1,10 @@
|
|||||||
# 1. empty file
|
# 1. empty file
|
||||||
hledger -f- stats
|
$ hledger -f- stats
|
||||||
<<<
|
> /Accounts.* 0 \(depth 0\)/
|
||||||
>>> /Accounts.* 0 \(depth 0\)/
|
|
||||||
>>>=0
|
|
||||||
|
|
||||||
# 2. included files should be listed in parse order
|
# 2. included files should be listed in parse order
|
||||||
touch a.j b.j; hledger -f- stats; rm -f a.j b.j
|
<
|
||||||
<<<
|
|
||||||
include a.j
|
include a.j
|
||||||
include b.j
|
include b.j
|
||||||
>>> /Included files *: *\.\/a\.j/
|
$ touch a.j b.j; hledger -f- stats; rm -f a.j b.j
|
||||||
>>>2
|
> /Included files *: *\.\/a\.j/
|
||||||
>>>=0
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user