Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial support for unit of measures #50

Merged
merged 4 commits into from Jan 16, 2024
Merged

Initial support for unit of measures #50

merged 4 commits into from Jan 16, 2024

Conversation

edgarfgp
Copy link
Owner

@edgarfgp edgarfgp commented Jan 13, 2024

[<Test>]
let ``Produces type Unit of measure`` () =
         AnonymousModule() {
             UnitsOfMeasure("cm").xmlDocs([ "Cm, centimeters." ])

             UnitsOfMeasure("ml", MeasurePower([ "cm" ], "3"))
                 .xmlDocs([ "Ml, milliliters." ])

             UnitsOfMeasure("g").xmlDocs([ "Mass, grams." ])
             UnitsOfMeasure("kg").xmlDocs([ "Mass, kilograms." ])
             UnitsOfMeasure("lb").xmlDocs([ "Weight, pounds." ])
             UnitsOfMeasure("m").xmlDocs([ "Distance, meters." ])
             UnitsOfMeasure("cm").xmlDocs([ "Distance, cm" ])
             UnitsOfMeasure("inch").xmlDocs([ "Distance, inches." ])
             UnitsOfMeasure("ft").xmlDocs([ "Distance, feet" ])
             UnitsOfMeasure("s").xmlDocs([ "Time, seconds." ])

             UnitsOfMeasure("N", Tuple([ "kg" ], [ "m" ], MeasurePower([ "s" ], "2")))
                 .xmlDocs([ "Force, Newtons." ])

             UnitsOfMeasure("bar").xmlDocs([ "Pressure, bar." ])

             UnitsOfMeasure("Pa", Tuple([ "N" ], [], MeasurePower([ "m" ], "2")))
                 .xmlDocs([ "Pressure, Pascals" ])

             UnitsOfMeasure("ml").xmlDocs([ "Volume, milliliters." ])

             UnitsOfMeasure("L").xmlDocs([ "Volume, liters." ])
         }

         |> produces
             """
 /// Cm, centimeters.
 [<Measure>]
 type cm
 /// Ml, milliliters.
 [<Measure>]
 type ml = cm^3
 /// Mass, grams.
 [<Measure>]
 type g
 /// Mass, kilograms.
 [<Measure>]
 type kg
 /// Weight, pounds.
 [<Measure>]
 type lb
 /// Distance, meters.
 [<Measure>]
 type m
 /// Distance, cm
 [<Measure>]
 type cm
 /// Distance, inches.
 [<Measure>]
 type inch
 /// Distance, feet
 [<Measure>]
 type ft
 /// Time, seconds.
 [<Measure>]
 type s
 /// Force, Newtons.
 [<Measure>]
 type N = kg m / s^2
 /// Pressure, bar.
 [<Measure>]
 type bar
 /// Pressure, Pascals
 [<Measure>]
 type Pa = N / m^2
 /// Volume, milliliters.
 [<Measure>]
 type ml
 /// Volume, liters.
 [<Measure>]
 type L
 """

@edgarfgp edgarfgp merged commit 5575bf9 into main Jan 16, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant