############################################################################## # data validation # # 1. should prompt again for a bad date hledgerdev -f $$-add.j add; rm -f $$-add.j <<< 2009/1/32 >>> /date .*: date .*/ >>>=0 # 2. should accept a blank date hledgerdev -f $$-add.j add; rm -f $$-add.j <<< >>> /date .*: description / >>>=0 ############################################################################## # precision and commodity handling # # 3. simple add with no existing journal, no commodity entered hledgerdev -f $$-add.j add; rm -f $$-add.j <<< a 1000.0 b . >>> /^date.*: description.*: account 1.*: amount 1.*: account 2.*: amount 2.*: account 3.*or \. to complete.*: Accept.*: $/ >>>=0 # 4. default commodity with greater precision printf 'D $1000.00\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j <<< a $1000.0 b . >>> /a +\$1000\.0/ >>>=0 # 5. default commodity with less precision printf 'D $1000.0\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j <<< a $1000.00 b . >>> /a +\$1000\.00/ >>>=0 # 6. existing commodity with greater precision printf '2010/1/1\n a $1000.00\n b\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j <<< a $1000.0 b . >>> /a +\$1000\.0/ >>>=0 # 7. existing commodity with less precision printf '2010/1/1\n a $1000.0\n b\n' >t$$.j; hledgerdev -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j <<< a $1000.00 b . >>> /a +\$1000\.00/ >>>=0 # 8. no commodity entered, the (most recent) default commodity should be applied # (and a non-ascii commodity symbol should work) printf 'D $1000.0\nD £1,000.00\n' >t$$.j; hledgerdev -f t$$.j add; cat t$$.j; rm -f t$$.j <<< 2010/1/1 a 1000 b . >>> /a +£1,000.00/ >>>=0 # 9. default amounts should not fail to balance due to precision rm -f nosuch.journal; hledgerdev -f nosuch.journal add; rm -f nosuch.journal <<< 2010/1/1 x a 0.25 b 0.5 c >>> /amount 3 \? \[-0.75\]/ >>>=0 ## 10. shouldn't add decimals if there aren't any ## printf '\n\na\n1\nb\n' | hledgerdev -f /dev/null add # hledgerdev -f /dev/null add # <<< # a # 1 # b # >>> /amount 2 \[-1\]/ # >>>=0