##############################################################################
# data validation
#
# 1. should prompt again for a bad date
hledger -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
hledger -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
hledger -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; hledger -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; hledger -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; hledger -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; hledger -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; hledger -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' | hledger -f /dev/null add
# hledger -f /dev/null add
# <<<


# a
# 1
# b
# >>> /amount  2 \[-1\]/
# >>>=0

