build checks.x86_64-linux.mutation-really-safe-money
1033.53 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1033.55 s
[really-safe-money-gen] in if ceiled == floored
1033.55 s
[really-safe-money-gen] then
1033.55 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1033.56 s
[really-safe-money-gen] + if ceiled < (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1033.56 s
[really-safe-money-gen] then Nothing
1033.56 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1033.56 s
[really-safe-money-gen] else Nothing
1033.56 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10
1033.56 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
1033.56 s
[really-safe-money-gen] Double ->
1033.56 s
[really-safe-money-gen] Maybe Amount
1033.56 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
1033.56 s
[really-safe-money-gen] - | d < 0 = Nothing
1033.56 s
[really-safe-money-gen] + | n o t ( d < 0 ) = Nothing
1033.56 s
[really-safe-money-gen] | otherwise =
1033.56 s
[really-safe-money-gen] let resultDouble :: Double
1033.56 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
1033.56 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
1033.56 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
1033.56 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1033.56 s
[really-safe-money-gen] in if ceiled == floored
1033.56 s
[really-safe-money-gen] then
1033.56 s
[really-safe-money-gen] - if c e il ed > ( f r o mI n t e g ra l :: Word64 -> Natural) (maxBound :: Word64)
1033.56 s
[really-safe-money-gen] + if T r u e
1033.56 s
[really-safe-money-gen] then Nothing
1033.56 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1033.56 s
[really-safe-money-gen] else Nothing
1033.56 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
1033.56 s
[really-safe-money-gen] @@ -320,7 +320,7 @@
1033.56 s
[really-safe-money-gen] | d < 0 = Nothing
1033.56 s
[really-safe-money-gen] | otherwise =
1033.56 s
[really-safe-money-gen] let resultDouble :: Double
1033.57 s
[really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
1033.57 s
[really-safe-money-gen] + resultDouble = d + (fromIntegral :: Word32 -> Double) qf
1033.57 s
[really-safe-money-gen] in go resultDouble
1033.57 s
[really-safe-money-gen] where
1033.57 s
[really-safe-money-gen] go resultDouble
1033.57 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91
1033.57 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
1033.57 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1033.57 s
[really-safe-money-gen] in if ceiled == floored
1033.57 s
[really-safe-money-gen] then
1033.57 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1033.57 s
[really-safe-money-gen] + if n o t ( ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64) )
1033.57 s
[really-safe-money-gen] then Nothing
1033.57 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1033.57 s
[really-safe-money-gen] else Nothing
1033.57 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
1033.57 s
[really-safe-money-gen] @@ -491,7 +491,7 @@
1033.57 s
[really-safe-money-gen] let maxBoundI :: Integer
1033.57 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1033.57 s
[really-safe-money-gen] r :: Integer
1033.57 s
[really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1033.57 s
[really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) - acc) 0 l
1033.57 s
[really-safe-money-gen] in if r > maxBoundI
1033.57 s
[really-safe-money-gen] then Nothing
1033.57 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1033.57 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
1033.57 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1033.57 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1033.57 s
[really-safe-money-gen] r :: Integer
1033.57 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1033.57 s
[really-safe-money-gen] - in if r > maxBoundI
1033.57 s
[really-safe-money-gen] + in if r < maxBoundI
1033.57 s
[really-safe-money-gen] then Nothing
1033.57 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1033.57 s
[really-safe-money-gen]
1033.57 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80
1033.57 s
[really-safe-money-gen] @@ -287,7 +287,7 @@
1033.58 s
[really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
1033.58 s
[really-safe-money-gen] -- 1 % 100
1033.58 s
[really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
1033.58 s
[really-safe-money-gen] - toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
1033.58 s
[really-safe-money-gen] + toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
1033.58 s
[really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
1033.58 s
[really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
1033.58 s
[really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
1033.58 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39
1033.58 s
[really-safe-money-gen] @@ -336,7 +336,7 @@
1033.58 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
1033.58 s
[really-safe-money-gen] floored :: Natural
1033.58 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1033.58 s
[really-safe-money-gen] - in if ceiled == floored
1033.58 s
[really-safe-money-gen] + in if n o t ( ceiled == floored )
1033.58 s
[really-safe-money-gen] then
1033.58 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1033.58 s
[really-safe-money-gen] then Nothing
1033.58 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
1033.58 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1033.58 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1033.58 s
[really-safe-money-gen] r :: Integer
1033.58 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1033.58 s
[really-safe-money-gen] - in if r > maxBoundI
1033.58 s
[really-safe-money-gen] + in if r < = maxBoundI
1033.58 s
[really-safe-money-gen] then Nothing
1033.58 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1033.58 s
[really-safe-money-gen]
1033.58 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
1033.58 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1033.58 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1033.58 s
[really-safe-money-gen] r :: Integer
1033.58 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1033.58 s
[really-safe-money-gen] - in if r > max Bo u n d I
1033.58 s
[really-safe-money-gen] + in if T r u e
1033.58 s
[really-safe-money-gen] then Nothing
1033.58 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1033.58 s
[really-safe-money-gen]
1033.58 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
1033.58 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
1033.58 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1033.58 s
[really-safe-money-gen] in if ceiled == floored
1033.58 s
[really-safe-money-gen] then
1033.58 s
[really-safe-money-gen] - if c e il ed > (fromIn tegral :: Word64 - > N a tura l ) (m ax Bound :: Word64)
1033.59 s
[really-safe-money-gen] + if F a l se
1033.59 s
[really-safe-money-gen] then Nothing
1033.59 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1033.59 s
[really-safe-money-gen] else Nothing
1033.59 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10
1033.59 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
1033.59 s
[really-safe-money-gen] Double ->
1033.59 s
[really-safe-money-gen] Maybe Amount
1033.59 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
1033.59 s
[really-safe-money-gen] - | d < 0 = Nothing
1033.59 s
[really-safe-money-gen] + | d < 1 = Nothing
1033.59 s
[really-safe-money-gen] | otherwise =
1033.59 s
[really-safe-money-gen] let resultDouble :: Double
1033.59 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
1033.59 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
1033.59 s
[really-safe-money-gen] @@ -665,10 +665,9 @@
1033.59 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
1033.59 s
[really-safe-money-gen] theoreticalResult = amountAsRatio * f
1033.59 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
1033.59 s
[really-safe-money-gen] rounder = case r of
1033.59 s
[really-safe-money-gen] - RoundUp -> ceiling
1033.59 s
[really-safe-money-gen] RoundDown -> floor
1033.59 s
[really-safe-money-gen] RoundNearest -> round
1033.59 s
[really-safe-money-gen] roundedResult :: Natural
1033.59 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1033.59 s
[really-safe-money-gen] actualRate :: Ratio Natural
1033.59 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
1033.59 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
1033.59 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
1033.59 s
[really-safe-money-gen] in if ceiled == floored
1033.59 s
[really-safe-money-gen] then
1033.59 s
[really-safe-money-gen] - if c e il ed > (fromIn tegral :: Word64 - > N a tura l ) (m ax Bound :: Word64)
1033.59 s
[really-safe-money-gen] + if F a l se
1033.59 s
[really-safe-money-gen] then Nothing
1033.59 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1033.59 s
[really-safe-money-gen] else Nothing
1038.87 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
1038.87 s
[really-safe-money-gen] @@ -665,10 +665,9 @@
1038.90 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
1038.90 s
[really-safe-money-gen] theoreticalResult = amountAsRatio * f
1038.90 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
1038.90 s
[really-safe-money-gen] rounder = case r of
1038.90 s
[really-safe-money-gen] RoundUp -> ceiling
1038.90 s
[really-safe-money-gen] RoundDown -> floor
1038.90 s
[really-safe-money-gen] - RoundNearest -> round
1038.90 s
[really-safe-money-gen] roundedResult :: Natural
1038.90 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1038.90 s
[really-safe-money-gen] actualRate :: Ratio Natural
1038.90 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
1038.90 s
[really-safe-money-gen] @@ -665,10 +665,9 @@
1038.90 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
1038.90 s
[really-safe-money-gen] theoreticalResult = amountAsRatio * f
1038.90 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
1038.90 s
[really-safe-money-gen] rounder = case r of
1038.90 s
[really-safe-money-gen] RoundUp -> ceiling
1038.90 s
[really-safe-money-gen] - RoundDown -> floor
1038.90 s
[really-safe-money-gen] RoundNearest -> round
1038.90 s
[really-safe-money-gen] roundedResult :: Natural
1038.90 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1038.90 s
[really-safe-money-gen] actualRate :: Ratio Natural
1038.90 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
1038.90 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
1038.90 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
1038.90 s
[really-safe-money-gen] in if ceiled == floored
1038.90 s
[really-safe-money-gen] then
1038.90 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1038.91 s
[really-safe-money-gen] + if ceiled > = (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1038.91 s
[really-safe-money-gen] then Nothing
1038.91 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1038.91 s
[really-safe-money-gen] else Nothing
1038.91 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31
1038.91 s
[really-safe-money-gen] @@ -658,7 +658,7 @@
1038.91 s
[really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
1038.91 s
[really-safe-money-gen] (Maybe Amount, Ratio Natural)
1038.91 s
[really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
1038.91 s
[really-safe-money-gen] - fraction _ _ 0 = (Just zero, 0 )
1038.91 s
[really-safe-money-gen] + fraction _ _ 0 = (Just zero, 1 )
1038.91 s
[really-safe-money-gen] fraction r (Amount a) f =
1038.91 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
1038.91 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
1038.91 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
1038.91 s
[really-safe-money-gen] @@ -663,7 +663,7 @@
1038.91 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
1038.91 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
1038.91 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
1038.91 s
[really-safe-money-gen] - theoreticalResult = amountAsRatio * f
1038.91 s
[really-safe-money-gen] + theoreticalResult = amountAsRatio + f
1038.91 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
1038.91 s
[really-safe-money-gen] rounder = case r of
1038.91 s
[really-safe-money-gen] RoundUp -> ceiling
1038.91 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
1038.91 s
[really-safe-money-gen] @@ -663,7 +663,7 @@
1038.91 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
1038.91 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
1038.91 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
1038.91 s
[really-safe-money-gen] - theoreticalResult = amountAsRatio * f
1038.91 s
[really-safe-money-gen] + theoreticalResult = amountAsRatio - f
1038.91 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
1038.91 s
[really-safe-money-gen] rounder = case r of
1038.91 s
[really-safe-money-gen] RoundUp -> ceiling
1038.91 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
1038.91 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
1038.91 s
[really-safe-money-gen] maxBoundN :: Natural
1038.91 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1038.91 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
1038.91 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
1038.91 s
[really-safe-money-gen] + in ( if roundedResult < maxBoundN
1038.91 s
[really-safe-money-gen] then Nothing
1038.92 s
[really-safe-money-gen] else Just result,
1038.92 s
[really-safe-money-gen] actualRate
1038.92 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
1038.92 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
1038.92 s
[really-safe-money-gen] maxBoundN :: Natural
1038.92 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1038.92 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
1038.92 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
1038.92 s
[really-safe-money-gen] + in ( if roundedResult < = maxBoundN
1038.92 s
[really-safe-money-gen] then Nothing
1038.92 s
[really-safe-money-gen] else Just result,
1038.92 s
[really-safe-money-gen] actualRate
1038.92 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
1038.92 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
1038.92 s
[really-safe-money-gen] maxBoundN :: Natural
1038.92 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1038.92 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
1038.92 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
1038.92 s
[really-safe-money-gen] + in ( if roundedResult > = maxBoundN
1038.92 s
[really-safe-money-gen] then Nothing
1038.92 s
[really-safe-money-gen] else Just result,
1038.92 s
[really-safe-money-gen] actualRate
1038.92 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
1038.92 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
1038.92 s
[really-safe-money-gen] maxBoundN :: Natural
1038.92 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1038.92 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
1038.92 s
[really-safe-money-gen] - in ( if r o u n ded R e s u lt > maxBoundN
1038.92 s
[really-safe-money-gen] + in ( if T r u e
1038.92 s
[really-safe-money-gen] then Nothing
1038.92 s
[really-safe-money-gen] else Just result,
1038.92 s
[really-safe-money-gen] actualRate
1038.92 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
1038.92 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
1038.92 s
[really-safe-money-gen] maxBoundN :: Natural
1038.92 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1038.92 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
1038.92 s
[really-safe-money-gen] - in ( if r ou nde dResult > m a xBo u ndN
1038.92 s
[really-safe-money-gen] + in ( if F a l se
1038.92 s
[really-safe-money-gen] then Nothing
1038.92 s
[really-safe-money-gen] else Just result,
1038.92 s
[really-safe-money-gen] actualRate
1038.92 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:661:19-28
1038.92 s
[really-safe-money-gen] @@ -658,7 +658,7 @@
1038.92 s
[really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
1038.92 s
[really-safe-money-gen] (Maybe Amount, Ratio Natural)
1038.92 s
[really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
1038.92 s
[really-safe-money-gen] - fraction _ _ 0 = ( J u st ze r o , 0)
1038.92 s
[really-safe-money-gen] + fraction _ _ 0 = ( N o th in g , 0)
1038.92 s
[really-safe-money-gen] fraction r (Amount a) f =
1038.92 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
1038.92 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
1038.92 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
1038.92 s
[really-safe-money-gen] @@ -759,7 +759,7 @@
1038.92 s
[really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
1038.92 s
[really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
1038.92 s
[really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
1038.92 s
[really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
1038.92 s
[really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar - qf1r / qf2r))
1038.92 s
[really-safe-money-gen]
1038.92 s
[really-safe-money-gen] -- | Format an amount of money without a symbol.
1038.92 s
[really-safe-money-gen] --
1038.92 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:683:16-27
1038.92 s
[really-safe-money-gen] @@ -680,7 +680,7 @@
1038.92 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
1038.92 s
[really-safe-money-gen] in ( if roundedResult > maxBoundN
1038.92 s
[really-safe-money-gen] then Nothing
1038.92 s
[really-safe-money-gen] - else J us t r es ul t ,
1038.92 s
[really-safe-money-gen] + else No t hi n g ,
1038.93 s
[really-safe-money-gen] actualRate
1038.93 s
[really-safe-money-gen] )
1038.93 s
[really-safe-money-gen]
1038.93 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37
1038.93 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
1038.93 s
[really-safe-money-gen] maxBoundN :: Natural
1038.93 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1038.93 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
1038.93 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
1038.93 s
[really-safe-money-gen] + in ( if n o t ( roundedResult > maxBoundN )
1038.93 s
[really-safe-money-gen] then Nothing
1038.93 s
[really-safe-money-gen] else Just result,
1038.93 s
[really-safe-money-gen] actualRate
1038.93 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
1038.93 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
1038.93 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1038.93 s
[really-safe-money-gen] in if ceiled == floored
1038.93 s
[really-safe-money-gen] then
1038.93 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1038.93 s
[really-safe-money-gen] + if ceiled > = (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1038.93 s
[really-safe-money-gen] then Nothing
1038.93 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1038.93 s
[really-safe-money-gen] else Nothing
1038.93 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
1038.93 s
[really-safe-money-gen] @@ -759,7 +759,7 @@
1044.02 s
[really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
1044.05 s
[really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
1044.05 s
[really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
1044.05 s
[really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
1044.05 s
[really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar + qf1r / qf2r))
1044.05 s
[really-safe-money-gen]
1044.05 s
[really-safe-money-gen] -- | Format an amount of money without a symbol.
1044.05 s
[really-safe-money-gen] --
1044.05 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
1044.05 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
1044.05 s
[really-safe-money-gen]
1044.05 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
1044.05 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
1044.05 s
[really-safe-money-gen] - validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
1044.05 s
[really-safe-money-gen] + validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount < zero
1044.05 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
1044.05 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
1044.05 s
[really-safe-money-gen]
1044.05 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
1044.05 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
1044.05 s
[really-safe-money-gen] - validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
1044.05 s
[really-safe-money-gen] + validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > = zero
1044.05 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:497:14-66
1044.05 s
[really-safe-money-gen] @@ -494,7 +494,7 @@
1044.05 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1044.05 s
[really-safe-money-gen] in if r > maxBoundI
1044.05 s
[really-safe-money-gen] then Nothing
1044.05 s
[really-safe-money-gen] - else J u s t ( Am o u n t ( (f rom I n t e g er :: Integer -> Word64) r))
1044.06 s
[really-safe-money-gen] + else N o t hi n g
1044.06 s
[really-safe-money-gen]
1044.06 s
[really-safe-money-gen] -- | Add two amounts of money.
1044.06 s
[really-safe-money-gen] --
1044.06 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:660:28-37
1044.06 s
[really-safe-money-gen] @@ -657,7 +657,7 @@
1044.06 s
[really-safe-money-gen] Ratio Natural ->
1044.06 s
[really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
1044.06 s
[really-safe-money-gen] (Maybe Amount, Ratio Natural)
1044.06 s
[really-safe-money-gen] - fraction _ (Amount 0) f = ( J u st ze r o , f)
1044.06 s
[really-safe-money-gen] + fraction _ (Amount 0) f = ( N o th in g , f)
1044.06 s
[really-safe-money-gen] fraction _ _ 0 = (Just zero, 0)
1044.06 s
[really-safe-money-gen] fraction r (Amount a) f =
1044.06 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
1044.06 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
1044.06 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1044.06 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1044.06 s
[really-safe-money-gen] r :: Integer
1044.06 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1044.06 s
[really-safe-money-gen] - in if r > m a xB ound I
1044.06 s
[really-safe-money-gen] + in if F a l se
1044.06 s
[really-safe-money-gen] then Nothing
1044.06 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1044.06 s
[really-safe-money-gen]
1044.06 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23
1044.06 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1044.06 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1044.06 s
[really-safe-money-gen] r :: Integer
1044.06 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1044.06 s
[really-safe-money-gen] - in if r > maxBoundI
1044.06 s
[really-safe-money-gen] + in if n o t ( r > maxBoundI )
1044.06 s
[really-safe-money-gen] then Nothing
1044.06 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1044.06 s
[really-safe-money-gen]
1044.06 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
1044.06 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1044.06 s
[really-safe-money-gen] case ad of
1044.06 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.06 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1044.06 s
[really-safe-money-gen] - a 1 > a2
1044.06 s
[really-safe-money-gen] + T rue
1044.07 s
[really-safe-money-gen] _ -> valid
1044.07 s
[really-safe-money-gen] ]
1044.07 s
[really-safe-money-gen]
1044.07 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
1044.07 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1044.07 s
[really-safe-money-gen] case ad of
1044.07 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.07 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1044.07 s
[really-safe-money-gen] - a 1 > a 2
1044.07 s
[really-safe-money-gen] + F a l s e
1044.07 s
[really-safe-money-gen] _ -> valid
1044.07 s
[really-safe-money-gen] ]
1044.07 s
[really-safe-money-gen]
1044.07 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22
1044.07 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1044.07 s
[really-safe-money-gen] case ad of
1044.07 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.07 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1044.07 s
[really-safe-money-gen] - a1 > a2
1044.07 s
[really-safe-money-gen] + n o t ( a1 > a2 )
1044.07 s
[really-safe-money-gen] _ -> valid
1044.07 s
[really-safe-money-gen] ]
1044.07 s
[really-safe-money-gen]
1044.07 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
1044.07 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1044.07 s
[really-safe-money-gen] case ad of
1044.07 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.07 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1044.07 s
[really-safe-money-gen] - a1 > a2
1044.07 s
[really-safe-money-gen] + a1 > = a2
1044.07 s
[really-safe-money-gen] _ -> valid
1044.07 s
[really-safe-money-gen] ]
1044.07 s
[really-safe-money-gen]
1044.07 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
1044.07 s
[really-safe-money-gen] @@ -601,11 +601,8 @@
1044.07 s
[really-safe-money-gen] validate ad =
1044.07 s
[really-safe-money-gen] mconcat
1044.07 s
[really-safe-money-gen] [ genericValidate ad,
1044.07 s
[really-safe-money-gen] case ad of
1044.07 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.07 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
1044.07 s
[really-safe-money-gen] - a1 > a2
1044.07 s
[really-safe-money-gen] _ -> valid
1044.07 s
[really-safe-money-gen] ]
1044.07 s
[really-safe-money-gen]
1044.07 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1044.07 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
1044.07 s
[really-safe-money-gen] @@ -601,11 +601,10 @@
1044.07 s
[really-safe-money-gen] validate ad =
1044.08 s
[really-safe-money-gen] mconcat
1044.08 s
[really-safe-money-gen] [ genericValidate ad,
1044.08 s
[really-safe-money-gen] case ad of
1044.08 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.08 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1044.08 s
[really-safe-money-gen] a1 > a2
1044.08 s
[really-safe-money-gen] - _ -> valid
1044.08 s
[really-safe-money-gen] ]
1044.08 s
[really-safe-money-gen]
1044.08 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1044.08 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
1044.08 s
[really-safe-money-gen] @@ -600,13 +600,7 @@
1044.08 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
1044.08 s
[really-safe-money-gen] validate ad =
1044.08 s
[really-safe-money-gen] mconcat
1044.08 s
[really-safe-money-gen] - [ genericValidate ad,
1044.08 s
[really-safe-money-gen] - case ad of
1044.08 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.08 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
1044.08 s
[really-safe-money-gen] - a1 > a2
1044.08 s
[really-safe-money-gen] - _ -> valid
1044.08 s
[really-safe-money-gen] ]
1044.08 s
[really-safe-money-gen]
1044.08 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1044.08 s
[really-safe-money-gen]
1044.08 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
1044.08 s
[really-safe-money-gen] @@ -600,13 +600,12 @@
1044.08 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
1044.08 s
[really-safe-money-gen] validate ad =
1044.08 s
[really-safe-money-gen] mconcat
1044.08 s
[really-safe-money-gen] - [ genericValidate ad,
1044.08 s
[really-safe-money-gen] case ad of
1044.08 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.08 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1044.08 s
[really-safe-money-gen] a1 > a2
1044.08 s
[really-safe-money-gen] _ -> valid
1044.08 s
[really-safe-money-gen] ]
1044.08 s
[really-safe-money-gen]
1044.08 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1044.08 s
[really-safe-money-gen]
1044.08 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
1044.08 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1044.08 s
[really-safe-money-gen] case ad of
1044.08 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1044.08 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1044.08 s
[really-safe-money-gen] - a1 > a2
1044.08 s
[really-safe-money-gen] + a1 < = a2
1044.08 s
[really-safe-money-gen] _ -> valid
1044.08 s
[really-safe-money-gen] ]
1044.08 s
[really-safe-money-gen]
1044.08 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92
1044.08 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
1044.08 s
[really-safe-money-gen]
1044.08 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
1044.08 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
1044.08 s
[really-safe-money-gen] - validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
1044.08 s
[really-safe-money-gen] + validateStrictlyPositive amount = declare "The Amount is strictly positive" $ n o t ( amount > zero )
1044.08 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
1044.08 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
1044.08 s
[really-safe-money-gen]
1044.09 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
1044.09 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
1044.09 s
[really-safe-money-gen] - validateStrictlyPositive amount = declare "The Amount is strictly positive" $ a m o u n t > z e r o
1048.71 s
[really-safe-money-gen] + validateStrictlyPositive amount = declare "The Amount is strictly positive" $ Tr u e
1048.71 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
1048.71 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
1048.71 s
[really-safe-money-gen]
1048.71 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
1048.71 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
1048.71 s
[really-safe-money-gen] - validateStrictlyPositive amount = declare "The Amount is strictly positive" $ a m ou nt > z e r o
1048.71 s
[really-safe-money-gen] + validateStrictlyPositive amount = declare "The Amount is strictly positive" $ F a ls e
1048.71 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:543:11-88
1048.71 s
[really-safe-money-gen] @@ -540,7 +540,7 @@
1048.71 s
[really-safe-money-gen] let maxBoundI :: Integer
1048.71 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
1048.71 s
[really-safe-money-gen] r :: Integer
1048.71 s
[really-safe-money-gen] - r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
1048.71 s
[really-safe-money-gen] + r = (fromIntegral :: Word32 -> Integer) f + (fromIntegral :: Word64 -> Integer) a
1048.71 s
[really-safe-money-gen] in if r > maxBoundI
1048.71 s
[really-safe-money-gen] then Nothing
1048.71 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1048.71 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
1048.71 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
1048.71 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
1048.71 s
[really-safe-money-gen] in if ceiled == floored
1048.71 s
[really-safe-money-gen] then
1048.71 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1048.71 s
[really-safe-money-gen] + if ceiled < = (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1048.71 s
[really-safe-money-gen] then Nothing
1048.71 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1048.71 s
[really-safe-money-gen] else Nothing
1048.71 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
1048.71 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1048.71 s
[really-safe-money-gen] maxBoundN :: Natural
1048.71 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1048.71 s
[really-safe-money-gen] actualResult =
1048.71 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1048.72 s
[really-safe-money-gen] + if roundedResult < maxBoundN
1048.72 s
[really-safe-money-gen] then Nothing
1048.72 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1048.72 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1048.72 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
1048.72 s
[really-safe-money-gen] @@ -320,7 +320,7 @@
1048.72 s
[really-safe-money-gen] | d < 0 = Nothing
1048.72 s
[really-safe-money-gen] | otherwise =
1048.72 s
[really-safe-money-gen] let resultDouble :: Double
1048.72 s
[really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
1048.72 s
[really-safe-money-gen] + resultDouble = d - (fromIntegral :: Word32 -> Double) qf
1048.72 s
[really-safe-money-gen] in go resultDouble
1048.72 s
[really-safe-money-gen] where
1048.72 s
[really-safe-money-gen] go resultDouble
1048.72 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:577:39-63
1048.72 s
[really-safe-money-gen] @@ -574,7 +574,7 @@
1048.72 s
[really-safe-money-gen] numberOfLargerChunks :: Word32
1048.72 s
[really-safe-money-gen] numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
1048.72 s
[really-safe-money-gen] numberOfSmallerChunks :: Word32
1048.72 s
[really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
1048.72 s
[really-safe-money-gen] + numberOfSmallerChunks = f + numberOfLargerChunks
1048.72 s
[really-safe-money-gen] largerChunk :: Amount
1048.72 s
[really-safe-money-gen] largerChunk = Amount $ succ smallerChunkSize
1048.72 s
[really-safe-money-gen] in DistributedIntoUnequalChunks
1048.72 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
1048.72 s
[really-safe-money-gen] @@ -156,10 +156,9 @@
1048.72 s
[really-safe-money-gen] fmap
1048.72 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1048.72 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
1048.72 s
[really-safe-money-gen] rounder = case r of
1048.72 s
[really-safe-money-gen] RoundUp -> ceiling
1048.72 s
[really-safe-money-gen] - RoundDown -> floor
1048.72 s
[really-safe-money-gen] RoundNearest -> round
1048.72 s
[really-safe-money-gen] roundedResult :: Natural
1048.72 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1048.73 s
[really-safe-money-gen] maxBoundN :: Natural
1048.73 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
1048.73 s
[really-safe-money-gen] @@ -156,10 +156,9 @@
1048.73 s
[really-safe-money-gen] fmap
1048.73 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1048.73 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
1048.73 s
[really-safe-money-gen] rounder = case r of
1048.73 s
[really-safe-money-gen] RoundUp -> ceiling
1048.73 s
[really-safe-money-gen] RoundDown -> floor
1048.73 s
[really-safe-money-gen] - RoundNearest -> round
1048.73 s
[really-safe-money-gen] roundedResult :: Natural
1048.73 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1048.73 s
[really-safe-money-gen] maxBoundN :: Natural
1048.73 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
1048.73 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
1048.73 s
[really-safe-money-gen]
1048.73 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
1048.73 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
1048.73 s
[really-safe-money-gen] - validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
1048.73 s
[really-safe-money-gen] + validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount < = zero
1048.73 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
1048.73 s
[really-safe-money-gen] @@ -156,10 +156,9 @@
1048.73 s
[really-safe-money-gen] fmap
1048.73 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1048.73 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
1048.73 s
[really-safe-money-gen] rounder = case r of
1048.73 s
[really-safe-money-gen] - RoundUp -> ceiling
1048.73 s
[really-safe-money-gen] RoundDown -> floor
1048.73 s
[really-safe-money-gen] RoundNearest -> round
1048.73 s
[really-safe-money-gen] roundedResult :: Natural
1048.73 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1048.73 s
[really-safe-money-gen] maxBoundN :: Natural
1048.73 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
1048.73 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1048.73 s
[really-safe-money-gen] maxBoundN :: Natural
1048.73 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1048.73 s
[really-safe-money-gen] actualResult =
1048.73 s
[really-safe-money-gen] - if r o u n ded R e s u lt > maxBoundN
1048.73 s
[really-safe-money-gen] + if T r u e
1048.73 s
[really-safe-money-gen] then Nothing
1048.73 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1048.73 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1048.73 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
1048.73 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1048.73 s
[really-safe-money-gen] case ad of
1048.73 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1048.73 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1048.74 s
[really-safe-money-gen] - a1 > a2
1048.74 s
[really-safe-money-gen] + a1 < a2
1048.74 s
[really-safe-money-gen] _ -> valid
1048.74 s
[really-safe-money-gen] ]
1048.74 s
[really-safe-money-gen]
1048.74 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
1048.74 s
[really-safe-money-gen] @@ -167,7 +167,7 @@
1048.74 s
[really-safe-money-gen] actualResult =
1048.74 s
[really-safe-money-gen] if roundedResult > maxBoundN
1048.74 s
[really-safe-money-gen] then Nothing
1048.74 s
[really-safe-money-gen] - else J u st (fr o mI n t e gral ro u n d e dResult)
1048.74 s
[really-safe-money-gen] + else N o t hi n g
1048.74 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1048.74 s
[really-safe-money-gen] LT -> RoundedDown
1048.74 s
[really-safe-money-gen] EQ -> DidNotRound
1048.74 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
1048.74 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1048.74 s
[really-safe-money-gen] maxBoundN :: Natural
1048.74 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1048.74 s
[really-safe-money-gen] actualResult =
1048.74 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1048.74 s
[really-safe-money-gen] + if roundedResult > = maxBoundN
1048.74 s
[really-safe-money-gen] then Nothing
1048.74 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1048.74 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1048.74 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
1048.74 s
[really-safe-money-gen] @@ -168,10 +168,9 @@
1048.74 s
[really-safe-money-gen] if roundedResult > maxBoundN
1048.74 s
[really-safe-money-gen] then Nothing
1048.74 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1048.74 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1048.74 s
[really-safe-money-gen] LT -> RoundedDown
1048.74 s
[really-safe-money-gen] - EQ -> DidNotRound
1048.74 s
[really-safe-money-gen] GT -> RoundedUp
1048.74 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
1048.74 s
[really-safe-money-gen] )
1048.74 s
[really-safe-money-gen] . Prelude.sum
1048.74 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
1048.75 s
[really-safe-money-gen] @@ -168,10 +168,9 @@
1048.75 s
[really-safe-money-gen] if roundedResult > maxBoundN
1048.75 s
[really-safe-money-gen] then Nothing
1048.75 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1048.75 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1053.20 s
[really-safe-money-gen] LT -> RoundedDown
1053.20 s
[really-safe-money-gen] EQ -> DidNotRound
1053.20 s
[really-safe-money-gen] - GT -> RoundedUp
1053.27 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
1053.27 s
[really-safe-money-gen] )
1053.27 s
[really-safe-money-gen] . Prelude.sum
1053.27 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
1053.27 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1053.27 s
[really-safe-money-gen] maxBoundN :: Natural
1053.28 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1053.28 s
[really-safe-money-gen] actualResult =
1053.28 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1053.28 s
[really-safe-money-gen] + if roundedResult < = maxBoundN
1053.28 s
[really-safe-money-gen] then Nothing
1053.28 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1053.28 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1053.28 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
1053.28 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1053.28 s
[really-safe-money-gen] maxBoundN :: Natural
1053.28 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1053.28 s
[really-safe-money-gen] actualResult =
1053.28 s
[really-safe-money-gen] - if r ou nde dResult > m a xBo u ndN
1053.28 s
[really-safe-money-gen] + if F a l se
1053.28 s
[really-safe-money-gen] then Nothing
1053.28 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1053.28 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1053.28 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
1053.28 s
[really-safe-money-gen] @@ -168,10 +168,9 @@
1053.28 s
[really-safe-money-gen] if roundedResult > maxBoundN
1053.28 s
[really-safe-money-gen] then Nothing
1053.28 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1053.28 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1053.28 s
[really-safe-money-gen] - LT -> RoundedDown
1053.28 s
[really-safe-money-gen] EQ -> DidNotRound
1053.28 s
[really-safe-money-gen] GT -> RoundedUp
1053.28 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
1053.28 s
[really-safe-money-gen] )
1053.28 s
[really-safe-money-gen] . Prelude.sum
1053.28 s
[really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
1053.28 s
[really-safe-money-gen] @@ -179,7 +179,7 @@
1053.28 s
[really-safe-money-gen] . traverse
1053.28 s
[really-safe-money-gen] ( \(currency, a) ->
1053.28 s
[really-safe-money-gen] ( \(cr, qf2) ->
1053.28 s
[really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
1053.29 s
[really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) + ConversionRate.conversionFactor qf2 cr qf1
1053.29 s
[really-safe-money-gen] )
1053.29 s
[really-safe-money-gen] <$> func currency
1053.29 s
[really-safe-money-gen] )
1053.29 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
1053.29 s
[really-safe-money-gen] @@ -109,7 +109,7 @@
1053.29 s
[really-safe-money-gen]
1053.29 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1053.29 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1053.29 s
[really-safe-money-gen] - subtractAmount m _ (Amount 0) = J u s t m
1053.29 s
[really-safe-money-gen] + subtractAmount m _ (Amount 0) = No t h ing
1053.29 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1053.29 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1053.29 s
[really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
1053.29 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
1053.29 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
1053.29 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1053.29 s
[really-safe-money-gen] in if ceiled == floored
1053.29 s
[really-safe-money-gen] then
1053.29 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1053.29 s
[really-safe-money-gen] + if ceiled < = (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1053.29 s
[really-safe-money-gen] then Nothing
1053.29 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1053.29 s
[really-safe-money-gen] else Nothing
1053.29 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97
1053.29 s
[really-safe-money-gen] @@ -491,7 +491,7 @@
1053.29 s
[really-safe-money-gen] let maxBoundI :: Integer
1053.29 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1053.29 s
[really-safe-money-gen] r :: Integer
1053.29 s
[really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1053.29 s
[really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
1053.29 s
[really-safe-money-gen] in if r > maxBoundI
1053.29 s
[really-safe-money-gen] then Nothing
1053.29 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1053.29 s
[really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
1053.29 s
[really-safe-money-gen] @@ -491,7 +491,7 @@
1053.29 s
[really-safe-money-gen] let maxBoundI :: Integer
1053.29 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1053.29 s
[really-safe-money-gen] r :: Integer
1053.29 s
[really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1053.29 s
[really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) * acc) 0 l
1053.29 s
[really-safe-money-gen] in if r > maxBoundI
1053.29 s
[really-safe-money-gen] then Nothing
1053.29 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1053.29 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
1053.30 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1053.30 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1053.30 s
[really-safe-money-gen] r :: Integer
1053.30 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1053.30 s
[really-safe-money-gen] - in if r > maxBoundI
1053.30 s
[really-safe-money-gen] + in if r > = maxBoundI
1053.30 s
[really-safe-money-gen] then Nothing
1053.30 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1053.30 s
[really-safe-money-gen]
1053.30 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16
1053.30 s
[really-safe-money-gen] @@ -247,7 +247,7 @@
1053.30 s
[really-safe-money-gen] -- >>> zero
1053.30 s
[really-safe-money-gen] -- Amount 0
1053.30 s
[really-safe-money-gen] zero :: Amount
1053.30 s
[really-safe-money-gen] - zero = Amount 0
1053.30 s
[really-safe-money-gen] + zero = Amount 1
1053.30 s
[really-safe-money-gen]
1053.30 s
[really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
1053.30 s
[really-safe-money-gen] --
1053.30 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
1053.30 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1053.30 s
[really-safe-money-gen] maxBoundN :: Natural
1053.30 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1053.30 s
[really-safe-money-gen] actualResult =
1053.30 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1053.30 s
[really-safe-money-gen] + if n o t ( roundedResult > maxBoundN )
1053.30 s
[really-safe-money-gen] then Nothing
1053.30 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1053.30 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1053.30 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
1053.30 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1053.30 s
[really-safe-money-gen] Just a -> do
1053.30 s
[really-safe-money-gen] r <- Amount.subtract a amount
1053.30 s
[really-safe-money-gen] Just $
1053.30 s
[really-safe-money-gen] - if r == A mount .z e ro
1053.30 s
[really-safe-money-gen] + if Fal s e
1053.30 s
[really-safe-money-gen] then M.delete currency m
1053.30 s
[really-safe-money-gen] else M.insert currency r m
1053.30 s
[really-safe-money-gen]
1053.30 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
1053.30 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1053.30 s
[really-safe-money-gen] Just a -> do
1053.30 s
[really-safe-money-gen] r <- Amount.subtract a amount
1053.30 s
[really-safe-money-gen] Just $
1053.30 s
[really-safe-money-gen] - if r == Amount.zero
1053.30 s
[really-safe-money-gen] + if n o t ( r == Amount.zero )
1053.30 s
[really-safe-money-gen] then M.delete currency m
1053.30 s
[really-safe-money-gen] else M.insert currency r m
1053.30 s
[really-safe-money-gen]
1053.30 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
1053.30 s
[really-safe-money-gen] @@ -96,7 +96,7 @@
1053.30 s
[really-safe-money-gen]
1053.30 s
[really-safe-money-gen] -- | Add an 'Amount' to a 'MultiAmount'
1053.30 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1053.30 s
[really-safe-money-gen] - addAmount m _ (Amount 0) = J u s t m
1053.30 s
[really-safe-money-gen] + addAmount m _ (Amount 0) = No t h ing
1053.30 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
1053.30 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1053.31 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
1053.31 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
1053.31 s
[really-safe-money-gen] @@ -111,14 +111,13 @@
1053.31 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1053.31 s
[really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
1053.31 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1053.31 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1053.31 s
[really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
1053.31 s
[really-safe-money-gen] Just a -> do
1053.31 s
[really-safe-money-gen] r <- Amount.subtract a amount
1053.31 s
[really-safe-money-gen] Just $
1053.31 s
[really-safe-money-gen] if r == Amount.zero
1053.31 s
[really-safe-money-gen] then M.delete currency m
1053.31 s
[really-safe-money-gen] else M.insert currency r m
1053.31 s
[really-safe-money-gen]
1053.31 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
1053.31 s
[really-safe-money-gen] --
1053.31 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
1056.40 s
[really-safe-money-gen] @@ -111,14 +111,8 @@
1056.40 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1056.40 s
[really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
1056.40 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1056.40 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1056.40 s
[really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
1056.40 s
[really-safe-money-gen] - Just a -> do
1056.40 s
[really-safe-money-gen] - r <- Amount.subtract a amount
1056.40 s
[really-safe-money-gen] - Just $
1056.40 s
[really-safe-money-gen] - if r == Amount.zero
1056.40 s
[really-safe-money-gen] - then M.delete currency m
1056.40 s
[really-safe-money-gen] - else M.insert currency r m
1056.40 s
[really-safe-money-gen]
1056.40 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
1056.40 s
[really-safe-money-gen] --
1056.40 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
1056.40 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1056.40 s
[really-safe-money-gen] Just a -> do
1056.40 s
[really-safe-money-gen] r <- Amount.add a amount
1056.40 s
[really-safe-money-gen] Just $
1056.40 s
[really-safe-money-gen] - if r == Am o u n t. z e r o
1056.40 s
[really-safe-money-gen] + if T r u e
1056.40 s
[really-safe-money-gen] then M.delete currency m
1056.40 s
[really-safe-money-gen] else M.insert currency r m
1056.40 s
[really-safe-money-gen]
1056.40 s
[really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
1056.41 s
[really-safe-money-gen] @@ -179,7 +179,7 @@
1056.41 s
[really-safe-money-gen] . traverse
1056.41 s
[really-safe-money-gen] ( \(currency, a) ->
1056.41 s
[really-safe-money-gen] ( \(cr, qf2) ->
1056.41 s
[really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
1056.41 s
[really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) - ConversionRate.conversionFactor qf2 cr qf1
1056.41 s
[really-safe-money-gen] )
1056.41 s
[really-safe-money-gen] <$> func currency
1056.41 s
[really-safe-money-gen] )
1056.41 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
1056.41 s
[really-safe-money-gen] @@ -98,14 +98,13 @@
1056.41 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1056.41 s
[really-safe-money-gen] addAmount m _ (Amount 0) = Just m
1056.41 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
1056.41 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1056.41 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
1056.41 s
[really-safe-money-gen] Just a -> do
1056.41 s
[really-safe-money-gen] r <- Amount.add a amount
1056.41 s
[really-safe-money-gen] Just $
1056.41 s
[really-safe-money-gen] if r == Amount.zero
1056.41 s
[really-safe-money-gen] then M.delete currency m
1056.41 s
[really-safe-money-gen] else M.insert currency r m
1056.41 s
[really-safe-money-gen]
1056.41 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1056.41 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1056.41 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
1056.41 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1056.41 s
[really-safe-money-gen] [ genericValidate ma,
1056.41 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1056.41 s
[really-safe-money-gen] declare "The amount is not zero" $
1056.41 s
[really-safe-money-gen] - a /= Amount.zero
1056.41 s
[really-safe-money-gen] + n o t ( a /= Amount.zero )
1056.41 s
[really-safe-money-gen] ]
1056.41 s
[really-safe-money-gen]
1056.41 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1056.41 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
1056.41 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1056.41 s
[really-safe-money-gen] [ genericValidate ma,
1056.41 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1056.41 s
[really-safe-money-gen] declare "The amount is not zero" $
1056.41 s
[really-safe-money-gen] - a / = Am ount .z e ro
1056.41 s
[really-safe-money-gen] + F a l s e
1056.41 s
[really-safe-money-gen] ]
1056.41 s
[really-safe-money-gen]
1056.41 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1056.41 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1056.41 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1056.41 s
[really-safe-money-gen]
1056.41 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1056.41 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1056.41 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1056.41 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1056.41 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1056.41 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1056.41 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1056.41 s
[really-safe-money-gen]
1056.41 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1056.41 s
[really-safe-money-gen]
1056.41 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
1056.41 s
[really-safe-money-gen] @@ -123,7 +123,7 @@
1056.41 s
[really-safe-money-gen]
1056.41 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1056.41 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1056.41 s
[really-safe-money-gen] - subtractAccount m _ (Positive (Amount 0)) = J u s t m
1056.41 s
[really-safe-money-gen] + subtractAccount m _ (Positive (Amount 0)) = No t h ing
1056.41 s
[really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
1056.41 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1056.41 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1056.42 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
1056.42 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1056.42 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1056.42 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1056.42 s
[really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
1056.42 s
[really-safe-money-gen] - subtractAccount m _ (Negative (Amount 0)) = J u s t m
1056.42 s
[really-safe-money-gen] + subtractAccount m _ (Negative (Amount 0)) = No t h ing
1056.42 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1056.42 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1056.42 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
1056.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
1056.42 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
1056.42 s
[really-safe-money-gen] Just a -> do
1056.42 s
[really-safe-money-gen] r <- Account.subtract a account
1056.42 s
[really-safe-money-gen] Just $
1056.42 s
[really-safe-money-gen] - if r == Acc o u n t. z e r o
1056.42 s
[really-safe-money-gen] + if T r u e
1056.42 s
[really-safe-money-gen] then M.delete currency m
1056.42 s
[really-safe-money-gen] else M.insert currency r m
1056.42 s
[really-safe-money-gen]
1056.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
1056.42 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
1056.42 s
[really-safe-money-gen] Just a -> do
1056.42 s
[really-safe-money-gen] r <- Account.subtract a account
1056.42 s
[really-safe-money-gen] Just $
1056.42 s
[really-safe-money-gen] - if r == Accou n t .z e ro
1056.42 s
[really-safe-money-gen] + if F als e
1056.42 s
[really-safe-money-gen] then M.delete currency m
1056.42 s
[really-safe-money-gen] else M.insert currency r m
1056.42 s
[really-safe-money-gen]
1056.42 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29
1056.42 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
1056.42 s
[really-safe-money-gen] Just a -> do
1056.42 s
[really-safe-money-gen] r <- Account.subtract a account
1056.42 s
[really-safe-money-gen] Just $
1056.42 s
[really-safe-money-gen] - if r == Account.zero
1056.42 s
[really-safe-money-gen] + if n o t ( r == Account.zero )
1056.42 s
[really-safe-money-gen] then M.delete currency m
1056.42 s
[really-safe-money-gen] else M.insert currency r m
1056.42 s
[really-safe-money-gen]
1056.42 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
1056.42 s
[really-safe-money-gen] @@ -126,14 +126,13 @@
1056.42 s
[really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
1056.42 s
[really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
1056.42 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1056.42 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1056.42 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency (Account.negate account) m
1056.42 s
[really-safe-money-gen] Just a -> do
1056.42 s
[really-safe-money-gen] r <- Account.subtract a account
1056.42 s
[really-safe-money-gen] Just $
1056.42 s
[really-safe-money-gen] if r == Account.zero
1056.42 s
[really-safe-money-gen] then M.delete currency m
1056.42 s
[really-safe-money-gen] else M.insert currency r m
1056.42 s
[really-safe-money-gen]
1056.42 s
[really-safe-money-gen] -- | Try to convert every account to one currency.
1056.42 s
[really-safe-money-gen] --
1056.42 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
1056.42 s
[really-safe-money-gen] @@ -126,14 +126,8 @@
1056.42 s
[really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
1056.42 s
[really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
1056.42 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1056.42 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1056.42 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
1056.42 s
[really-safe-money-gen] - Just a -> do
1056.43 s
[really-safe-money-gen] - r <- Account.subtract a account
1056.43 s
[really-safe-money-gen] - Just $
1056.43 s
[really-safe-money-gen] - if r == Account.zero
1056.43 s
[really-safe-money-gen] - then M.delete currency m
1056.43 s
[really-safe-money-gen] - else M.insert currency r m
1056.43 s
[really-safe-money-gen]
1056.43 s
[really-safe-money-gen] -- | Try to convert every account to one currency.
1056.43 s
[really-safe-money-gen] --
1056.43 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
1056.43 s
[really-safe-money-gen] @@ -110,7 +110,7 @@
1056.43 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1056.43 s
[really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1056.43 s
[really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
1056.43 s
[really-safe-money-gen] - addAccount m _ (Negative (Amount 0)) = J u s t m
1056.43 s
[really-safe-money-gen] + addAccount m _ (Negative (Amount 0)) = No t h ing
1061.08 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
1061.15 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1061.15 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency account m
1061.15 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
1061.15 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
1061.15 s
[really-safe-money-gen] Just a -> do
1061.15 s
[really-safe-money-gen] r <- Account.add a account
1061.15 s
[really-safe-money-gen] Just $
1061.15 s
[really-safe-money-gen] - if r == Acc o u n t. z e r o
1061.15 s
[really-safe-money-gen] + if T r u e
1061.15 s
[really-safe-money-gen] then M.delete currency m
1061.15 s
[really-safe-money-gen] else M.insert currency r m
1061.16 s
[really-safe-money-gen]
1061.16 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
1061.16 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
1061.16 s
[really-safe-money-gen] Just a -> do
1061.16 s
[really-safe-money-gen] r <- Account.add a account
1061.16 s
[really-safe-money-gen] Just $
1061.16 s
[really-safe-money-gen] - if r == Accou n t .z e ro
1061.16 s
[really-safe-money-gen] + if F als e
1061.16 s
[really-safe-money-gen] then M.delete currency m
1061.16 s
[really-safe-money-gen] else M.insert currency r m
1061.16 s
[really-safe-money-gen]
1061.16 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
1061.16 s
[really-safe-money-gen] @@ -177,10 +177,9 @@
1061.16 s
[really-safe-money-gen] RoundNearest -> round
1061.16 s
[really-safe-money-gen] roundedResult :: Integer
1061.16 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1061.16 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1061.16 s
[really-safe-money-gen] LT -> RoundedDown
1061.16 s
[really-safe-money-gen] EQ -> DidNotRound
1061.16 s
[really-safe-money-gen] - GT -> RoundedUp
1061.16 s
[really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
1061.16 s
[really-safe-money-gen] )
1061.16 s
[really-safe-money-gen] . Prelude.sum
1061.16 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
1061.16 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
1061.16 s
[really-safe-money-gen]
1061.16 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
1061.16 s
[really-safe-money-gen] fromAmount currency amount =
1061.16 s
[really-safe-money-gen] - if a m o u n t == Amoun t.z e ro
1061.16 s
[really-safe-money-gen] + if Tr u e
1061.16 s
[really-safe-money-gen] then zero
1061.16 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
1061.16 s
[really-safe-money-gen]
1061.16 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29
1061.16 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
1061.16 s
[really-safe-money-gen] Just a -> do
1061.16 s
[really-safe-money-gen] r <- Account.add a account
1061.16 s
[really-safe-money-gen] Just $
1061.16 s
[really-safe-money-gen] - if r == Account.zero
1061.16 s
[really-safe-money-gen] + if n o t ( r == Account.zero )
1061.16 s
[really-safe-money-gen] then M.delete currency m
1061.16 s
[really-safe-money-gen] else M.insert currency r m
1061.16 s
[really-safe-money-gen]
1061.16 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
1061.17 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1061.17 s
[really-safe-money-gen] [ genericValidate ma,
1061.17 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1061.17 s
[really-safe-money-gen] declare "The amount is not zero" $
1061.17 s
[really-safe-money-gen] - a / = A mo u nt .z e ro
1061.17 s
[really-safe-money-gen] + Tr u e
1061.17 s
[really-safe-money-gen] ]
1061.17 s
[really-safe-money-gen]
1061.17 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1061.17 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
1061.17 s
[really-safe-money-gen] @@ -112,14 +112,8 @@
1061.17 s
[really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
1061.17 s
[really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
1061.17 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
1061.17 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1061.17 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency account m
1061.17 s
[really-safe-money-gen] - Just a -> do
1061.17 s
[really-safe-money-gen] - r <- Account.add a account
1061.17 s
[really-safe-money-gen] - Just $
1061.17 s
[really-safe-money-gen] - if r == Account.zero
1061.17 s
[really-safe-money-gen] - then M.delete currency m
1061.17 s
[really-safe-money-gen] - else M.insert currency r m
1061.17 s
[really-safe-money-gen]
1061.17 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1061.17 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1061.17 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
1061.17 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
1061.17 s
[really-safe-money-gen]
1061.17 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
1061.17 s
[really-safe-money-gen] fromAccount currency amount =
1061.17 s
[really-safe-money-gen] - if a m o unt == A cco u n t.z e ro
1061.17 s
[really-safe-money-gen] + if Tr u e
1061.17 s
[really-safe-money-gen] then zero
1061.17 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
1061.17 s
[really-safe-money-gen]
1061.17 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
1061.17 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
1061.17 s
[really-safe-money-gen]
1061.17 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
1061.17 s
[really-safe-money-gen] fromAccount currency amount =
1061.17 s
[really-safe-money-gen] - if a m o unt == Accoun t.z e ro
1061.17 s
[really-safe-money-gen] + if F a ls e
1061.17 s
[really-safe-money-gen] then zero
1061.17 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
1061.17 s
[really-safe-money-gen]
1061.17 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
1061.17 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1061.17 s
[really-safe-money-gen] Just a -> do
1061.17 s
[really-safe-money-gen] r <- Amount.add a amount
1061.17 s
[really-safe-money-gen] Just $
1061.17 s
[really-safe-money-gen] - if r == A mount .z e ro
1061.17 s
[really-safe-money-gen] + if Fal s e
1061.17 s
[really-safe-money-gen] then M.delete currency m
1061.17 s
[really-safe-money-gen] else M.insert currency r m
1061.18 s
[really-safe-money-gen]
1061.18 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28
1061.18 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
1061.18 s
[really-safe-money-gen]
1061.18 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
1061.18 s
[really-safe-money-gen] fromAccount currency amount =
1061.18 s
[really-safe-money-gen] - if amount == Account.zero
1061.18 s
[really-safe-money-gen] + if n o t ( amount == Account.zero )
1061.18 s
[really-safe-money-gen] then zero
1061.18 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
1061.18 s
[really-safe-money-gen]
1061.18 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
1061.18 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
1061.18 s
[really-safe-money-gen] [ genericValidate ma,
1061.18 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1061.18 s
[really-safe-money-gen] declare "The account is not zero" $
1061.18 s
[really-safe-money-gen] - a / = Ac co u nt .z e ro
1061.18 s
[really-safe-money-gen] + T r u e
1061.18 s
[really-safe-money-gen] ]
1061.18 s
[really-safe-money-gen]
1061.18 s
[really-safe-money-gen] -- TODO no empty currencies
1061.18 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30
1061.18 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
1061.18 s
[really-safe-money-gen] [ genericValidate ma,
1061.18 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1061.18 s
[really-safe-money-gen] declare "The account is not zero" $
1061.18 s
[really-safe-money-gen] - a /= Account.zero
1061.18 s
[really-safe-money-gen] + n o t ( a /= Account.zero )
1061.18 s
[really-safe-money-gen] ]
1061.18 s
[really-safe-money-gen]
1061.18 s
[really-safe-money-gen] -- TODO no empty currencies
1061.18 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
1061.18 s
[really-safe-money-gen] @@ -63,11 +63,7 @@
1061.18 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
1061.18 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
1061.18 s
[really-safe-money-gen] mconcat
1061.18 s
[really-safe-money-gen] - [ genericValidate ma,
1061.18 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
1061.18 s
[really-safe-money-gen] - declare "The account is not zero" $
1061.18 s
[really-safe-money-gen] - a /= Account.zero
1061.18 s
[really-safe-money-gen] ]
1061.18 s
[really-safe-money-gen]
1061.18 s
[really-safe-money-gen] -- TODO no empty currencies
1061.18 s
[really-safe-money-gen]
1061.18 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
1061.18 s
[really-safe-money-gen] @@ -38,6 +38,5 @@
1061.18 s
[really-safe-money-gen] codec
1061.18 s
[really-safe-money-gen] <?> "QuantisationFactor"
1061.18 s
[really-safe-money-gen] where
1061.18 s
[really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
1061.18 s
[really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
1061.18 s
[really-safe-money-gen] Just qf -> Right qf
1061.18 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
1061.18 s
[really-safe-money-gen] @@ -38,6 +38,5 @@
1061.18 s
[really-safe-money-gen] codec
1061.18 s
[really-safe-money-gen] <?> "QuantisationFactor"
1061.18 s
[really-safe-money-gen] where
1061.18 s
[really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
1061.18 s
[really-safe-money-gen] Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
1061.18 s
[really-safe-money-gen] - Just qf -> Right qf
1061.18 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
1061.18 s
[really-safe-money-gen] @@ -44,7 +44,6 @@
1061.18 s
[really-safe-money-gen] where
1061.18 s
[really-safe-money-gen] f :: String -> Either String Amount
1061.18 s
[really-safe-money-gen] f s = case readMaybe s of
1061.18 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1061.18 s
[really-safe-money-gen] Just i ->
1061.18 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1061.18 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1061.18 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
1061.18 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1061.18 s
[really-safe-money-gen] f s = case readMaybe s of
1061.18 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1061.18 s
[really-safe-money-gen] Just i ->
1061.18 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1061.18 s
[really-safe-money-gen] + if (i :: Integer) < = toInteger (minBound :: Word64)
1061.18 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1061.18 s
[really-safe-money-gen] else
1063.78 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1063.78 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
1063.78 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1063.78 s
[really-safe-money-gen] f s = case readMaybe s of
1063.78 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1063.78 s
[really-safe-money-gen] Just i ->
1063.78 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1063.78 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (minBound :: Word64)
1063.78 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1063.78 s
[really-safe-money-gen] else
1063.78 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1063.78 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
1063.78 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1063.78 s
[really-safe-money-gen] f s = case readMaybe s of
1063.78 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1063.78 s
[really-safe-money-gen] Just i ->
1063.78 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1063.78 s
[really-safe-money-gen] + if (i :: Integer) > = toInteger (minBound :: Word64)
1063.78 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1063.78 s
[really-safe-money-gen] else
1063.78 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1063.78 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
1063.78 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
1063.78 s
[really-safe-money-gen] [ genericValidate ma,
1063.78 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1063.79 s
[really-safe-money-gen] declare "The account is not zero" $
1063.79 s
[really-safe-money-gen] - a / = Acco u nt .z e ro
1063.79 s
[really-safe-money-gen] + F a ls e
1063.79 s
[really-safe-money-gen] ]
1063.79 s
[really-safe-money-gen]
1063.79 s
[really-safe-money-gen] -- TODO no empty currencies
1063.79 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
1063.79 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
1063.79 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1063.79 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1063.79 s
[really-safe-money-gen] mconcat
1063.79 s
[really-safe-money-gen] - [ genericValidate ma,
1063.79 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
1063.79 s
[really-safe-money-gen] - declare "The amount is not zero" $
1063.79 s
[really-safe-money-gen] - a /= Amount.zero
1063.79 s
[really-safe-money-gen] ]
1063.79 s
[really-safe-money-gen]
1063.79 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1063.79 s
[really-safe-money-gen]
1063.79 s
[really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
1063.79 s
[really-safe-money-gen] @@ -189,8 +189,8 @@
1063.79 s
[really-safe-money-gen] ( \(currency, a) ->
1063.79 s
[really-safe-money-gen] ( \(cr, qf2) ->
1063.79 s
[really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
1063.79 s
[really-safe-money-gen] in Account.toMinimalQuantisations a
1063.79 s
[really-safe-money-gen] - * toInteger (numerator factor)
1063.79 s
[really-safe-money-gen] + - toInteger (numerator factor)
1063.79 s
[really-safe-money-gen] % toInteger (denominator factor)
1063.79 s
[really-safe-money-gen] )
1063.79 s
[really-safe-money-gen] <$> func currency
1063.79 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
1063.79 s
[really-safe-money-gen] @@ -98,14 +98,8 @@
1063.79 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1063.79 s
[really-safe-money-gen] addAmount m _ (Amount 0) = Just m
1063.79 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
1063.79 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1063.79 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
1063.79 s
[really-safe-money-gen] - Just a -> do
1063.80 s
[really-safe-money-gen] - r <- Amount.add a amount
1063.80 s
[really-safe-money-gen] - Just $
1063.80 s
[really-safe-money-gen] - if r == Amount.zero
1063.80 s
[really-safe-money-gen] - then M.delete currency m
1063.80 s
[really-safe-money-gen] - else M.insert currency r m
1063.80 s
[really-safe-money-gen]
1063.80 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1063.80 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1063.80 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
1063.80 s
[really-safe-money-gen] @@ -47,7 +47,6 @@
1063.80 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1063.80 s
[really-safe-money-gen] Just i ->
1063.80 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1063.80 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
1063.80 s
[really-safe-money-gen] else
1063.80 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1063.80 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1063.80 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
1063.80 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
1063.80 s
[really-safe-money-gen]
1063.80 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
1063.80 s
[really-safe-money-gen] fromAmount currency amount =
1063.80 s
[really-safe-money-gen] - if amount == Amount.zero
1063.80 s
[really-safe-money-gen] + if n o t ( amount == Amount.zero )
1063.80 s
[really-safe-money-gen] then zero
1063.80 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
1063.80 s
[really-safe-money-gen]
1063.80 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
1063.80 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1063.80 s
[really-safe-money-gen] f s = case readMaybe s of
1063.80 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1063.80 s
[really-safe-money-gen] Just i ->
1063.80 s
[really-safe-money-gen] - if ( i :: Intege r ) < t oIn t e g er (minBound :: Word64)
1063.80 s
[really-safe-money-gen] + if T r u e
1063.80 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1063.80 s
[really-safe-money-gen] else
1063.80 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1063.80 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
1063.80 s
[really-safe-money-gen] @@ -171,10 +171,9 @@
1063.80 s
[really-safe-money-gen] fmap
1063.80 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1063.80 s
[really-safe-money-gen] let rounder :: Rational -> Integer
1063.80 s
[really-safe-money-gen] rounder = case r of
1063.80 s
[really-safe-money-gen] RoundUp -> ceiling
1063.80 s
[really-safe-money-gen] RoundDown -> floor
1063.80 s
[really-safe-money-gen] - RoundNearest -> round
1063.80 s
[really-safe-money-gen] roundedResult :: Integer
1063.80 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1063.80 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1063.80 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
1063.80 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1063.80 s
[really-safe-money-gen] f s = case readMaybe s of
1063.80 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1063.80 s
[really-safe-money-gen] Just i ->
1063.80 s
[really-safe-money-gen] - if ( i :: Intege r) < toInteg e r (m inBoun d :: Word64)
1063.80 s
[really-safe-money-gen] + if F al s e
1063.80 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1063.80 s
[really-safe-money-gen] else
1063.80 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1063.80 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
1063.80 s
[really-safe-money-gen] @@ -60,11 +60,10 @@
1063.80 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1063.80 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1063.80 s
[really-safe-money-gen] mconcat
1063.80 s
[really-safe-money-gen] - [ genericValidate ma,
1063.80 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1063.80 s
[really-safe-money-gen] declare "The amount is not zero" $
1063.80 s
[really-safe-money-gen] a /= Amount.zero
1063.80 s
[really-safe-money-gen] ]
1063.80 s
[really-safe-money-gen]
1063.80 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1063.80 s
[really-safe-money-gen]
1063.80 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1063.81 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1063.81 s
[really-safe-money-gen]
1063.81 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1063.81 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1063.81 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1063.81 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1063.81 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1063.81 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1063.81 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1063.81 s
[really-safe-money-gen]
1063.81 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1063.81 s
[really-safe-money-gen]
1063.81 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
1063.81 s
[really-safe-money-gen] @@ -44,7 +44,6 @@
1063.81 s
[really-safe-money-gen] where
1063.81 s
[really-safe-money-gen] f :: String -> Either String Amount
1063.81 s
[really-safe-money-gen] f s = case readMaybe s of
1063.81 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1063.81 s
[really-safe-money-gen] Just i ->
1063.81 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1063.81 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1063.81 s
[really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
1063.81 s
[really-safe-money-gen] @@ -189,8 +189,8 @@
1063.81 s
[really-safe-money-gen] ( \(currency, a) ->
1063.81 s
[really-safe-money-gen] ( \(cr, qf2) ->
1063.81 s
[really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
1063.81 s
[really-safe-money-gen] in Account.toMinimalQuantisations a
1063.81 s
[really-safe-money-gen] - * toInteger (numerator factor)
1063.81 s
[really-safe-money-gen] + + toInteger (numerator factor)
1063.81 s
[really-safe-money-gen] % toInteger (denominator factor)
1063.81 s
[really-safe-money-gen] )
1063.81 s
[really-safe-money-gen] <$> func currency
1063.81 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
1063.81 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1064.51 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1064.51 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.51 s
[really-safe-money-gen] else
1064.51 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1064.51 s
[really-safe-money-gen] + if (i :: Integer) < = toInteger (maxBound :: Word64)
1064.51 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.51 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.51 s
[really-safe-money-gen] g :: Amount -> String
1064.51 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
1064.51 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1064.51 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1064.51 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.51 s
[really-safe-money-gen] else
1064.52 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1064.52 s
[really-safe-money-gen] + if (i :: Integer) < toInteger (maxBound :: Word64)
1064.52 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.52 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.52 s
[really-safe-money-gen] g :: Amount -> String
1064.52 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
1064.52 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1064.52 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1064.52 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.52 s
[really-safe-money-gen] else
1064.52 s
[really-safe-money-gen] - if ( i :: Intege r ) > t oIn t e g er (maxBound :: Word64)
1064.52 s
[really-safe-money-gen] + if T r u e
1064.52 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.52 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.52 s
[really-safe-money-gen] g :: Amount -> String
1064.52 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
1064.52 s
[really-safe-money-gen] @@ -63,11 +63,10 @@
1064.52 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
1064.52 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
1064.52 s
[really-safe-money-gen] mconcat
1064.52 s
[really-safe-money-gen] - [ genericValidate ma,
1064.52 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1064.52 s
[really-safe-money-gen] declare "The account is not zero" $
1064.52 s
[really-safe-money-gen] a /= Account.zero
1064.52 s
[really-safe-money-gen] ]
1064.52 s
[really-safe-money-gen]
1064.52 s
[really-safe-money-gen] -- TODO no empty currencies
1064.52 s
[really-safe-money-gen]
1064.52 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
1064.52 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1064.52 s
[really-safe-money-gen] Just a -> do
1064.52 s
[really-safe-money-gen] r <- Amount.subtract a amount
1064.52 s
[really-safe-money-gen] Just $
1064.52 s
[really-safe-money-gen] - if r == Am o u n t. z e r o
1064.52 s
[really-safe-money-gen] + if T r u e
1064.52 s
[really-safe-money-gen] then M.delete currency m
1064.52 s
[really-safe-money-gen] else M.insert currency r m
1064.52 s
[really-safe-money-gen]
1064.52 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
1064.53 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1064.53 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1064.53 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.53 s
[really-safe-money-gen] else
1064.53 s
[really-safe-money-gen] - if ( i :: Integer) > toInteger (maxBound :: Word64)
1064.53 s
[really-safe-money-gen] + if n o t ( ( i :: Integer) > toInteger (maxBound :: Word64) )
1064.53 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.53 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.53 s
[really-safe-money-gen] g :: Amount -> String
1064.53 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
1064.53 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1064.53 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1064.53 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.53 s
[really-safe-money-gen] else
1064.53 s
[really-safe-money-gen] - if ( i :: Intege r) > toInteg er ( m a xBo u n d :: Word64)
1064.53 s
[really-safe-money-gen] + if F a l s e
1064.53 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.53 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.53 s
[really-safe-money-gen] g :: Amount -> String
1064.53 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
1064.53 s
[really-safe-money-gen] @@ -47,7 +47,6 @@
1064.53 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1064.53 s
[really-safe-money-gen] Just i ->
1064.53 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1064.53 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.53 s
[really-safe-money-gen] else
1064.53 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1064.53 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.53 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
1064.53 s
[really-safe-money-gen] @@ -50,7 +50,6 @@
1064.53 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.53 s
[really-safe-money-gen] else
1064.53 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1064.53 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.53 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.53 s
[really-safe-money-gen] g :: Amount -> String
1064.53 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1064.53 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
1064.53 s
[really-safe-money-gen] @@ -50,7 +50,6 @@
1064.53 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.53 s
[really-safe-money-gen] else
1064.53 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1064.53 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.53 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.53 s
[really-safe-money-gen] g :: Amount -> String
1064.53 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1064.54 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
1064.54 s
[really-safe-money-gen] @@ -43,15 +43,14 @@
1064.54 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
1064.54 s
[really-safe-money-gen] where
1064.54 s
[really-safe-money-gen] f :: String -> Either String Amount
1064.54 s
[really-safe-money-gen] f s = case readMaybe s of
1064.54 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1064.54 s
[really-safe-money-gen] Just i ->
1064.54 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1064.54 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.54 s
[really-safe-money-gen] else
1064.54 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1064.54 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.54 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.54 s
[really-safe-money-gen] g :: Amount -> String
1064.54 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1064.54 s
[really-safe-money-gen]
1064.54 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
1064.54 s
[really-safe-money-gen] @@ -43,15 +43,8 @@
1064.54 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
1064.54 s
[really-safe-money-gen] where
1064.54 s
[really-safe-money-gen] f :: String -> Either String Amount
1064.54 s
[really-safe-money-gen] f s = case readMaybe s of
1064.54 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1064.54 s
[really-safe-money-gen] - Just i ->
1064.54 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1064.54 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
1064.54 s
[really-safe-money-gen] - else
1064.54 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1064.54 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1064.54 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1064.54 s
[really-safe-money-gen] g :: Amount -> String
1064.54 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1064.54 s
[really-safe-money-gen]
1064.54 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
1064.54 s
[really-safe-money-gen] @@ -76,6 +76,5 @@
1064.54 s
[really-safe-money-gen] <?> "Account"
1064.54 s
[really-safe-money-gen] where
1064.54 s
[really-safe-money-gen] f :: Integer -> Either String Account
1064.54 s
[really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
1064.54 s
[really-safe-money-gen] Nothing -> Left $ "Number did not fit into an account value: " <> show i
1064.54 s
[really-safe-money-gen] - Just a -> Right a
1064.54 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
1064.54 s
[really-safe-money-gen] @@ -48,7 +48,6 @@
1064.54 s
[really-safe-money-gen] where
1064.54 s
[really-safe-money-gen] f :: String -> Either String Account
1064.54 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1064.54 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1064.54 s
[really-safe-money-gen] Just a -> Right a
1064.54 s
[really-safe-money-gen] g :: Account -> String
1064.54 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1066.96 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
1066.96 s
[really-safe-money-gen] @@ -76,6 +76,5 @@
1067.04 s
[really-safe-money-gen] <?> "Account"
1067.04 s
[really-safe-money-gen] where
1067.04 s
[really-safe-money-gen] f :: Integer -> Either String Account
1067.04 s
[really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
1067.04 s
[really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
1067.04 s
[really-safe-money-gen] Just a -> Right a
1067.04 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
1067.04 s
[really-safe-money-gen] @@ -48,7 +48,6 @@
1067.04 s
[really-safe-money-gen] where
1067.04 s
[really-safe-money-gen] f :: String -> Either String Account
1067.04 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1067.04 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1067.04 s
[really-safe-money-gen] Just a -> Right a
1067.04 s
[really-safe-money-gen] g :: Account -> String
1067.04 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1067.04 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
1067.04 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1067.04 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1067.04 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1067.04 s
[really-safe-money-gen] else
1067.04 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1067.04 s
[really-safe-money-gen] + if (i :: Integer) > = toInteger (maxBound :: Word64)
1067.04 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1067.04 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1067.04 s
[really-safe-money-gen] g :: Amount -> String
1067.04 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
1067.04 s
[really-safe-money-gen] @@ -177,10 +177,9 @@
1067.04 s
[really-safe-money-gen] RoundNearest -> round
1067.04 s
[really-safe-money-gen] roundedResult :: Integer
1067.04 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1067.04 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1067.04 s
[really-safe-money-gen] - LT -> RoundedDown
1067.04 s
[really-safe-money-gen] EQ -> DidNotRound
1067.04 s
[really-safe-money-gen] GT -> RoundedUp
1067.04 s
[really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
1067.04 s
[really-safe-money-gen] )
1067.04 s
[really-safe-money-gen] . Prelude.sum
1067.05 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
1067.05 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1067.05 s
[really-safe-money-gen] Just a -> do
1067.05 s
[really-safe-money-gen] r <- Amount.add a amount
1067.05 s
[really-safe-money-gen] Just $
1067.05 s
[really-safe-money-gen] - if r == Amount.zero
1067.05 s
[really-safe-money-gen] + if n o t ( r == Amount.zero )
1067.05 s
[really-safe-money-gen] then M.delete currency m
1067.05 s
[really-safe-money-gen] else M.insert currency r m
1067.05 s
[really-safe-money-gen]
1067.05 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
1067.05 s
[really-safe-money-gen] @@ -171,10 +171,9 @@
1067.05 s
[really-safe-money-gen] fmap
1067.05 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1067.05 s
[really-safe-money-gen] let rounder :: Rational -> Integer
1067.05 s
[really-safe-money-gen] rounder = case r of
1067.05 s
[really-safe-money-gen] RoundUp -> ceiling
1067.05 s
[really-safe-money-gen] - RoundDown -> floor
1067.05 s
[really-safe-money-gen] RoundNearest -> round
1067.05 s
[really-safe-money-gen] roundedResult :: Integer
1067.05 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1067.05 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1067.05 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
1067.05 s
[really-safe-money-gen] @@ -112,14 +112,13 @@
1067.05 s
[really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
1067.05 s
[really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
1067.05 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
1067.05 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1067.05 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency account m
1067.05 s
[really-safe-money-gen] Just a -> do
1067.05 s
[really-safe-money-gen] r <- Account.add a account
1067.05 s
[really-safe-money-gen] Just $
1067.05 s
[really-safe-money-gen] if r == Account.zero
1067.05 s
[really-safe-money-gen] then M.delete currency m
1067.05 s
[really-safe-money-gen] else M.insert currency r m
1067.05 s
[really-safe-money-gen]
1067.05 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1067.05 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1067.05 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
1067.05 s
[really-safe-money-gen] @@ -109,7 +109,7 @@
1067.05 s
[really-safe-money-gen]
1067.05 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1067.05 s
[really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1067.05 s
[really-safe-money-gen] - addAccount m _ (Positive (Amount 0)) = J u s t m
1067.05 s
[really-safe-money-gen] + addAccount m _ (Positive (Amount 0)) = No t h ing
1067.05 s
[really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
1067.05 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
1067.05 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1067.05 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
1067.05 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
1067.05 s
[really-safe-money-gen]
1067.05 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
1067.05 s
[really-safe-money-gen] fromAmount currency amount =
1067.05 s
[really-safe-money-gen] - if a m o unt == A mou n t.z e ro
1067.05 s
[really-safe-money-gen] + if F a ls e
1067.06 s
[really-safe-money-gen] then zero
1067.06 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
1067.06 s
[really-safe-money-gen]
1067.06 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
1067.06 s
[really-safe-money-gen] @@ -36,6 +36,5 @@
1067.06 s
[really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
1067.06 s
[really-safe-money-gen] where
1067.06 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1067.06 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1067.06 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1067.06 s
[really-safe-money-gen] - Just a -> Right a
1067.06 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
1067.06 s
[really-safe-money-gen] @@ -171,10 +171,9 @@
1067.06 s
[really-safe-money-gen] fmap
1067.06 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1067.06 s
[really-safe-money-gen] let rounder :: Rational -> Integer
1067.06 s
[really-safe-money-gen] rounder = case r of
1067.06 s
[really-safe-money-gen] - RoundUp -> ceiling
1067.06 s
[really-safe-money-gen] RoundDown -> floor
1067.06 s
[really-safe-money-gen] RoundNearest -> round
1067.06 s
[really-safe-money-gen] roundedResult :: Integer
1067.06 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1067.06 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1067.06 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1067.06 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1067.06 s
[really-safe-money-gen]
1067.06 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1067.06 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1067.06 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1067.06 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1067.06 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1067.06 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1067.06 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1067.06 s
[really-safe-money-gen]
1067.06 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1067.06 s
[really-safe-money-gen]
1067.06 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
1067.06 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1067.06 s
[really-safe-money-gen] f s = case readMaybe s of
1067.06 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1067.06 s
[really-safe-money-gen] Just i ->
1067.06 s
[really-safe-money-gen] - if ( i :: Integer) < toInteger (minBound :: Word64)
1067.06 s
[really-safe-money-gen] + if n o t ( ( i :: Integer) < toInteger (minBound :: Word64) )
1067.06 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1067.06 s
[really-safe-money-gen] else
1067.06 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1067.07 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1067.07 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1067.07 s
[really-safe-money-gen]
1067.07 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1067.07 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1067.07 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1067.07 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1067.07 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
1067.07 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1067.07 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1067.07 s
[really-safe-money-gen]
1067.07 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1067.07 s
[really-safe-money-gen]
1067.07 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
1067.07 s
[really-safe-money-gen] @@ -36,6 +36,5 @@
1067.07 s
[really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
1067.07 s
[really-safe-money-gen] where
1067.07 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1067.07 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1067.07 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1067.07 s
[really-safe-money-gen] Just a -> Right a
1067.07 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
1067.07 s
[really-safe-money-gen] @@ -37,5 +37,4 @@
1067.07 s
[really-safe-money-gen] where
1067.07 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1067.07 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1067.07 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1067.07 s
[really-safe-money-gen] Just a -> Right a
1067.07 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
1067.07 s
[really-safe-money-gen] @@ -47,9 +47,8 @@
1090.61 s
[really-safe-money-gen] codecViaStrinKilled: 426
1090.61 s
[really-safe-money-gen] (of which timed out: 0 )
1090.61 s
[really-safe-money-gen] Survived: 58
1090.63 s
[really-safe-money-gen] Uncovered: 40
1090.63 s
[really-safe-money-gen]
1090.63 s
[really-safe-money-gen] Surviving mutations:
1090.63 s
[really-safe-money-gen]
1090.63 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
1090.63 s
[really-safe-money-gen] @@ -63,11 +63,10 @@
1090.63 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
1090.63 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
1090.63 s
[really-safe-money-gen] mconcat
1090.63 s
[really-safe-money-gen] - [ genericValidate ma,
1090.63 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1090.63 s
[really-safe-money-gen] declare "The account is not zero" $
1090.63 s
[really-safe-money-gen] a /= Account.zero
1090.63 s
[really-safe-money-gen] ]
1090.63 s
[really-safe-money-gen]
1090.63 s
[really-safe-money-gen] -- TODO no empty currencies
1090.63 s
[really-safe-money-gen]
1090.63 s
[really-safe-money-gen]
1090.63 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
1090.63 s
[really-safe-money-gen] @@ -63,11 +63,7 @@
1090.63 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
1090.63 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
1090.63 s
[really-safe-money-gen] mconcat
1090.63 s
[really-safe-money-gen] - [ genericValidate ma,
1090.63 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
1090.64 s
[really-safe-money-gen] - declare "The account is not zero" $
1090.64 s
[really-safe-money-gen] - a /= Account.zero
1090.64 s
[really-safe-money-gen] ]
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] -- TODO no empty currencies
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
1090.64 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
1090.64 s
[really-safe-money-gen] [ genericValidate ma,
1090.64 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1090.64 s
[really-safe-money-gen] declare "The account is not zero" $
1090.64 s
[really-safe-money-gen] - a / = Ac co u nt .z e ro
1090.64 s
[really-safe-money-gen] + T r u e
1090.64 s
[really-safe-money-gen] ]
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] -- TODO no empty currencies
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
1090.64 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
1090.64 s
[really-safe-money-gen] fromAccount currency amount =
1090.64 s
[really-safe-money-gen] - if a m o unt == A cco u n t.z e ro
1090.64 s
[really-safe-money-gen] + if Tr u e
1090.64 s
[really-safe-money-gen] then zero
1090.64 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:113:40-46
1090.64 s
[really-safe-money-gen] @@ -110,7 +110,7 @@
1090.64 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1090.64 s
[really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1090.64 s
[really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
1090.64 s
[really-safe-money-gen] - addAccount m _ (Negative (Amount 0)) = J u s t m
1090.64 s
[really-safe-money-gen] + addAccount m _ (Negative (Amount 0)) = No t h ing
1090.64 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
1090.64 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1090.64 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency account m
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:127:45-51
1090.64 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1090.64 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1090.64 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1090.64 s
[really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
1090.64 s
[really-safe-money-gen] - subtractAccount m _ (Negative (Amount 0)) = J u s t m
1090.64 s
[really-safe-money-gen] + subtractAccount m _ (Negative (Amount 0)) = No t h ing
1090.64 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1090.64 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1090.64 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:126:45-51
1090.64 s
[really-safe-money-gen] @@ -123,7 +123,7 @@
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1090.64 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1090.64 s
[really-safe-money-gen] - subtractAccount m _ (Positive (Amount 0)) = J u s t m
1090.64 s
[really-safe-money-gen] + subtractAccount m _ (Positive (Amount 0)) = No t h ing
1090.64 s
[really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
1090.64 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1090.64 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1090.64 s
[really-safe-money-gen]
1090.64 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
1090.65 s
[really-safe-money-gen] @@ -60,11 +60,10 @@
1090.65 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1090.65 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1090.65 s
[really-safe-money-gen] mconcat
1090.65 s
[really-safe-money-gen] - [ genericValidate ma,
1090.65 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1090.65 s
[really-safe-money-gen] declare "The amount is not zero" $
1090.65 s
[really-safe-money-gen] a /= Amount.zero
1090.65 s
[really-safe-money-gen] ]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
1090.65 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
1090.65 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1090.65 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1090.65 s
[really-safe-money-gen] mconcat
1090.65 s
[really-safe-money-gen] - [ genericValidate ma,
1090.65 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
1090.65 s
[really-safe-money-gen] - declare "The amount is not zero" $
1090.65 s
[really-safe-money-gen] - a /= Amount.zero
1090.65 s
[really-safe-money-gen] ]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
1090.65 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1090.65 s
[really-safe-money-gen] [ genericValidate ma,
1090.65 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1090.65 s
[really-safe-money-gen] declare "The amount is not zero" $
1090.65 s
[really-safe-money-gen] - a / = A mo u nt .z e ro
1090.65 s
[really-safe-money-gen] + Tr u e
1090.65 s
[really-safe-money-gen] ]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
1090.65 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1090.65 s
[really-safe-money-gen] Just a -> do
1090.65 s
[really-safe-money-gen] r <- Amount.add a amount
1090.65 s
[really-safe-money-gen] Just $
1090.65 s
[really-safe-money-gen] - if r == A mount .z e ro
1090.65 s
[really-safe-money-gen] + if Fal s e
1090.65 s
[really-safe-money-gen] then M.delete currency m
1090.65 s
[really-safe-money-gen] else M.insert currency r m
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
1090.65 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1090.65 s
[really-safe-money-gen] Just a -> do
1090.65 s
[really-safe-money-gen] r <- Amount.subtract a amount
1090.65 s
[really-safe-money-gen] Just $
1090.65 s
[really-safe-money-gen] - if r == Amount.zero
1090.65 s
[really-safe-money-gen] + if n o t ( r == Amount.zero )
1090.65 s
[really-safe-money-gen] then M.delete currency m
1090.65 s
[really-safe-money-gen] else M.insert currency r m
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
1090.65 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1090.65 s
[really-safe-money-gen] Just a -> do
1090.65 s
[really-safe-money-gen] r <- Amount.subtract a amount
1090.65 s
[really-safe-money-gen] Just $
1090.65 s
[really-safe-money-gen] - if r == A mount .z e ro
1090.65 s
[really-safe-money-gen] + if Fal s e
1090.65 s
[really-safe-money-gen] then M.delete currency m
1090.65 s
[really-safe-money-gen] else M.insert currency r m
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen]
1090.65 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
1090.65 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1090.65 s
[really-safe-money-gen] Just a -> do
1090.65 s
[really-safe-money-gen] r <- Amount.subtract a amount
1090.65 s
[really-safe-money-gen] Just $
1090.66 s
[really-safe-money-gen] - if r == Am o u n t. z e r o
1090.66 s
[really-safe-money-gen] + if T r u e
1090.66 s
[really-safe-money-gen] then M.delete currency m
1090.66 s
[really-safe-money-gen] else M.insert currency r m
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAmount.hs:112:33-39
1090.66 s
[really-safe-money-gen] @@ -109,7 +109,7 @@
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1090.66 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1090.66 s
[really-safe-money-gen] - subtractAmount m _ (Amount 0) = J u s t m
1090.66 s
[really-safe-money-gen] + subtractAmount m _ (Amount 0) = No t h ing
1090.66 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1090.66 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1090.66 s
[really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] Cmp at src/Money/MultiAmount.hs:168:20-45
1090.66 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1090.66 s
[really-safe-money-gen] maxBoundN :: Natural
1090.66 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1090.66 s
[really-safe-money-gen] actualResult =
1090.66 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1090.66 s
[really-safe-money-gen] + if roundedResult > = maxBoundN
1090.66 s
[really-safe-money-gen] then Nothing
1090.66 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1090.66 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
1090.66 s
[really-safe-money-gen] @@ -600,13 +600,12 @@
1090.66 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
1090.66 s
[really-safe-money-gen] validate ad =
1090.66 s
[really-safe-money-gen] mconcat
1090.66 s
[really-safe-money-gen] - [ genericValidate ad,
1090.66 s
[really-safe-money-gen] case ad of
1090.66 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1090.66 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1090.66 s
[really-safe-money-gen] a1 > a2
1090.66 s
[really-safe-money-gen] _ -> valid
1090.66 s
[really-safe-money-gen] ]
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
1090.66 s
[really-safe-money-gen] @@ -600,13 +600,7 @@
1090.66 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
1090.66 s
[really-safe-money-gen] validate ad =
1090.66 s
[really-safe-money-gen] mconcat
1090.66 s
[really-safe-money-gen] - [ genericValidate ad,
1090.66 s
[really-safe-money-gen] - case ad of
1090.66 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
1090.66 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
1090.66 s
[really-safe-money-gen] - a1 > a2
1090.66 s
[really-safe-money-gen] - _ -> valid
1090.66 s
[really-safe-money-gen] ]
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen]
1090.66 s
[really-safe-money-gen] RemoveCase at src/Money/Amount.hs:604:9-21
1090.66 s
[really-safe-money-gen] @@ -601,11 +601,8 @@
1090.66 s
[really-safe-money-gen] validate ad =
1090.66 s
[really-safe-money-gen] mconcat
1090.66 s
[really-safe-money-gen] [ genericValidate ad,
1090.66 s
[really-safe-money-gen] case ad of
1090.66 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
1090.66 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
1090.66 s
[really-safe-money-gen] - a1 > a2
1090.66 s
[really-safe-money-gen] _ -> valid
1090.66 s
[really-safe-money-gen] ]
1090.66 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
1090.67 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1090.67 s
[really-safe-money-gen] case ad of
1090.67 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1090.67 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1090.67 s
[really-safe-money-gen] - a 1 > a2
1090.67 s
[really-safe-money-gen] + T rue
1090.67 s
[really-safe-money-gen] _ -> valid
1090.67 s
[really-safe-money-gen] ]
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:607:15-22
1090.67 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1090.67 s
[really-safe-money-gen] case ad of
1090.67 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1090.67 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1090.67 s
[really-safe-money-gen] - a1 > a2
1090.67 s
[really-safe-money-gen] + a1 > = a2
1090.67 s
[really-safe-money-gen] _ -> valid
1090.67 s
[really-safe-money-gen] ]
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] MaybeOp at src/Money/Amount.hs:661:19-28
1090.67 s
[really-safe-money-gen] @@ -658,7 +658,7 @@
1090.67 s
[really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
1090.67 s
[really-safe-money-gen] (Maybe Amount, Ratio Natural)
1090.67 s
[really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
1090.67 s
[really-safe-money-gen] - fraction _ _ 0 = ( J u st ze r o , 0)
1090.67 s
[really-safe-money-gen] + fraction _ _ 0 = ( N o th in g , 0)
1090.67 s
[really-safe-money-gen] fraction r (Amount a) f =
1090.67 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
1090.67 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:495:10-23
1090.67 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1090.67 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1090.67 s
[really-safe-money-gen] r :: Integer
1090.67 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1090.67 s
[really-safe-money-gen] - in if r > maxBoundI
1090.67 s
[really-safe-money-gen] + in if r > = maxBoundI
1090.67 s
[really-safe-money-gen] then Nothing
1090.67 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:341:26-91
1090.67 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
1090.67 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1090.67 s
[really-safe-money-gen] in if ceiled == floored
1090.67 s
[really-safe-money-gen] then
1090.67 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1090.67 s
[really-safe-money-gen] + if ceiled > = (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1090.67 s
[really-safe-money-gen] then Nothing
1090.67 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1090.67 s
[really-safe-money-gen] else Nothing
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
1090.67 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1090.67 s
[really-safe-money-gen] | otherwise =
1090.67 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
1090.67 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
1090.67 s
[really-safe-money-gen] - if e xp one nt r e s ultDoub l e > 65
1090.67 s
[really-safe-money-gen] + if Fa l s e
1090.67 s
[really-safe-money-gen] then Nothing
1090.67 s
[really-safe-money-gen] else
1090.67 s
[really-safe-money-gen] let ceiled :: Natural
1090.67 s
[really-safe-money-gen]
1090.67 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:332:14-40
1090.67 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1090.68 s
[really-safe-money-gen] | otherwise =
1090.68 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
1090.68 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
1090.68 s
[really-safe-money-gen] - if exponent resultDouble > 65
1090.68 s
[really-safe-money-gen] + if exponent resultDouble > = 65
1090.68 s
[really-safe-money-gen] then Nothing
1090.68 s
[really-safe-money-gen] else
1090.68 s
[really-safe-money-gen] let ceiled :: Natural
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen] MaybeOp at src/Money/Amount.hs:520:14-66
1090.68 s
[really-safe-money-gen] @@ -517,7 +517,7 @@
1090.68 s
[really-safe-money-gen] r = i1 - i2
1090.68 s
[really-safe-money-gen] in if r < 0
1090.68 s
[really-safe-money-gen] then Nothing
1090.68 s
[really-safe-money-gen] - else J u s t ( Am o u n t ( (f rom I n t e g er :: Integer -> Word64) r))
1090.68 s
[really-safe-money-gen] + else N o t hi n g
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
1090.68 s
[really-safe-money-gen] --
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
1090.68 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
1090.68 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
1090.68 s
[really-safe-money-gen] r :: Integer
1090.68 s
[really-safe-money-gen] r = i1 - i2
1090.68 s
[really-safe-money-gen] - in if r < 0
1090.68 s
[really-safe-money-gen] + in if T r ue
1090.68 s
[really-safe-money-gen] then Nothing
1090.68 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:518:10-15
1090.68 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
1090.68 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
1090.68 s
[really-safe-money-gen] r :: Integer
1090.68 s
[really-safe-money-gen] r = i1 - i2
1090.68 s
[really-safe-money-gen] - in if r < 0
1090.68 s
[really-safe-money-gen] + in if r < = 0
1090.68 s
[really-safe-money-gen] then Nothing
1090.68 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
1090.68 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
1090.68 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
1090.68 s
[really-safe-money-gen] r :: Integer
1090.68 s
[really-safe-money-gen] r = i1 - i2
1090.68 s
[really-safe-money-gen] - in if r < 0
1090.68 s
[really-safe-money-gen] + in if r < 1
1090.68 s
[really-safe-money-gen] then Nothing
1090.68 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen]
1090.68 s
[really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
1090.68 s
[really-safe-money-gen] @@ -36,9 +36,8 @@
1090.68 s
[really-safe-money-gen] instance Validity QuantisationFactor where
1090.68 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1090.68 s
[really-safe-money-gen] mconcat
1090.68 s
[really-safe-money-gen] - [ genericValidate qf,
1090.68 s
[really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
1090.68 s
[really-safe-money-gen] ]
1090.68 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] instance NFData QuantisationFactor
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] ListLit at src/Money/Quantisg = bimapCodec f g stringCodec <?> "Account"
1090.69 s
[really-safe-money-gen] where
1090.69 s
[really-safe-money-gen] f :: String -> Either String Account
1090.69 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1090.69 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1090.69 s
[really-safe-money-gen] - Just a -> Right a
1090.69 s
[really-safe-money-gen] g :: Account -> String
1090.69 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
1090.69 s
[really-safe-money-gen] @@ -37,5 +37,4 @@
1090.69 s
[really-safe-money-gen] where
1090.69 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1090.69 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1090.69 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1090.69 s
[really-safe-money-gen] Just a -> Right a
1090.69 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
1090.69 s
[really-safe-money-gen] @@ -47,9 +47,8 @@
1090.69 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
1090.69 s
[really-safe-money-gen] where
1090.69 s
[really-safe-money-gen] f :: String -> Either String Account
1090.69 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1090.69 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1090.69 s
[really-safe-money-gen] Just a -> Right a
1090.69 s
[really-safe-money-gen] g :: Account -> String
1090.69 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
1090.69 s
[really-safe-money-gen] @@ -177,10 +177,9 @@
1090.69 s
[really-safe-money-gen] RoundNearest -> round
1090.69 s
[really-safe-money-gen] roundedResult :: Integer
1090.69 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1090.69 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1090.69 s
[really-safe-money-gen] LT -> RoundedDown
1090.69 s
[really-safe-money-gen] - EQ -> DidNotRound
1090.69 s
[really-safe-money-gen] GT -> RoundedUp
1090.69 s
[really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
1090.69 s
[really-safe-money-gen] )
1090.69 s
[really-safe-money-gen] . Prelude.sum
1090.69 s
[really-safe-money-gen] ationFactor.hs:39:7-8
1090.69 s
[really-safe-money-gen] @@ -36,9 +36,7 @@
1090.69 s
[really-safe-money-gen] instance Validity QuantisationFactor where
1090.69 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1090.69 s
[really-safe-money-gen] mconcat
1090.69 s
[really-safe-money-gen] - [ genericValidate qf,
1090.69 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1090.69 s
[really-safe-money-gen] ]
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] instance NFData QuantisationFactor
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
1090.69 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
1090.69 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1090.69 s
[really-safe-money-gen] mconcat
1090.69 s
[really-safe-money-gen] [ genericValidate qf,
1090.69 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1090.69 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ Tru e
1090.69 s
[really-safe-money-gen] ]
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] instance NFData QuantisationFactor
1090.69 s
[really-safe-money-gen]
1090.69 s
[really-safe-money-gen] ConstBool at src/Money/ConversionRate.hs:38:41-57
1090.69 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
1090.69 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1090.69 s
[really-safe-money-gen] mconcat
1090.69 s
[really-safe-money-gen] [ genericValidate cr,
1090.69 s
[really-safe-money-gen] - declare "The rate is nonzero" $ n u m e rato r r /= 0
1090.69 s
[really-safe-money-gen] + declare "The rate is nonzero" $ T r u e
1090.69 s
[really-safe-money-gen] ]
1090.69 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] instance NFData ConversionRate
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
1090.70 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | One-to-one conversion rate
1090.70 s
[really-safe-money-gen] oneToOne :: ConversionRate
1090.70 s
[really-safe-money-gen] - oneToOne = ConversionRate 1
1090.70 s
[really-safe-money-gen] + oneToOne = ConversionRate 0
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
1090.70 s
[really-safe-money-gen] --
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] Arith at src/Money/ConversionRate.hs:127:70-79
1090.70 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1090.70 s
[really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
1090.70 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
1090.70 s
[really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
1090.70 s
[really-safe-money-gen] - compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
1090.70 s
[really-safe-money-gen] + compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | The factor to multiply by when converting currencies.
1090.70 s
[really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] RemoveCase at src/Money/AccountOf.hs:180:30-115
1090.70 s
[really-safe-money-gen] @@ -177,11 +177,10 @@
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | See 'Account.distribute'
1090.70 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
1090.70 s
[really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
1090.70 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1090.70 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1090.70 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
1090.70 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | The result of 'distribute'
1090.70 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
1090.70 s
[really-safe-money-gen] @@ -109,9 +109,8 @@
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
1090.70 s
[really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
1090.70 s
[really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
1090.70 s
[really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
1090.70 s
[really-safe-money-gen] - Just dl -> pure dl
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1090.70 s
[really-safe-money-gen] decimalLiteralP = do
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
1090.70 s
[really-safe-money-gen] @@ -284,9 +284,8 @@
1090.70 s
[really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
1090.70 s
[really-safe-money-gen] -- Nothing
1090.70 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
1090.70 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
1090.70 s
[really-safe-money-gen] - Just False -> Nothing
1090.70 s
[really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
1090.70 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
1090.70 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
1090.70 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
1090.70 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
1090.70 s
[really-safe-money-gen] Just False -> Nothing
1090.70 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (1 0 ^ e)
1090.70 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
1090.70 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
1090.70 s
[really-safe-money-gen]
1090.70 s
[really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
1090.70 s
[really-safe-money-gen] @@ -296,7 +296,6 @@
1090.70 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
1090.70 s
[really-safe-money-gen] toWord dl = do
1090.70 s
[really-safe-money-gen] n <- toNatural dl
1090.70 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
1090.70 s
[really-safe-money-gen] pure $ fromIntegral n
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
1090.71 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
1090.71 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
1090.71 s
[really-safe-money-gen] toWord dl = do
1090.71 s
[really-safe-money-gen] n <- toNatural dl
1090.71 s
[really-safe-money-gen] - guard $ n < = from I n te g r a l (maxB o u n d : : W ord)
1090.71 s
[really-safe-money-gen] + guard $ T r u e
1090.71 s
[really-safe-money-gen] pure $ fromIntegral n
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
1090.71 s
[really-safe-money-gen] @@ -329,7 +329,6 @@
1090.71 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
1090.71 s
[really-safe-money-gen] toInt dl = do
1090.71 s
[really-safe-money-gen] n <- toInteger dl
1090.71 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
1090.71 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
1090.71 s
[really-safe-money-gen] pure $ fromIntegral n
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
1090.71 s
[really-safe-money-gen] @@ -330,7 +330,6 @@
1090.71 s
[really-safe-money-gen] toInt dl = do
1090.71 s
[really-safe-money-gen] n <- toInteger dl
1090.71 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
1090.71 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
1090.71 s
[really-safe-money-gen] pure $ fromIntegral n
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
1090.71 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
1090.71 s
[really-safe-money-gen] toInt dl = do
1090.71 s
[really-safe-money-gen] n <- toInteger dl
1090.71 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
1090.71 s
[really-safe-money-gen] - guard $ n >= f r om I n t e g ral (minBound :: Int)
1090.71 s
[really-safe-money-gen] + guard $ T r u e
1090.71 s
[really-safe-money-gen] pure $ fromIntegral n
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
1090.71 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1090.71 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
1090.71 s
[really-safe-money-gen] toInt dl = do
1090.71 s
[really-safe-money-gen] n <- toInteger dl
1090.71 s
[really-safe-money-gen] - guard $ n <= f r om I n t e g ral (maxBound :: Int)
1090.71 s
[really-safe-money-gen] + guard $ T r u e
1090.71 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
1090.71 s
[really-safe-money-gen] pure $ fromIntegral n
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen]
1090.71 s
[really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
1090.71 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1090.71 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
1090.72 s
[really-safe-money-gen] toInt dl = do
1090.72 s
[really-safe-money-gen] n <- toInteger dl
1090.72 s
[really-safe-money-gen] - guard $ n < = fromIntegral (maxBound :: Int)
1090.72 s
[really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
1090.72 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
1090.72 s
[really-safe-money-gen] pure $ fromIntegral n
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
1090.72 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
1090.72 s
[really-safe-money-gen] pure $ fromIntegral n
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1090.72 s
[really-safe-money-gen] - numSign a = if a > = 0 then Nothing else Just False
1090.72 s
[really-safe-money-gen] + numSign a = if a > 0 then Nothing else Just False
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
1090.72 s
[really-safe-money-gen] signSignum = \case
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
1090.72 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
1090.72 s
[really-safe-money-gen] pure $ fromIntegral n
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1090.72 s
[really-safe-money-gen] - numSign a = if a >= 0 then Nothing else Just False
1090.72 s
[really-safe-money-gen] + numSign a = if a >= 1 then Nothing else Just False
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
1090.72 s
[really-safe-money-gen] signSignum = \case
1090.72 s
[really-safe-money-gen]
1090.72 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:131:20-26
1090.72 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
1090.72 s
[really-safe-money-gen] amount :: Amount
1090.72 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
1090.72 s
[really-safe-money-gen] in Just $
1090.72 s
[really-safe-money-gen] - if i > = 0
1090.73 s
[really-safe-money-gen] + if i > 0
1090.73 s
[really-safe-money-gen] then Positive amount
1090.73 s
[really-safe-money-gen] else Negative amount
1090.73 s
[really-safe-money-gen]
1090.73 s
[really-safe-money-gen]
1090.73 s
[really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
1090.73 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
1090.73 s
[really-safe-money-gen] amount :: Amount
1090.73 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
1090.73 s
[really-safe-money-gen] in Just $
1090.73 s
[really-safe-money-gen] - if i >= 0
1090.73 s
[really-safe-money-gen] + if i >= 1
1090.73 s
[really-safe-money-gen] then Positive amount
1090.73 s
[really-safe-money-gen] else Negative amount
1090.73 s
[really-safe-money-gen]
1090.73 s
[really-safe-money-gen]
1090.73 s
[really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
1090.73 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
1090.73 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
1090.73 s
[really-safe-money-gen] a :: Integer
1090.73 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
1090.73 s
[really-safe-money-gen] - in if a > m a xB ound I
1090.73 s
[really-safe-money-gen] + in if F a l se
1090.73 s
[really-safe-money-gen] then Nothing
1090.73 s
[really-safe-money-gen] else
1090.73 s
[really-safe-money-gen] let w :: Word64
1090.73 s
[really-safe-money-gen]
1090.73 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:197:14-20
1090.73 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
1090.73 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
1090.73 s
[really-safe-money-gen] fromDouble quantisationFactor d =
1090.73 s
[really-safe-money-gen] let d' = Prelude.abs d
1090.73 s
[really-safe-money-gen] - f = if d > = 0 then Positive else Negative
1090.73 s
[really-safe-money-gen] + f = if d > 0 then Positive else Negative
1090.73 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
1090.73 s
[really-safe-money-gen]
1090.73 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
1090.73 s
[really-safe-money-gen]
1090.74 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:503:10-16
1090.74 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
1090.74 s
[really-safe-money-gen] RoundNearest -> RoundNearest
1090.74 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
1090.74 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
1090.74 s
[really-safe-money-gen] - in if f > = 0
1090.74 s
[really-safe-money-gen] + in if f > 0
1090.74 s
[really-safe-money-gen] then (ma, r)
1090.74 s
[really-safe-money-gen] else (negate <$> ma, -r)
1090.74 s
[really-safe-money-gen]
1090.74 s
[really-safe-money-gen]
1090.74 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:495:12-18
1090.74 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1090.74 s
[really-safe-money-gen] fraction rounding account f =
1090.74 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
1090.74 s
[really-safe-money-gen] ro =
1090.74 s
[really-safe-money-gen] - if f > = 0
1090.74 s
[really-safe-money-gen] + if f > 0
1090.74 s
[really-safe-money-gen] then rounding
1090.74 s
[really-safe-money-gen] else case rounding of
1090.74 s
[really-safe-money-gen] RoundUp -> RoundDown
1090.74 s
[really-safe-money-gen]
1090.74 s
[really-safe-money-gen] MaybeOp at src/Money/Account.hs:523:16-25
1090.74 s
[really-safe-money-gen] @@ -520,7 +520,7 @@
1090.74 s
[really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
1090.74 s
[really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
1090.74 s
[really-safe-money-gen] func ma r = case compare account zero of
1090.74 s
[really-safe-money-gen] - EQ -> ( J u st ze r o , r)
1090.74 s
[really-safe-money-gen] + EQ -> ( N o th in g , r)
1090.74 s
[really-safe-money-gen] GT -> (Positive <$> ma, r)
1090.74 s
[really-safe-money-gen] LT -> (Negative <$> ma, r)
1090.74 s
[really-safe-money-gen] in func amount actualFraction
1090.74 s
[really-safe-money-gen]
1090.74 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:455:14-23
1090.74 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
1090.74 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
1090.74 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
1090.74 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
1090.74 s
[really-safe-money-gen] - if a > = zero
1090.74 s
[really-safe-money-gen] + if a > zero
1090.75 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
1090.75 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
1090.75 s
[really-safe-money-gen]
1090.75 s
[really-safe-money-gen]
1090.75 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:451:14-23
1090.75 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
1090.75 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1090.75 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1090.75 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
1090.75 s
[really-safe-money-gen] - if a > = zero
1090.75 s
[really-safe-money-gen] + if a > zero
1090.75 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
1090.75 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
1090.75 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
1090.75 s
[really-safe-money-gen] checkPhase completed in 16 minutes 58 seconds
1090.75 s
[really-safe-money-gen] Phase: haddockPhase
1091.40 s
[really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
1091.40 s
[really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
1091.41 s
[really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
1091.41 s
[really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
1092.18 s
[really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
1092.70 s
[really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
1092.74 s
[really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
1092.77 s
[really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
1092.79 s
[really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
1092.85 s
[really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
1092.88 s
[really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
1092.90 s
[really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
1092.92 s
[really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
1092.98 s
[really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
1093.01 s
[really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
1093.02 s
[really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
1093.05 s
[really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
1093.14 s
[really-safe-money-gen] Haddock coverage:
1093.14 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
1093.14 s
[really-safe-money-gen] Missing documentation for:
1093.14 s
[really-safe-money-gen] Module header
1093.14 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
1093.14 s
[really-safe-money-gen] Missing documentation for:
1093.14 s
[really-safe-money-gen] Module header
1093.14 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
1093.14 s
[really-safe-money-gen] Missing documentation for:
1093.14 s
[really-safe-money-gen] Module header
1093.14 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
1093.14 s
[really-safe-money-gen] Missing documentation for:
1093.14 s
[really-safe-money-gen] Module header
1093.14 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
1093.14 s
[really-safe-money-gen] Missing documentation for:
1093.14 s
[really-safe-money-gen] Module header
1093.14 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
1093.14 s
[really-safe-money-gen] Missing documentation for:
1093.15 s
[really-safe-money-gen] Module header
1093.15 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
1093.15 s
[really-safe-money-gen] Missing documentation for:
1093.15 s
[really-safe-money-gen] Module header
1093.15 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
1093.15 s
[really-safe-money-gen] Missing documentation for:
1093.15 s
[really-safe-money-gen] Module header
1093.15 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
1093.15 s
[really-safe-money-gen] Missing documentation for:
1093.15 s
[really-safe-money-gen] Module header
1093.15 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
1093.15 s
[really-safe-money-gen] Missing documentation for:
1093.15 s
[really-safe-money-gen] Module header
1093.15 s
[really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
1093.15 s
[really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
1093.15 s
[really-safe-money-gen] Missing documentation for:
1093.15 s
[really-safe-money-gen] Module header
1093.15 s
[really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
1093.15 s
[really-safe-money-gen] Missing documentation for:
1093.15 s
[really-safe-money-gen] Module header
1093.15 s
[really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
1093.52 s
[really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.Amount.Amount
1093.52 s
[really-safe-money-gen] - Money.Amount.Distribution
1093.52 s
[really-safe-money-gen] - Money.Amount.Rounding
1093.52 s
[really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.Account.Account
1093.52 s
[really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.AccountOf.AccountOf
1093.52 s
[really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.AmountOf.AmountOf
1093.52 s
[really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.ConversionRate.ConversionRate
1093.52 s
[really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
1093.52 s
[really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
1093.52 s
[really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.Currency.Currency
1093.52 s
[really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.MultiAmount.MultiAmount
1093.52 s
[really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Money.MultiAccount.MultiAccount
1093.52 s
[really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
1093.52 s
[really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
1106.70 s
[really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
1106.70 s
[really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
1106.88 s
[really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
1106.91 s
[really-safe-money-gen] Phase: installPhase
1107.22 s
[really-safe-money-gen] Installing library in /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
1108.24 s
[really-safe-money-gen] Phase: fixupPhase
1108.28 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0
1108.30 s
[really-safe-money-gen] shrinking /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A-ghc9.10.3.so
1108.32 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0...
1108.38 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0
1108.39 s
[really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0/lib
1108.53 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/8730vddj29ahfbhwvq3zg3k4mg8bgavw-really-safe-money-gen-0.0.0.0-doc
1108.55 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/8730vddj29ahfbhwvq3zg3k4mg8bgavw-really-safe-money-gen-0.0.0.0-doc...
1108.59 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/8730vddj29ahfbhwvq3zg3k4mg8bgavw-really-safe-money-gen-0.0.0.0-doc
1108.60 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/hrdi78hj8y4kxjl1i64lk7vbbmzmy8m6-really-safe-money-gen-0.0.0.0-report
1108.63 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/hrdi78hj8y4kxjl1i64lk7vbbmzmy8m6-really-safe-money-gen-0.0.0.0-report...
1108.69 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/hrdi78hj8y4kxjl1i64lk7vbbmzmy8m6-really-safe-money-gen-0.0.0.0-report
1109.01 s
[post-build-hook] Uploading to cachix cache "sydtest": /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0 /nix/store/8730vddj29ahfbhwvq3zg3k4mg8bgavw-really-safe-money-gen-0.0.0.0-doc /nix/store/hrdi78hj8y4kxjl1i64lk7vbbmzmy8m6-really-safe-money-gen-0.0.0.0-report
1110.10 s
[post-build-hook] Pushing 3 paths (196 are already present) using zstd to cache sydtest ⏳
1110.11 s
[post-build-hook]
1110.51 s
[post-build-hook] Pushing /nix/store/hrdi78hj8y4kxjl1i64lk7vbbmzmy8m6-really-safe-money-gen-0.0.0.0-report (422.91 KiB)
1110.53 s
[post-build-hook] Pushing /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0 (1.52 MiB)
1110.90 s
[post-build-hook] Pushing /nix/store/8730vddj29ahfbhwvq3zg3k4mg8bgavw-really-safe-money-gen-0.0.0.0-doc (288.17 KiB)
1112.17 s
[post-build-hook]
1112.17 s
[post-build-hook] All done.
1112.26 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0 /nix/store/8730vddj29ahfbhwvq3zg3k4mg8bgavw-really-safe-money-gen-0.0.0.0-doc /nix/store/hrdi78hj8y4kxjl1i64lk7vbbmzmy8m6-really-safe-money-gen-0.0.0.0-report
1112.40 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
1112.69 s
[post-build-hook] copying 3 paths...
1112.69 s
[post-build-hook] copying path '/nix/store/8730vddj29ahfbhwvq3zg3k4mg8bgavw-really-safe-money-gen-0.0.0.0-doc' to 'https://cache.staging.nix-ci.com'...
1112.70 s
[post-build-hook] copying path '/nix/store/hrdi78hj8y4kxjl1i64lk7vbbmzmy8m6-really-safe-money-gen-0.0.0.0-report' to 'https://cache.staging.nix-ci.com'...
1113.04 s
[post-build-hook] copying path '/nix/store/19blz65zqka9gkbs7bp26zx92m50vzp2-really-safe-money-gen-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
1114.02 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
1114.42 s
[post-build-hook] copying 1 paths...
1114.42 s
[post-build-hook] copying path '/nix/store/95dikkf9gr45c4h8rrm8sqw74h5224ww-really-safe-money-gen-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
1114.68 s
Progress: 7 of 8 built