Make use of commodity format directive as a hint for parsing amount. Kinda resolves simonmichael/hledger#487
		
			
				
	
	
		
			175 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Simple case
 | |
| hledger bal -f - --no-total
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   1,000.00 EUR
 | |
| 	b  -1,000.00 EUR
 | |
| >>>
 | |
|         1,000.00 EUR  a
 | |
|        -1,000.00 EUR  b
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # No digits before decimal sep
 | |
| hledger bal -f - --no-total
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   .01 EUR
 | |
| 	b
 | |
| >>>
 | |
|             0.01 EUR  a
 | |
|            -0.01 EUR  b
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # No digits after decimal sep
 | |
| hledger bal -f - --no-total
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   1. EUR
 | |
| 	b
 | |
| >>>
 | |
|                1 EUR  a
 | |
|               -1 EUR  b
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # No digits at all
 | |
| hledger bal -f -
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   . EUR
 | |
| 	b
 | |
| >>>
 | |
| >>>=1
 | |
| 
 | |
| # Default commodity
 | |
| hledger bal -f -
 | |
| <<<
 | |
| D 1,000.00 EUR
 | |
| 
 | |
| 2017/1/1
 | |
| 	a   1,000
 | |
| 	b  -1,000.00
 | |
| >>>
 | |
|         1,000.00 EUR  a
 | |
|        -1,000.00 EUR  b
 | |
| --------------------
 | |
|                    0
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # Omitted decimals
 | |
| hledger bal -f -
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   1,000 EUR
 | |
| 	b  -1,000.00 EUR
 | |
| >>>
 | |
| >>>=1
 | |
| 
 | |
| # Omitted decimals with commodity hint
 | |
| hledger bal -f -
 | |
| <<<
 | |
| commodity 1,000.00 EUR
 | |
| 
 | |
| 2017/1/1
 | |
| 	a   1,000 EUR
 | |
| 	b  -1,000.00 EUR
 | |
| >>>
 | |
|         1,000.00 EUR  a
 | |
|        -1,000.00 EUR  b
 | |
| --------------------
 | |
|                    0
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # Omitted decimals with commodity hint and symbol on left
 | |
| hledger bal -f -
 | |
| <<<
 | |
| commodity €1,000.00
 | |
| 
 | |
| 2017/1/1
 | |
| 	a   €1,000
 | |
| 	b  €-1,000.00
 | |
| >>>
 | |
|            €1,000.00  a
 | |
|           €-1,000.00  b
 | |
| --------------------
 | |
|                    0
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # Big prices
 | |
| hledger bal -f -  --no-total
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   -1 BTC @ 24,840 UAH
 | |
| 	b   24,840.00 UAH
 | |
| >>>
 | |
| >>>=1
 | |
| 
 | |
| # Big prices with commodity hint
 | |
| hledger bal -f -  --no-total
 | |
| <<<
 | |
| commodity ₴1,000.00
 | |
| 
 | |
| 2017/1/1
 | |
| 	a   -1 BTC @ ₴24,840
 | |
| 	b   ₴24,840.00
 | |
| >>>
 | |
|               -1 BTC  a
 | |
|           ₴24,840.00  b
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # adjacent punctuation chars
 | |
| hledger bal -f -
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   1,,0,,0.0 EUR
 | |
| 	b  -1..0..0,0 EUR
 | |
| >>>
 | |
| >>>=1
 | |
| 
 | |
| # adjacent punctuation chars of different types
 | |
| hledger bal -f -
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   1,0,.0 EUR
 | |
| 	b  -1.0.,0 EUR
 | |
| >>>
 | |
| >>>=1
 | |
| 
 | |
| # separator chars vary
 | |
| hledger bal -f -
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   1.0,0.0,0 EUR
 | |
| 	b  -1,0.0,0.0 EUR
 | |
| >>>
 | |
| >>>=1
 | |
| 
 | |
| # number begins with a decimal char
 | |
| hledger bal -f -
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   .1 EUR
 | |
| 	b  -.1 EUR
 | |
| >>>
 | |
|              0.1 EUR  a
 | |
|             -0.1 EUR  b
 | |
| --------------------
 | |
|                    0
 | |
| >>>2
 | |
| >>>=0
 | |
| 
 | |
| # number begins with a separator char
 | |
| hledger bal -f -
 | |
| <<<
 | |
| 2017/1/1
 | |
| 	a   ,100.0 EUR
 | |
| 	b  -,100.0 EUR
 | |
| >>>
 | |
| >>>=1
 |