2010-11-16 18:59:12 +03:00
##############################################################################
# data validation
#
2011-01-19 15:32:18 +03:00
# 1. should prompt again for a bad date
2011-10-01 02:54:22 +04:00
rm -f t$$.j; bin/hledger -f t$$.j add; rm -f t$$.j
2010-11-16 18:59:12 +03:00
<<<
2009/1/32
2011-09-23 07:51:45 +04:00
>>> /date, or \. to end.*: date, or \. to end.*/
2011-08-15 02:15:39 +04:00
>>>=0
2011-01-19 15:32:18 +03:00
# 2. should accept a blank date
2011-10-01 02:54:22 +04:00
rm -f t$$.j; bin/hledger -f t$$.j add; rm -f t$$.j
2010-11-16 18:59:12 +03:00
<<<
2011-09-23 07:51:45 +04:00
>>> /date,.*: description/
2011-08-15 02:15:39 +04:00
>>>=0
2010-11-16 18:59:12 +03:00
##############################################################################
# precision and commodity handling
#
2011-01-19 15:32:18 +03:00
# 3. simple add with no existing journal, no commodity entered
2011-10-01 02:54:22 +04:00
rm -f t$$.j; bin/hledger -f t$$.j add; rm -f t$$.j
2010-11-16 18:08:06 +03:00
<<<
a
1000.0
b
.
2011-09-23 07:51:45 +04:00
>>> /^date, or \. to end \[.*\]: description \[\]: account 1: amount 1: account 2: amount 2 \[-1000.0\]: account 3, or \. to record: date, or \. to end \[.*\]: $/
2011-08-15 02:15:39 +04:00
>>>=0
2011-01-19 15:32:18 +03:00
# 4. default commodity with greater precision
2011-10-01 02:54:22 +04:00
printf 'D $1000.00\n' >t$$.j; bin/hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
2010-11-16 18:08:06 +03:00
<<<
a
$1000.0
b
.
>>> /a +\$1000\.0/
2011-08-15 02:15:39 +04:00
>>>=0
2011-01-19 15:32:18 +03:00
# 5. default commodity with less precision
2011-10-01 02:54:22 +04:00
printf 'D $1000.0\n' >t$$.j; bin/hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
2010-11-16 18:08:06 +03:00
<<<
a
$1000.00
b
.
>>> /a +\$1000\.00/
2011-08-15 02:15:39 +04:00
>>>=0
2011-01-19 15:32:18 +03:00
# 6. existing commodity with greater precision
2011-10-01 02:54:22 +04:00
printf '2010/1/1\n a $1000.00\n b\n' >t$$.j; bin/hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
2010-11-16 18:08:06 +03:00
<<<
a
$1000.0
b
.
>>> /a +\$1000\.0/
2011-08-15 02:15:39 +04:00
>>>=0
2011-01-19 15:32:18 +03:00
# 7. existing commodity with less precision
2011-10-01 02:54:22 +04:00
printf '2010/1/1\n a $1000.0\n b\n' >t$$.j; bin/hledger -f t$$.j add >/dev/null; cat t$$.j; rm -f t$$.j
2010-11-16 18:08:06 +03:00
<<<
a
$1000.00
b
.
>>> /a +\$1000\.00/
2011-08-15 02:15:39 +04:00
>>>=0
2011-01-19 15:32:18 +03:00
# 8. no commodity entered, the (most recent) default commodity should be applied
2011-10-01 02:54:22 +04:00
printf 'D $1000.0\nD £1,000.00\n' >t$$.j; bin/hledger -f t$$.j add; cat t$$.j; rm -f t$$.j
2010-11-16 18:08:06 +03:00
<<<
2010/1/1
2010-11-13 18:11:45 +03:00
2010-11-16 18:08:06 +03:00
a
1000
b
2010-11-13 18:11:45 +03:00
2010-11-16 18:08:06 +03:00
.
2011-01-20 03:17:32 +03:00
>>> /a +£1,000.00/
2011-08-15 02:15:39 +04:00
>>>=0
2011-01-19 15:32:18 +03:00
# 9. default amounts should not fail to balance due to precision
2011-06-10 15:35:06 +04:00
rm -f nosuch.journal; bin/hledger -f nosuch.journal add; rm -f nosuch.journal
2010-11-16 18:59:12 +03:00
<<<
2010/1/1
x
a
0.25
b
0.5
c
>>> /amount 3 \[-0.75\]/
2011-08-15 02:15:39 +04:00
>>>=0