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