journal: fix error when P directive has a zero price (#1373)
This commit is contained in:
parent
4388ce72f6
commit
08ee311875
@ -44,6 +44,7 @@ import Safe (headMay)
|
|||||||
import Hledger.Utils
|
import Hledger.Utils
|
||||||
import Hledger.Data.Types
|
import Hledger.Data.Types
|
||||||
import Hledger.Data.Amount
|
import Hledger.Data.Amount
|
||||||
|
import Hledger.Data.Dates (nulldate)
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
@ -380,7 +381,8 @@ effectiveMarketPrices declaredprices inferredprices =
|
|||||||
& nubSortBy (compare `on` (\(MarketPrice{..})->(mpfrom,mpto)))
|
& nubSortBy (compare `on` (\(MarketPrice{..})->(mpfrom,mpto)))
|
||||||
|
|
||||||
marketPriceReverse :: MarketPrice -> MarketPrice
|
marketPriceReverse :: MarketPrice -> MarketPrice
|
||||||
marketPriceReverse mp@MarketPrice{..} = mp{mpfrom=mpto, mpto=mpfrom, mprate=1/mprate}
|
marketPriceReverse mp@MarketPrice{..} =
|
||||||
|
mp{mpfrom=mpto, mpto=mpfrom, mprate=if mprate==0 then 0 else 1/mprate} -- PARTIAL: /
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
-- fgl helpers
|
-- fgl helpers
|
||||||
@ -407,8 +409,21 @@ pathEdges p = [(f,t) | f:t:_ <- tails p]
|
|||||||
nodesEdgeLabel :: Ord b => Gr a b -> (Node, Node) -> Maybe b
|
nodesEdgeLabel :: Ord b => Gr a b -> (Node, Node) -> Maybe b
|
||||||
nodesEdgeLabel g (from,to) = headMay $ sort [l | (_,t,l) <- out g from, t==to]
|
nodesEdgeLabel g (from,to) = headMay $ sort [l | (_,t,l) <- out g from, t==to]
|
||||||
|
|
||||||
|
nullmarketprice :: MarketPrice
|
||||||
|
nullmarketprice = MarketPrice {
|
||||||
|
mpdate=nulldate
|
||||||
|
,mpfrom=""
|
||||||
|
,mpto=""
|
||||||
|
,mprate=0
|
||||||
|
}
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
tests_Valuation = tests "Valuation" [
|
tests_Valuation = tests "Valuation" [
|
||||||
tests_priceLookup
|
tests_priceLookup
|
||||||
|
,test "marketPriceReverse" $ do
|
||||||
|
marketPriceReverse nullmarketprice{mprate=2} @?= nullmarketprice{mprate=0.5}
|
||||||
|
marketPriceReverse nullmarketprice @?= nullmarketprice -- the reverse of a 0 price is a 0 price
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user