Using "hledgerdev" was a hack to help ensure that tests used a fresh developer build by default. Now they specify "hledger" again, which fits better with stack. It's up to the tester to make sure the desired executable is first in PATH or specified with -w. (Note a couple of tests currently don't obey -w and will always run "hledger", see addons.test).
		
			
				
	
	
		
			163 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # http://code.google.com/p/hledger/issues/detail?id=23
 | |
| #
 | |
| # 1. original test case, this should balance since price precisions do
 | |
| # not affect the canonical display precisions used for display and balancing
 | |
| hledger -f - print
 | |
| <<<
 | |
| 2010/1/1 x
 | |
|    A  55.3653 C @ 30.92189512 D
 | |
|    A  -1712 D
 | |
| >>>
 | |
| 2010/01/01 x
 | |
|     A  55.3653 C @ 30.92189512 D
 | |
|     A       -1712 D
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| ## 1b. here $'s canonical display precision should be 2 not 4
 | |
| ## XXX no, because the inferred amount $1.0049 is observed
 | |
| # hledger -f - print --cost
 | |
| # <<<
 | |
| # 2010/1/1
 | |
| #    a  $0.00
 | |
| #    a  1C @ $1.0049
 | |
| #    a
 | |
| # >>>
 | |
| # 2010/01/01
 | |
| #     a             0
 | |
| #     a         $1.00
 | |
| #     a        $-1.00
 | |
| #
 | |
| # >>>=0
 | |
| 
 | |
| # 2. and here the price should be printed with its original precision, not
 | |
| # the canonical display precision
 | |
| hledger -f - print
 | |
| <<<
 | |
| 2010/1/1
 | |
|    a  $0.00
 | |
|    a  1C @ $1.0049
 | |
|    a
 | |
| >>>
 | |
| 2010/01/01
 | |
|     a             0
 | |
|     a  1C @ $1.0049
 | |
|     a      $-1.0049
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| # 3. with $'s display precision at 3 or more, this txn should not balance.
 | |
| # The error message shows the difference with full precision.
 | |
| hledger -f - balance --no-total --cost --empty
 | |
| <<<
 | |
| 2010/1/1
 | |
|    a  1C @ $1.0049
 | |
|    a  $-1.000
 | |
| >>>2 /off by \$0.0049/
 | |
| >>>= 1
 | |
| 
 | |
| # 4. with $'s display precision at 2 or less, this txn should balance
 | |
| hledger -f - balance --no-total --cost --empty
 | |
| <<<
 | |
| 2010/1/1
 | |
|    a  1C @ $1.0049
 | |
|    a  $-1.00
 | |
| >>>
 | |
|                    0  a
 | |
| >>>=0
 | |
| 
 | |
| # 5. avamk's 2011/1/19 example
 | |
| hledger -f - balance --cost
 | |
| <<<
 | |
| 2001/01/01 * ACME fund
 | |
|            assets:investment:ACME     203.890 ACME @ $16.02
 | |
|            equity:opening balances
 | |
| >>>
 | |
|             $3266.32  assets:investment:ACME
 | |
|            $-3266.32  equity:opening balances
 | |
| --------------------
 | |
|                    0
 | |
| >>>=0
 | |
| 
 | |
| # hledger 0.14pre: precision=2, presumably from price
 | |
| #            $3266.32  assets:investment:ACME
 | |
| #           $-3266.32  equity:opening balances
 | |
| #--------------------
 | |
| #               $0.00
 | |
| #
 | |
| # ledger "2.6.0.90" with -s: full precision, ignores price
 | |
| #          $3266.3178  assets:investment:ACME
 | |
| #         $-3266.3178  equity:opening balances
 | |
| #
 | |
| # ledger 3: precision=0, uses default, ignores price
 | |
| #               $3266  assets:investment:ACME
 | |
| #              $-3266  equity:opening balances
 | |
| #--------------------
 | |
| #                   0
 | |
| 
 | |
| ## 6. with a default commodity.. XXX should observe it
 | |
| hledger -f - balance --cost
 | |
| <<<
 | |
| D $1000.0
 | |
| 2001/01/01 * ACME fund
 | |
|            assets:investment:ACME     203.890 ACME @ $16.02
 | |
|            equity:opening balances
 | |
| >>>
 | |
|             $3266.32  assets:investment:ACME
 | |
|            $-3266.32  equity:opening balances
 | |
| --------------------
 | |
|                    0
 | |
| >>>=0
 | |
| ### hledger 0.14pre: precision=2, presumably from price, ignores D
 | |
| ###            $3266.32  assets:investment:ACME
 | |
| ###           $-3266.32  equity:opening balances
 | |
| ###--------------------
 | |
| ###               $0.00
 | |
| ###
 | |
| ### ledger "2.6.0.90" with -s: full precision, ignores price and D
 | |
| ###          $3266.3178  assets:investment:ACME
 | |
| ###         $-3266.3178  equity:opening balances
 | |
| ###
 | |
| ### ledger 3: precision=1, ignores price, observes D
 | |
| ###             $3266.3  assets:investment:ACME
 | |
| ###            $-3266.3  equity:opening balances
 | |
| ###--------------------
 | |
| ###                   0
 | |
| 
 | |
| # 
 | |
| # 7. when there are multiple postings in the commodity being priced,
 | |
| # show the averaged unit price, with precision equal to the sum of
 | |
| # the max precisions of the commodities being converted (#262).
 | |
| # Here the (irrational) price should be displayed with just precision 4
 | |
| # (C's precision 2 + D's precision 2).
 | |
| hledger -f- print
 | |
| <<<
 | |
| 1/1
 | |
|     c    C 10.00
 | |
|     c    C 11.00
 | |
|     d  D -320.00
 | |
| >>>
 | |
| 2015/01/01
 | |
|     c  C 10.00 @ D 15.2381
 | |
|     c  C 11.00 @ D 15.2381
 | |
|     d     D -320.00
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| 
 | |
| ## 8. Here the price should be displayed with precision 7
 | |
| # (E's precision 4 + F's precision 3).
 | |
| hledger -f- print
 | |
| <<<
 | |
| 1/1
 | |
|     e    E 10.0000
 | |
|     e    E 11
 | |
|     f  F -320.000
 | |
| >>>
 | |
| 2015/01/01
 | |
|     e  E 10.0000 @ F 15.2380952
 | |
|     e  E 11.0000 @ F 15.2380952
 | |
|     f    F -320.000
 | |
| 
 | |
| >>>=0
 |