114 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
##############################################################################
 | 
						|
# 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
 | 
						|
 |