refactor: setAmountPrecision -> withPrecision
This commit is contained in:
		
							parent
							
								
									9cd228329c
								
							
						
					
					
						commit
						45d4a38cc7
					
				| @ -537,8 +537,8 @@ tests_Hledger_Data_Amount = TestList $ | ||||
|     (a3 + a3) `is` usd (-2.46) | ||||
|     sum [a1,a2,a3,-a3] `is` usd 0 | ||||
|     -- highest precision is preserved | ||||
|     let ap1 = setAmountPrecision 1 $ usd 1 | ||||
|         ap3 = setAmountPrecision 3 $ usd 1 | ||||
|     let ap1 = usd 1 `withPrecision` 1 | ||||
|         ap3 = usd 1 `withPrecision` 3 | ||||
|     (asprecision $ astyle $ sum [ap1,ap3]) `is` 3 | ||||
|     (asprecision $ astyle $ sum [ap3,ap1]) `is` 3 | ||||
|     -- adding different commodities assumes conversion rate 1 | ||||
| @ -561,7 +561,7 @@ tests_Hledger_Data_Amount = TestList $ | ||||
|   ,"adding mixed amounts" ~: do | ||||
|     (sum $ map (Mixed . (\a -> [a])) | ||||
|              [usd 1.25 | ||||
|              ,setAmountPrecision 0 $ usd (-1) | ||||
|              ,usd (-1) `withPrecision` 0 | ||||
|              ,usd (-0.25) | ||||
|              ]) | ||||
|       `is` Mixed [amount{aquantity=0}] | ||||
|  | ||||
| @ -296,8 +296,8 @@ balanceTransaction styles t@Transaction{tpostings=ps} | ||||
|                                         -- assign a balancing price. Use @@ for more exact output when possible. | ||||
|                                         -- invariant: prices should always be positive. Enforced with "abs" | ||||
|                                         = if length ramountsinunpricedcommodity == 1 | ||||
|                                            then TotalPrice $ setAmountPrecision maxprecision $ abs $ targetcommodityamount | ||||
|                                            else UnitPrice $ setAmountPrecision maxprecision $ abs $ targetcommodityamount `divideAmount` (aquantity unpricedamount) | ||||
|                                            then TotalPrice $ abs targetcommodityamount `withPrecision` maxprecision | ||||
|                                            else UnitPrice $ abs (targetcommodityamount `divideAmount` (aquantity unpricedamount)) `withPrecision` maxprecision | ||||
|                                     | otherwise = NoPrice | ||||
|                       where | ||||
|                         unpricedcommodity     = head $ filter (`elem` (map acommodity rsumamounts)) rcommoditiesinorder | ||||
| @ -320,8 +320,8 @@ balanceTransaction styles t@Transaction{tpostings=ps} | ||||
|                 where | ||||
|                   conversionprice c | c == unpricedcommodity | ||||
|                                         = if length bvamountsinunpricedcommodity == 1 | ||||
|                                            then TotalPrice $ setAmountPrecision maxprecision $ abs $ targetcommodityamount | ||||
|                                            else UnitPrice $ setAmountPrecision maxprecision $ abs $ targetcommodityamount `divideAmount` (aquantity unpricedamount) | ||||
|                                            then TotalPrice $ abs targetcommodityamount `withPrecision` maxprecision | ||||
|                                            else UnitPrice $ abs (targetcommodityamount `divideAmount` (aquantity unpricedamount)) `withPrecision` maxprecision | ||||
|                                     | otherwise = NoPrice | ||||
|                       where | ||||
|                         unpricedcommodity     = head $ filter (`elem` (map acommodity bvsumamounts)) bvcommoditiesinorder | ||||
| @ -444,7 +444,7 @@ tests_Hledger_Data_Transaction = TestList $ concat [ | ||||
|         ]) | ||||
|        (showTransaction | ||||
|         (txnTieKnot $ Transaction (parsedate "2010/01/01") Nothing False "" "x" "" [] | ||||
|          [Posting False "a" (Mixed [amt 1 `at` (setAmountPrecision 0 $ usd 2)]) "" RegularPosting [] Nothing | ||||
|          [Posting False "a" (Mixed [amt 1 `at` (usd 2 `withPrecision` 0)]) "" RegularPosting [] Nothing | ||||
|          ,Posting False "b" missingmixedamt "" RegularPosting [] Nothing | ||||
|          ] "")) | ||||
| 
 | ||||
| @ -480,7 +480,7 @@ tests_Hledger_Data_Transaction = TestList $ concat [ | ||||
|                            ] "") | ||||
|      assertBool "balanceTransaction can infer conversion price" (isRight e) | ||||
|      assertEqual "balancing conversion price is inferred" | ||||
|                      (Mixed [usd 1.35 @@ (setAmountPrecision maxprecision $ eur 1)]) | ||||
|                      (Mixed [usd 1.35 @@ (eur 1 `withPrecision` maxprecision)]) | ||||
|                      (case e of | ||||
|                         Right e' -> (pamount $ head $ tpostings e') | ||||
|                         Left _ -> error' "should not happen") | ||||
|  | ||||
| @ -577,7 +577,7 @@ amountp = try leftsymbolamount <|> try rightsymbolamount <|> nosymbolamount | ||||
| tests_amountp = [ | ||||
|    "amountp" ~: do | ||||
|     assertParseEqual (parseWithCtx nullctx amountp "$47.18") (usd 47.18) | ||||
|     assertParseEqual (parseWithCtx nullctx amountp "$1.") (setAmountPrecision 0 $ usd 1) | ||||
|     assertParseEqual (parseWithCtx nullctx amountp "$1.") (usd 1 `withPrecision` 0) | ||||
|   ,"amount with unit price" ~: do | ||||
|     assertParseEqual | ||||
|      (parseWithCtx nullctx amountp "$10 @ €0.5") | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user