Stop exporting journalAmounts, overJournalAmounts, traverseJournalAmounts. Rename journalAmounts helper to journalStyleInfluencingAmounts. D directives are now a little better at influencing amount canonicalisation, eg in the updated test case.
		
			
				
	
	
		
			148 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			3.8 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
 | |
| 
 | |
| # 2. here the price should be printed with its original precision, not
 | |
| # the canonical display precision. And the inferred amount should be printed
 | |
| # with the canonical precision (2 digits, inferred from the first posting).
 | |
| hledger -f - print --explicit
 | |
| <<<
 | |
| 2010/1/1
 | |
|    a  $0.00
 | |
|    a  1C @ $1.0049
 | |
|    a
 | |
| >>>
 | |
| 2010-01-01
 | |
|     a               0
 | |
|     a    1C @ $1.0049
 | |
|     a          $-1.00
 | |
| 
 | |
| >>>=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..
 | |
| hledger -f - balance --cost
 | |
| <<<
 | |
| D $1000.0
 | |
| 2001/01/01 * ACME fund
 | |
|            assets:investment:ACME     203.890 ACME @ $16.02
 | |
|            equity:opening balances
 | |
| >>>
 | |
|              $3266.3  assets:investment:ACME
 | |
|             $-3266.3  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 --explicit
 | |
| <<<
 | |
| 2015/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 --explicit
 | |
| <<<
 | |
| 2015/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
 |