Skip to content

Commit

Permalink
Add missing uses to SubstanceAmount
Browse files Browse the repository at this point in the history
Defined missing centimoles & decimoles in SubstanceAmount
module. Include in commit tests for fuzzing these and equal
pair comparisons.

See also ianmackenzie#6
  • Loading branch information
lenards committed Oct 13, 2019
1 parent 6d3dbdc commit 4450c8d
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 4 deletions.
38 changes: 34 additions & 4 deletions src/SubstanceAmount.elm
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
module SubstanceAmount exposing
( SubstanceAmount, Moles
, moles, inMoles, picomoles, inPicomoles, nanomoles, inNanomoles
, micromoles, inMicromoles, millimoles, inMillimoles, kilomoles, inKilomoles
, megamoles, inMegamoles, gigamoles, inGigamoles
, micromoles, inMicromoles, millimoles, inMillimoles
, centimoles, inCentimoles, decimoles, inDecimoles
, kilomoles, inKilomoles, megamoles, inMegamoles, gigamoles, inGigamoles
)

{-| A `SubstanceAmount` value represents a substance amount in [moles][1].
Expand All @@ -15,8 +16,9 @@ module SubstanceAmount exposing
## Conversions
@docs moles, inMoles, picomoles, inPicomoles, nanomoles, inNanomoles
@docs micromoles, inMicromoles, millimoles, inMillimoles, kilomoles, inKilomoles
@docs megamoles, inMegamoles, gigamoles, inGigamoles
@docs micromoles, inMicromoles, millimoles, inMillimoles
@docs centimoles, inCentimoles, decimoles, inDecimoles
@docs kilomoles, inKilomoles, megamoles, inMegamoles, gigamoles, inGigamoles
-}

Expand Down Expand Up @@ -103,6 +105,34 @@ inMillimoles substanceAmount =
inMoles substanceAmount / 1.0e-3


{-| Construct a substance amount from a number of centimoles.
-}
centimoles : Float -> SubstanceAmount
centimoles numCentimoles =
moles (numCentimoles * 1.0e-2)


{-| Convert a substance amount to a number of centimoles.
-}
inCentimoles : SubstanceAmount -> Float
inCentimoles substanceAmount =
inMoles substanceAmount / 1.0e-2


{-| Construct a substance amount from a number of decimoles.
-}
decimoles : Float -> SubstanceAmount
decimoles numDecimoles =
moles (numDecimoles * 1.0e-1)


{-| Convert a substance amount to a number of decimoles.
-}
inDecimoles : SubstanceAmount -> Float
inDecimoles substanceAmount =
inMoles substanceAmount / 1.0e-1


{-| Construct a substance amount from a number of kilomoles.
-}
kilomoles : Float -> SubstanceAmount
Expand Down
11 changes: 11 additions & 0 deletions tests/Tests.elm
Original file line number Diff line number Diff line change
Expand Up @@ -242,9 +242,18 @@ substanceAmount =
, ( nanomoles 1000000
, millimoles 1
)
, ( centimoles 600
, decimoles 60
)
, ( moles 1
, millimoles 1000
)
, ( moles 4
, centimoles 400
)
, ( moles 2
, decimoles 20
)
, ( moles 2000
, kilomoles 2
)
Expand Down Expand Up @@ -575,6 +584,8 @@ conversionsToQuantityAndBack =
, fuzzFloatToQuantityAndBack "nanomoles" SubstanceAmount.nanomoles SubstanceAmount.inNanomoles
, fuzzFloatToQuantityAndBack "micromoles" SubstanceAmount.micromoles SubstanceAmount.inMicromoles
, fuzzFloatToQuantityAndBack "millimoles" SubstanceAmount.millimoles SubstanceAmount.inMillimoles
, fuzzFloatToQuantityAndBack "centimoles" SubstanceAmount.centimoles SubstanceAmount.inCentimoles
, fuzzFloatToQuantityAndBack "decimoles" SubstanceAmount.decimoles SubstanceAmount.inDecimoles
, fuzzFloatToQuantityAndBack "kilomoles" SubstanceAmount.kilomoles SubstanceAmount.inKilomoles
, fuzzFloatToQuantityAndBack "megamoles" SubstanceAmount.megamoles SubstanceAmount.inMegamoles
, fuzzFloatToQuantityAndBack "gigamoles" SubstanceAmount.gigamoles SubstanceAmount.inGigamoles
Expand Down

0 comments on commit 4450c8d

Please sign in to comment.