Add support for US fluid ounces
This commit is contained in:
parent
1c3315d19d
commit
1639748c68
|
@ -123,6 +123,11 @@ fn get_conversion(unit: NonMetric) -> Conversion {
|
|||
from: imperial_gallon_from,
|
||||
to: MetricQuantity { amount: imperial_gallon_to, unit: Metric::Litre },
|
||||
},
|
||||
NonMetric::USFluidOunce => Conversion {
|
||||
offset: 0.0,
|
||||
from: 16.0 * 2.0 * 4.0 * us_gallon_from,
|
||||
to: MetricQuantity { amount: us_gallon_to, unit: Metric::Litre },
|
||||
},
|
||||
NonMetric::USCup => Conversion {
|
||||
offset: 0.0,
|
||||
from: 2.0 * 2.0 * 4.0 * us_gallon_from,
|
||||
|
@ -218,6 +223,7 @@ mod test {
|
|||
Test(NonMetric::ImperialPint, 0.56826125),
|
||||
Test(NonMetric::ImperialQuart, 1.1365225),
|
||||
Test(NonMetric::ImperialGallon, 4.54609),
|
||||
Test(NonMetric::USFluidOunce, 0.0295735295625),
|
||||
Test(NonMetric::USCup, 0.2365882365),
|
||||
Test(NonMetric::USLiquidPint, 0.473176473),
|
||||
Test(NonMetric::USLiquidQuart, 0.946352946),
|
||||
|
|
|
@ -89,6 +89,7 @@ fn unit_to_name(unit: NonMetric) -> &'static str {
|
|||
NonMetric::ImperialPint => "imperial pints",
|
||||
NonMetric::ImperialQuart => "imperial quarts",
|
||||
NonMetric::ImperialGallon => "imperial gallons",
|
||||
NonMetric::USFluidOunce => "US fluid ounces",
|
||||
NonMetric::USCup => "US cups",
|
||||
NonMetric::USLiquidPint => "US liquid pints",
|
||||
NonMetric::USLiquidQuart => "US liquid quarts",
|
||||
|
@ -139,6 +140,7 @@ mod test {
|
|||
assert_eq!(run("1 imp pt"), Ok("5.683 dl".to_string()));
|
||||
assert_eq!(run("1 imp qt"), Ok("1.137 l".to_string()));
|
||||
assert_eq!(run("1 imp gal"), Ok("4.546 l".to_string()));
|
||||
assert_eq!(run("1 US fl oz"), Ok("2.957 cl".to_string()));
|
||||
assert_eq!(run("1 US cup"), Ok("2.366 dl".to_string()));
|
||||
assert_eq!(run("1 US pt"), Ok("4.732 dl".to_string()));
|
||||
assert_eq!(run("1 US qt"), Ok("9.464 dl".to_string()));
|
||||
|
|
22
src/parse.rs
22
src/parse.rs
|
@ -205,6 +205,17 @@ fn parse_unit(input: String) -> Result<NonMetric, ParseError> {
|
|||
"imperial gallons" => Ok(NonMetric::ImperialGallon),
|
||||
"imp gal" => Ok(NonMetric::ImperialGallon),
|
||||
|
||||
"US fluid ounce" => Ok(NonMetric::USFluidOunce),
|
||||
"US fluid ounces" => Ok(NonMetric::USFluidOunce),
|
||||
"US fl oz" => Ok(NonMetric::USFluidOunce),
|
||||
"US fl. oz." => Ok(NonMetric::USFluidOunce),
|
||||
"US oz. fl." => Ok(NonMetric::USFluidOunce),
|
||||
"us fluid ounce" => Ok(NonMetric::USFluidOunce),
|
||||
"us fluid ounces" => Ok(NonMetric::USFluidOunce),
|
||||
"us fl oz" => Ok(NonMetric::USFluidOunce),
|
||||
"us fl. oz." => Ok(NonMetric::USFluidOunce),
|
||||
"us oz. fl." => Ok(NonMetric::USFluidOunce),
|
||||
|
||||
"US cup" => Ok(NonMetric::USCup),
|
||||
"US cups" => Ok(NonMetric::USCup),
|
||||
"us cup" => Ok(NonMetric::USCup),
|
||||
|
@ -495,6 +506,17 @@ mod test {
|
|||
assert_eq!(parse_unit("imperial gallons".to_string()), Ok(NonMetric::ImperialGallon));
|
||||
assert_eq!(parse_unit("imp gal".to_string()), Ok(NonMetric::ImperialGallon));
|
||||
|
||||
assert_eq!(parse_unit("US fluid ounce".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("US fluid ounces".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("US fl oz".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("US fl. oz.".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("US oz. fl.".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("us fluid ounce".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("us fluid ounces".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("us fl oz".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("us fl. oz.".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
assert_eq!(parse_unit("us oz. fl.".to_string()), Ok(NonMetric::USFluidOunce));
|
||||
|
||||
assert_eq!(parse_unit("US cup".to_string()), Ok(NonMetric::USCup));
|
||||
assert_eq!(parse_unit("US cups".to_string()), Ok(NonMetric::USCup));
|
||||
assert_eq!(parse_unit("us cup".to_string()), Ok(NonMetric::USCup));
|
||||
|
|
|
@ -34,6 +34,7 @@ pub enum NonMetric {
|
|||
ImperialPint,
|
||||
ImperialQuart,
|
||||
ImperialGallon,
|
||||
USFluidOunce,
|
||||
USCup,
|
||||
USLiquidPint,
|
||||
USLiquidQuart,
|
||||
|
|
Loading…
Reference in New Issue