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).
		
			
				
	
	
		
			282 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			282 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # price-related tests
 | |
| # 1. print a transaction with an explicit unit price
 | |
| hledger -f- print
 | |
| <<<
 | |
| 2011/01/01
 | |
|     expenses:foreign currency       €100 @ $1.35
 | |
|     assets
 | |
| >>>
 | |
| 2011/01/01
 | |
|     expenses:foreign currency  €100 @ $1.35
 | |
|     assets                         $-135.00
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| # 2. -B/--cost converts to the price's commodity ("cost")
 | |
| hledger -f- print --cost
 | |
| <<<
 | |
| 2011/01/01
 | |
|     expenses:foreign currency       €100 @ $1.35
 | |
|     assets
 | |
| >>>
 | |
| 2011/01/01
 | |
|     expenses:foreign currency       $135.00
 | |
|     assets                         $-135.00
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| # 3. -B should ignore historical price directives
 | |
| hledger -f- print -B
 | |
| <<<
 | |
| P 2011/01/01 € $1.35
 | |
| 
 | |
| 2011/01/01
 | |
|     expenses:foreign currency       €100
 | |
|     assets
 | |
| 
 | |
| >>>
 | |
| 2011/01/01
 | |
|     expenses:foreign currency          €100
 | |
|     assets                            €-100
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| # 4. print a transaction with a total price
 | |
| hledger -f - print
 | |
| <<<
 | |
| 2011/01/01
 | |
|     expenses:foreign currency       €100 @@ $135
 | |
|     assets
 | |
| >>>
 | |
| 2011/01/01
 | |
|     expenses:foreign currency  €100 @@ $135
 | |
|     assets                            $-135
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| # 5. when the balance has exactly two commodities, both unpriced, infer an
 | |
| # implicit conversion price for the first one in terms of the second.
 | |
| hledger -f - print
 | |
| <<<
 | |
| 2011/01/01
 | |
|     expenses:foreign currency       €100
 | |
|     misc                              $2.1
 | |
|     assets                         $-135.00
 | |
|     misc                              €1
 | |
|     misc                             €-1
 | |
|     misc                             $-2.1
 | |
| >>>
 | |
| 2011/01/01
 | |
|     expenses:foreign currency  €100 @ $1.35
 | |
|     misc                              $2.10
 | |
|     assets                         $-135.00
 | |
|     misc                         €1 @ $1.35
 | |
|     misc                        €-1 @ $1.35
 | |
|     misc                             $-2.10
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| ## 6. another, from ledger tests. Just one posting to price so uses @@.
 | |
| hledger -f - print
 | |
| <<<
 | |
| 2002/09/30 * 1a1a6305d06ce4b284dba0d267c23f69d70c20be
 | |
|     c56a21d23a6535184e7152ee138c28974f14280c  866.231000 GGGGG
 | |
|     a35e82730cf91569c302b313780e5895f75a62b9   $-17,783.72
 | |
| >>>
 | |
| 2002/09/30 * 1a1a6305d06ce4b284dba0d267c23f69d70c20be
 | |
|     c56a21d23a6535184e7152ee138c28974f14280c  866.231000 GGGGG @@ $17,783.72
 | |
|     a35e82730cf91569c302b313780e5895f75a62b9   $-17,783.72
 | |
| 
 | |
| >>>=0
 | |
| 
 | |
| # 7. when the balance has more than two commodities, don't bother
 | |
| hledger -f - print
 | |
| <<<
 | |
| 2011/01/01
 | |
|     expenses:foreign currency       €100
 | |
|     assets                         $-135
 | |
|     expenses:other                  £200
 | |
| >>>= !0
 | |
| 
 | |
| # 8. another
 | |
| hledger -f - balance -B
 | |
| <<<
 | |
| 2011/01/01
 | |
|     expenses:foreign currency        €99
 | |
|     assets                         $-130
 | |
|     expenses:foreign currency         €1
 | |
|     assets                           $-5
 | |
| >>>
 | |
|                $-135  assets
 | |
|                 $135  expenses:foreign currency
 | |
| --------------------
 | |
|                    0
 | |
| >>>=0
 | |
| 
 | |
| # 9. transaction in two commodities should balance out properly
 | |
| hledger -f - balance --cost
 | |
| <<<
 | |
| 2011/01/01 x
 | |
|   a  10£ @@ 16$
 | |
|   b
 | |
| >>>
 | |
|                  16$  a
 | |
|                 -16$  b
 | |
| --------------------
 | |
|                    0
 | |
| >>>=0
 | |
| 
 | |
| # 10. When commodity price is specified implicitly, transaction should
 | |
| #     be considered balanced out even when first amount is negative
 | |
| #     (that is, price for it should be determined properly, with proper sign)
 | |
| hledger -f - balance
 | |
| <<<
 | |
| 2011/01/01 x
 | |
|   a  -10£
 | |
|   b  16$
 | |
| >>>
 | |
|                 -10£  a
 | |
|                  16$  b
 | |
| --------------------
 | |
|                  16$
 | |
|                 -10£
 | |
| >>>=0
 | |
| 
 | |
