Add marathon
This commit is contained in:
parent
17db26c685
commit
de79887331
@ -240,6 +240,7 @@ fn parse_word(word: &str, lexer: &mut Lexer) -> Result<(), String> {
|
|||||||
"ft" | "foot" | "feet" => Token::Unit(Foot),
|
"ft" | "foot" | "feet" => Token::Unit(Foot),
|
||||||
"yd" | "yard" | "yards" => Token::Unit(Yard),
|
"yd" | "yard" | "yards" => Token::Unit(Yard),
|
||||||
"mi" | "mile" | "miles" => Token::Unit(Mile),
|
"mi" | "mile" | "miles" => Token::Unit(Mile),
|
||||||
|
"marathon" | "marathons" => Token::Unit(Marathon),
|
||||||
"nmi" => Token::Unit(NauticalMile),
|
"nmi" => Token::Unit(NauticalMile),
|
||||||
"nautical" => {
|
"nautical" => {
|
||||||
match read_word("", lexer).as_str() {
|
match read_word("", lexer).as_str() {
|
||||||
@ -980,6 +981,7 @@ mod tests {
|
|||||||
};
|
};
|
||||||
|
|
||||||
run_lex("88 kilometres * 2", vec![numtok!(88), Token::Unit(Kilometer), Token::Operator(Multiply), numtok!(2)]);
|
run_lex("88 kilometres * 2", vec![numtok!(88), Token::Unit(Kilometer), Token::Operator(Multiply), numtok!(2)]);
|
||||||
|
run_lex("0.5 marathon", vec![numtok!(0.5), Token::Unit(Marathon)]);
|
||||||
run_lex("100 nmi", vec![numtok!(100), Token::Unit(NauticalMile)]);
|
run_lex("100 nmi", vec![numtok!(100), Token::Unit(NauticalMile)]);
|
||||||
run_lex("101 nautical miles", vec![numtok!(101), Token::Unit(NauticalMile)]);
|
run_lex("101 nautical miles", vec![numtok!(101), Token::Unit(NauticalMile)]);
|
||||||
run_lex("2 lightyears", vec![numtok!(2), Token::Unit(LightYear)]);
|
run_lex("2 lightyears", vec![numtok!(2), Token::Unit(LightYear)]);
|
||||||
|
|||||||
@ -101,6 +101,7 @@ create_units!(
|
|||||||
Yard: (Length, d128!(914.4)),
|
Yard: (Length, d128!(914.4)),
|
||||||
Mile: (Length, d128!(1609344)),
|
Mile: (Length, d128!(1609344)),
|
||||||
// 1-dimensional only:
|
// 1-dimensional only:
|
||||||
|
Marathon: (Length, d128!(42195000)),
|
||||||
NauticalMile: (Length, d128!(1852000)),
|
NauticalMile: (Length, d128!(1852000)),
|
||||||
LightYear: (Length, d128!(9460730472580800000)),
|
LightYear: (Length, d128!(9460730472580800000)),
|
||||||
LightSecond: (Length, d128!(299792458000)),
|
LightSecond: (Length, d128!(299792458000)),
|
||||||
@ -845,6 +846,7 @@ mod tests {
|
|||||||
assert_float_eq!(convert_test(12.0, Inch, Foot), 1.0);
|
assert_float_eq!(convert_test(12.0, Inch, Foot), 1.0);
|
||||||
assert_float_eq!(convert_test(3.0, Foot, Yard), 1.0);
|
assert_float_eq!(convert_test(3.0, Foot, Yard), 1.0);
|
||||||
assert_float_eq!(convert_test(1760.0, Yard, Mile), 1.0);
|
assert_float_eq!(convert_test(1760.0, Yard, Mile), 1.0);
|
||||||
|
assert_float_eq!(convert_test(42195.0, Meter, Marathon), 1.0);
|
||||||
assert_float_eq!(convert_test(1852.0, Meter, NauticalMile), 1.0);
|
assert_float_eq!(convert_test(1852.0, Meter, NauticalMile), 1.0);
|
||||||
assert_float_eq!(convert_test(9460730472580800.0, Meter, LightYear), 1.0);
|
assert_float_eq!(convert_test(9460730472580800.0, Meter, LightYear), 1.0);
|
||||||
assert_float_eq!(convert_test(299792458.0, Meter, LightSecond), 1.0);
|
assert_float_eq!(convert_test(299792458.0, Meter, LightSecond), 1.0);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user