# alias-related tests # simple aliases # 1. simple alias directive < alias checking = assets:bank:checking 1/1 (checking:a) 1 $ hledger -f- accounts assets:bank:checking:a # 2. simple alias matches whole account name components only < alias a:b = A:B 1/1 (a:b:c) 1 ; should match this 1/1 (a:bb:d) 1 ; should not match this $ hledger -f- accounts A:B:c a:bb:d # 3. a simple alias matching the whole account name works < alias a:b = A:B 1/1 (a:b) 1 $ hledger -f- accounts A:B # regular expression aliases # 4. regex alias directive < alias /^(.+):bank:([^:]+):?(.*)/ = \1:\2 \3 1/1 (assets:bank:B:checking:a) 1 $ hledger -f- accounts assets:B checking:a # 5. regex alias pattern is a case-insensitive regular expression # matching anywhere in the account name. All matching aliases are # applied to an account name in turn, most recently seen first. The # replacement can replace multiple matches within the account name. # The replacement pattern supports numeric backreferences. # < alias /a/ = b 2011/01/01 A a 1 a a 2 c alias /A (.)/=\1 2011/01/01 A a 1 a a 2 c $ hledger -f- print 2011/01/01 b b 1 b b 2 c 2011/01/01 b 1 b 2 c >=0 # CLI # 6. --alias command-line options are applied in the order written. # Spaces are allowed if quoted. # < 2011/01/01 a a 1 A a 2 c $ hledger -f- print --alias '/A (.)/=a' --alias /a/=b 2011/01/01 b 1 b 2 c >=0 # 7. alias options are applied after alias directives. # < alias /^a/=B alias /^a/=E alias E=F 2011/01/01 [a:x] 1 [x:a:x] $ hledger -f- print --alias /a/=A --alias /B/=C --alias /B/=D --alias /C/=D 2011/01/01 [E:x] 1 [x:A:x] >=0 # 8. alias options < 01/01 Opening balances (bank) 100 (credit-card) -10 01/02 expenses 5 cc 01/03 expenses 5 b 01/04 Credit card charge cc = 0 b 01/05 expenses 5 b = 75 $ hledger -f- balance --alias=cc=credit-card --alias=b=bank 75 bank 15 expenses -------------------- 90 # 9. query will search both origin and substitution in alias < alias a = b 2017/1/1 a 1 b -1 $ hledger -f- reg '^a$' '^b$' 2017/01/01 b 1 1 b -1 0