lib: isNegativeMixedAmount handles all-negative multi-comm. amounts
This commit is contained in:
parent
e6f9f09b41
commit
61264cfdc0
@ -609,11 +609,17 @@ averageMixedAmounts :: [MixedAmount] -> MixedAmount
|
|||||||
averageMixedAmounts [] = 0
|
averageMixedAmounts [] = 0
|
||||||
averageMixedAmounts as = fromIntegral (length as) `divideMixedAmount` sum as
|
averageMixedAmounts as = fromIntegral (length as) `divideMixedAmount` sum as
|
||||||
|
|
||||||
-- | Is this mixed amount negative, if it can be normalised to a single commodity ?
|
-- | Is this mixed amount negative, if we can tell that unambiguously?
|
||||||
|
-- Ie when normalised, are all individual commodity amounts negative ?
|
||||||
isNegativeMixedAmount :: MixedAmount -> Maybe Bool
|
isNegativeMixedAmount :: MixedAmount -> Maybe Bool
|
||||||
isNegativeMixedAmount m = case as of [a] -> Just $ isNegativeAmount a
|
isNegativeMixedAmount m =
|
||||||
_ -> Nothing
|
case amounts $ normaliseMixedAmountSquashPricesForDisplay m of
|
||||||
where as = amounts $ normaliseMixedAmountSquashPricesForDisplay m
|
[] -> Just False
|
||||||
|
[a] -> Just $ isNegativeAmount a
|
||||||
|
as | all isNegativeAmount as -> Just True
|
||||||
|
_ -> Nothing -- multiple amounts with different signs
|
||||||
|
|
||||||
|
-- XXX rename to mixedAmountLooksZero, mixedAmountIsZero, mixedAmountCostIsZero ?
|
||||||
|
|
||||||
-- | Does this mixed amount appear to be zero when displayed with its given precision ?
|
-- | Does this mixed amount appear to be zero when displayed with its given precision ?
|
||||||
isZeroMixedAmount :: MixedAmount -> Bool
|
isZeroMixedAmount :: MixedAmount -> Bool
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user