Add support for US teaspoons
This commit is contained in:
parent
c16befe55c
commit
e2e1349913
4 changed files with 35 additions and 0 deletions
|
@ -123,6 +123,11 @@ fn get_conversion(unit: NonMetric) -> Conversion {
|
||||||
from: imperial_gallon_from,
|
from: imperial_gallon_from,
|
||||||
to: MetricQuantity { amount: imperial_gallon_to, unit: Metric::Litre },
|
to: MetricQuantity { amount: imperial_gallon_to, unit: Metric::Litre },
|
||||||
},
|
},
|
||||||
|
NonMetric::USTeaspoon => Conversion {
|
||||||
|
offset: 0.0,
|
||||||
|
from: 6.0 * 16.0 * 2.0 * 4.0 * us_gallon_from,
|
||||||
|
to: MetricQuantity { amount: us_gallon_to, unit: Metric::Litre },
|
||||||
|
},
|
||||||
NonMetric::USTablespoon => Conversion {
|
NonMetric::USTablespoon => Conversion {
|
||||||
offset: 0.0,
|
offset: 0.0,
|
||||||
from: 2.0 * 16.0 * 2.0 * 4.0 * us_gallon_from,
|
from: 2.0 * 16.0 * 2.0 * 4.0 * us_gallon_from,
|
||||||
|
@ -228,6 +233,7 @@ mod test {
|
||||||
Test(NonMetric::ImperialPint, 0.56826125),
|
Test(NonMetric::ImperialPint, 0.56826125),
|
||||||
Test(NonMetric::ImperialQuart, 1.1365225),
|
Test(NonMetric::ImperialQuart, 1.1365225),
|
||||||
Test(NonMetric::ImperialGallon, 4.54609),
|
Test(NonMetric::ImperialGallon, 4.54609),
|
||||||
|
Test(NonMetric::USTeaspoon, 0.00492892159375),
|
||||||
Test(NonMetric::USTablespoon, 0.01478676478125),
|
Test(NonMetric::USTablespoon, 0.01478676478125),
|
||||||
Test(NonMetric::USFluidOunce, 0.0295735295625),
|
Test(NonMetric::USFluidOunce, 0.0295735295625),
|
||||||
Test(NonMetric::USCup, 0.2365882365),
|
Test(NonMetric::USCup, 0.2365882365),
|
||||||
|
|
|
@ -89,6 +89,7 @@ fn unit_to_name(unit: NonMetric) -> &'static str {
|
||||||
NonMetric::ImperialPint => "imperial pints",
|
NonMetric::ImperialPint => "imperial pints",
|
||||||
NonMetric::ImperialQuart => "imperial quarts",
|
NonMetric::ImperialQuart => "imperial quarts",
|
||||||
NonMetric::ImperialGallon => "imperial gallons",
|
NonMetric::ImperialGallon => "imperial gallons",
|
||||||
|
NonMetric::USTeaspoon => "US teaspoons",
|
||||||
NonMetric::USTablespoon => "US tablespoons",
|
NonMetric::USTablespoon => "US tablespoons",
|
||||||
NonMetric::USFluidOunce => "US fluid ounces",
|
NonMetric::USFluidOunce => "US fluid ounces",
|
||||||
NonMetric::USCup => "US cups",
|
NonMetric::USCup => "US cups",
|
||||||
|
@ -141,6 +142,7 @@ mod test {
|
||||||
assert_eq!(run("1 imp pt"), Ok("5.683 dl".to_string()));
|
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 qt"), Ok("1.137 l".to_string()));
|
||||||
assert_eq!(run("1 imp gal"), Ok("4.546 l".to_string()));
|
assert_eq!(run("1 imp gal"), Ok("4.546 l".to_string()));
|
||||||
|
assert_eq!(run("1 tsp"), Ok("4.929 ml".to_string()));
|
||||||
assert_eq!(run("1 Tbsp"), Ok("1.479 cl".to_string()));
|
assert_eq!(run("1 Tbsp"), Ok("1.479 cl".to_string()));
|
||||||
assert_eq!(run("1 US fl oz"), Ok("2.957 cl".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 cup"), Ok("2.366 dl".to_string()));
|
||||||
|
|
26
src/parse.rs
26
src/parse.rs
|
@ -205,6 +205,19 @@ fn parse_unit(input: String) -> Result<NonMetric, ParseError> {
|
||||||
"imperial gallons" => Ok(NonMetric::ImperialGallon),
|
"imperial gallons" => Ok(NonMetric::ImperialGallon),
|
||||||
"imp gal" => Ok(NonMetric::ImperialGallon),
|
"imp gal" => Ok(NonMetric::ImperialGallon),
|
||||||
|
|
||||||
|
"US teaspoon" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"US teaspoons" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"US tsp." => Ok(NonMetric::USTeaspoon),
|
||||||
|
"US tsp" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"us teaspoon" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"us teaspoons" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"us tsp." => Ok(NonMetric::USTeaspoon),
|
||||||
|
"us tsp" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"teaspoon" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"teaspoons" => Ok(NonMetric::USTeaspoon),
|
||||||
|
"tsp." => Ok(NonMetric::USTeaspoon),
|
||||||
|
"tsp" => Ok(NonMetric::USTeaspoon),
|
||||||
|
|
||||||
"US tablespoon" => Ok(NonMetric::USTablespoon),
|
"US tablespoon" => Ok(NonMetric::USTablespoon),
|
||||||
"US tablespoons" => Ok(NonMetric::USTablespoon),
|
"US tablespoons" => Ok(NonMetric::USTablespoon),
|
||||||
"US Tbsp." => Ok(NonMetric::USTablespoon),
|
"US Tbsp." => Ok(NonMetric::USTablespoon),
|
||||||
|
@ -521,6 +534,19 @@ mod test {
|
||||||
assert_eq!(parse_unit("imperial gallons".to_string()), Ok(NonMetric::ImperialGallon));
|
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("imp gal".to_string()), Ok(NonMetric::ImperialGallon));
|
||||||
|
|
||||||
|
assert_eq!(parse_unit("US teaspoon".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("US teaspoons".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("US tsp.".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("US tsp".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("us teaspoon".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("us teaspoons".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("us tsp.".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("us tsp".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("teaspoon".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("teaspoons".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("tsp.".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
assert_eq!(parse_unit("tsp".to_string()), Ok(NonMetric::USTeaspoon));
|
||||||
|
|
||||||
assert_eq!(parse_unit("US tablespoon".to_string()), Ok(NonMetric::USTablespoon));
|
assert_eq!(parse_unit("US tablespoon".to_string()), Ok(NonMetric::USTablespoon));
|
||||||
assert_eq!(parse_unit("US tablespoons".to_string()), Ok(NonMetric::USTablespoon));
|
assert_eq!(parse_unit("US tablespoons".to_string()), Ok(NonMetric::USTablespoon));
|
||||||
assert_eq!(parse_unit("US Tbsp.".to_string()), Ok(NonMetric::USTablespoon));
|
assert_eq!(parse_unit("US Tbsp.".to_string()), Ok(NonMetric::USTablespoon));
|
||||||
|
|
|
@ -34,6 +34,7 @@ pub enum NonMetric {
|
||||||
ImperialPint,
|
ImperialPint,
|
||||||
ImperialQuart,
|
ImperialQuart,
|
||||||
ImperialGallon,
|
ImperialGallon,
|
||||||
|
USTeaspoon,
|
||||||
USTablespoon,
|
USTablespoon,
|
||||||
USFluidOunce,
|
USFluidOunce,
|
||||||
USCup,
|
USCup,
|
||||||
|
|
Loading…
Reference in a new issue