############################################################################## # data validation # # 1. should prompt again for a bad date hledgerdev -f $$-add.j add; rm -f $$-add.j <<< 2009/1/32 >>> /A valid hledger smart date is required/ >>>=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 \. or enter to finish.*/ >>>=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. 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 ## 9. 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