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),
|
||||
"yd" | "yard" | "yards" => Token::Unit(Yard),
|
||||
"mi" | "mile" | "miles" => Token::Unit(Mile),
|
||||
"marathon" | "marathons" => Token::Unit(Marathon),
|
||||
"nmi" => Token::Unit(NauticalMile),
|
||||
"nautical" => {
|
||||
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("0.5 marathon", vec![numtok!(0.5), Token::Unit(Marathon)]);
|
||||
run_lex("100 nmi", vec![numtok!(100), Token::Unit(NauticalMile)]);
|
||||
run_lex("101 nautical miles", vec![numtok!(101), Token::Unit(NauticalMile)]);
|
||||
run_lex("2 lightyears", vec![numtok!(2), Token::Unit(LightYear)]);
|
||||
|
||||
@ -101,6 +101,7 @@ create_units!(
|
||||
Yard: (Length, d128!(914.4)),
|
||||
Mile: (Length, d128!(1609344)),
|
||||
// 1-dimensional only:
|
||||
Marathon: (Length, d128!(42195000)),
|
||||
NauticalMile: (Length, d128!(1852000)),
|
||||
LightYear: (Length, d128!(9460730472580800000)),
|
||||
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(3.0, Foot, Yard), 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(9460730472580800.0, Meter, LightYear), 1.0);
|
||||
assert_float_eq!(convert_test(299792458.0, Meter, LightSecond), 1.0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user