| # 11. When commodity price is specified implicitly, transaction should
 | |
| #     NOT be considered balanced out when BOTH amounts are negative
 | |
| hledger -f - balance
 | |
| <<<
 | |
| 2011/01/01 x
 | |
|   a  -10£
 | |
|   b  -16$
 | |
| >>>
 | |
| >>>=1
 | |
| 
 | |
| # 12. Differently-priced lots of a commodity should be merged in balance report
 | |
| hledger -f - balance
 | |
| <<<
 | |
| 2011/1/1
 | |
|   (a)   £1 @ $2
 | |
| 
 | |
| 2011/1/1
 | |
|   (a)   £1 @ $3
 | |
| >>>
 | |
|                   £2  a
 | |
| --------------------
 | |
|                   £2
 | |
| >>>=0
 | |
| 
 | |
| # 13. this should balance
 | |
| hledger -f - balance
 | |
| <<<
 | |
| 2011/1/1
 | |
|     a  1h @ $10
 | |
|     b  1h @ $20
 | |
|     c  $-30
 | |
| >>>= 0
 | |
| 
 | |
| # 14. we ignore P, so this should balance
 | |
| hledger -f - balance
 | |
| <<<
 | |
| P 2011/11/15 EUR CHF 1
 | |
| 2011/11/19
 | |
|     a                             EUR 1000.00
 | |
|     b                             CHF -1254
 | |
| >>>= 0
 | |
| 
 | |
| # # 14b. if P worked, this should balance
 | |
| # hledger -f - balance
 | |
| # <<<
 | |
| # P 2011/11/15 EUR CHF 1.234
 | |
| # 2011/11/19
 | |
| #     a                             EUR 1000.00
 | |
| #     b                             USD 1000.00
 | |
| #     c                             CHF -1254
 | |
| # >>>= 0
 | |
| 
 | |
| # 15. these balance because of the unit prices, and should parse successfully
 | |
| hledger -f - balance --no-total
 | |
| <<<
 | |
| 1/1
 | |
|     a   1X @ 2Y
 | |
|     a  -2X @ 1Y
 | |
| >>>
 | |
|                  -1X  a
 | |
| >>>= 0
 | |
| 
 | |
| # 16.
 | |
| hledger -f - balance --no-total -B
 | |
| <<<
 | |
| 1/1
 | |
|     a   1X @ 2Y
 | |
|     a  -2X @ 1Y
 | |
| >>>
 | |
| >>>= 0
 | |
| 
 | |
| # 17. likewise with total prices. Note how the primary amount's sign is used.
 | |
| hledger -f - balance --no-total
 | |
| <<<
 | |
| 1/1
 | |
|     a   1X @@ 1Y
 | |
|     a  -2X @@ 1Y
 | |
| >>>
 | |
|                  -1X  a
 | |
| >>>= 0
 | |
| 
 | |
| # 18. 
 | |
| hledger -f - balance --no-total -B
 | |
| <<<
 | |
| 1/1
 | |
|     a   1X @@ 1Y
 | |
|     a  -2X @@ 1Y
 | |
| >>>
 | |
| >>>= 0
 | |
| 
 | |
| # 19. here, a's primary amount is 0, and its cost is 1Y; b is the assigned auto-balancing amount of -1Y (per issue 69)
 | |
| hledger -f - balance --no-total -E
 | |
| <<<
 | |
| 1/1
 | |
|     a   1X @@ 1Y
 | |
|     a   1X @@ 1Y
 | |
|     a  -2X @@ 1Y
 | |
|     b
 | |
| >>>
 | |
|                    0  a
 | |
|                  -1Y  b
 | |
| >>>= 0
 | |
| 
 | |
| # 20. the above with -B
 | |
| hledger -f - balance --no-total -E -B
 | |
| <<<
 | |
| 1/1
 | |
|     a   1X @@ 1Y
 | |
|     a   1X @@ 1Y
 | |
|     a  -2X @@ 1Y
 | |
|     b
 | |
| >>>
 | |
|                   1Y  a
 | |
|                  -1Y  b
 | |
| >>>= 0
 | |
| 
 | |
| # # when the *cost-basis* balance has exactly two commodities, both
 | |
| # # unpriced, infer an implicit conversion price for the first one in terms
 | |
| # # of the second.
 | |
| # hledger -f - print
 | |
| # <<<
 | |
| # 2011/01/01
 | |
| #     expenses:foreign currency       €100
 | |
| #     assets                         $-135.00
 | |
| #     misc                              $3.1 @ 2 bob
 | |
| #     misc                             $-3.1 @ 2 bob
 | |
| #     misc                              £1 @@ 2 shekels
 | |
| #     misc                             £-1 @@ 2 shekels
 | |
| # >>>
 | |
| # 2011/01/01
 | |
| #     expenses:foreign currency   €100 @ $1.35
 | |
| #     assets                     €-100 @ $1.35
 | |
| #     misc                        $3.1 @ 2 bob
 | |
| #     misc                       $-3.1 @ 2 bob
 | |
| #     misc                          £1 @@ 2 shekels
 | |
| #     misc                         £-1 @@ 2 shekels
 | |
| #
 |