core: tweaked flt2dec to match the casing of the older formatting code.

This commit is contained in:
Kang Seonghoon 2015-04-21 19:55:43 +09:00
parent 5aa9f38285
commit f9bfda0a6f
2 changed files with 50 additions and 50 deletions

View File

@ -396,10 +396,10 @@ fn determine_sign(sign: Sign, decoded: &FullDecoded, negative: bool) -> &'static
/// Formats given floating point number into the decimal form with at least
/// given number of fractional digits. The result is stored to the supplied parts
/// array while utilizing given byte buffer as a scratch. `upper` is only used to
/// determine the case of non-finite values, i.e. `inf` and `nan`. The first part
/// to be rendered is always a `Part::Sign` (which can be an empty string
/// if no sign is rendered).
/// array while utilizing given byte buffer as a scratch. `upper` is currently
/// unused but left for the future decision to change the case of non-finite values,
/// i.e. `inf` and `nan`. The first part to be rendered is always a `Part::Sign`
/// (which can be an empty string if no sign is rendered).
///
/// `format_shortest` should be the underlying digit-generation function.
/// You probably would want `strategy::grisu::format_shortest` for this.
@ -413,7 +413,7 @@ fn determine_sign(sign: Sign, decoded: &FullDecoded, negative: bool) -> &'static
/// There should be at least 5 parts available, due to the worst case like
/// `[+][0.][0000][45][0000]` with `frac_digits = 10`.
pub fn to_shortest_str<'a, T, F>(mut format_shortest: F, v: T,
sign: Sign, frac_digits: usize, upper: bool,
sign: Sign, frac_digits: usize, _upper: bool,
buf: &'a mut [u8], parts: &'a mut [Part<'a>]) -> Formatted<'a>
where T: DecodableFloat, F: FnMut(&Decoded, &mut [u8]) -> (usize, i16) {
assert!(parts.len() >= 4);
@ -423,11 +423,11 @@ pub fn to_shortest_str<'a, T, F>(mut format_shortest: F, v: T,
let sign = determine_sign(sign, &full_decoded, negative);
match full_decoded {
FullDecoded::Nan => {
parts[0] = Part::Copy(if upper { b"NAN" } else { b"nan" });
parts[0] = Part::Copy(b"NaN");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Infinite => {
parts[0] = Part::Copy(if upper { b"INF" } else { b"inf" });
parts[0] = Part::Copy(b"inf");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Zero => {
@ -479,11 +479,11 @@ pub fn to_shortest_exp_str<'a, T, F>(mut format_shortest: F, v: T,
let sign = determine_sign(sign, &full_decoded, negative);
match full_decoded {
FullDecoded::Nan => {
parts[0] = Part::Copy(if upper { b"NAN" } else { b"nan" });
parts[0] = Part::Copy(b"NaN");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Infinite => {
parts[0] = Part::Copy(if upper { b"INF" } else { b"inf" });
parts[0] = Part::Copy(b"inf");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Zero => {
@ -557,11 +557,11 @@ pub fn to_exact_exp_str<'a, T, F>(mut format_exact: F, v: T,
let sign = determine_sign(sign, &full_decoded, negative);
match full_decoded {
FullDecoded::Nan => {
parts[0] = Part::Copy(if upper { b"NAN" } else { b"nan" });
parts[0] = Part::Copy(b"NaN");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Infinite => {
parts[0] = Part::Copy(if upper { b"INF" } else { b"inf" });
parts[0] = Part::Copy(b"inf");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Zero => {
@ -589,10 +589,10 @@ pub fn to_exact_exp_str<'a, T, F>(mut format_exact: F, v: T,
/// Formats given floating point number into the decimal form with exactly
/// given number of fractional digits. The result is stored to the supplied parts
/// array while utilizing given byte buffer as a scratch. `upper` is only used to
/// determine the case of non-finite values, i.e. `inf` and `nan`. The first part
/// to be rendered is always a `Part::Sign` (which can be an empty string
/// if no sign is rendered).
/// array while utilizing given byte buffer as a scratch. `upper` is currently
/// unused but left for the future decision to change the case of non-finite values,
/// i.e. `inf` and `nan`. The first part to be rendered is always a `Part::Sign`
/// (which can be an empty string if no sign is rendered).
///
/// `format_exact` should be the underlying digit-generation function.
/// You probably would want `strategy::grisu::format_exact` for this.
@ -603,7 +603,7 @@ pub fn to_exact_exp_str<'a, T, F>(mut format_exact: F, v: T,
/// There should be at least 5 parts available, due to the worst case like
/// `[+][0.][0000][45][0000]` with `frac_digits = 10`.
pub fn to_exact_fixed_str<'a, T, F>(mut format_exact: F, v: T,
sign: Sign, frac_digits: usize, upper: bool,
sign: Sign, frac_digits: usize, _upper: bool,
buf: &'a mut [u8], parts: &'a mut [Part<'a>]) -> Formatted<'a>
where T: DecodableFloat, F: FnMut(&Decoded, &mut [u8], i16) -> (usize, i16) {
assert!(parts.len() >= 4);
@ -612,11 +612,11 @@ pub fn to_exact_fixed_str<'a, T, F>(mut format_exact: F, v: T,
let sign = determine_sign(sign, &full_decoded, negative);
match full_decoded {
FullDecoded::Nan => {
parts[0] = Part::Copy(if upper { b"NAN" } else { b"nan" });
parts[0] = Part::Copy(b"NaN");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Infinite => {
parts[0] = Part::Copy(if upper { b"INF" } else { b"inf" });
parts[0] = Part::Copy(b"inf");
Formatted { sign: sign, parts: &parts[..1] }
}
FullDecoded::Zero => {

View File

@ -544,17 +544,17 @@ pub fn to_shortest_str_test<F>(mut f_: F)
assert_eq!(to_string(f, -0.0, MinusPlusRaw, 8, true), "-0.00000000");
assert_eq!(to_string(f, 1.0/0.0, Minus, 0, false), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, 0, true), "INF");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, 0, true), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlus, 0, false), "+inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, 0, true), "+INF");
assert_eq!(to_string(f, 0.0/0.0, Minus, 0, false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, 1, true), "NAN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, 8, false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, 64, true), "NAN");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, 0, true), "+inf");
assert_eq!(to_string(f, 0.0/0.0, Minus, 0, false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, 1, true), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, 8, false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, 64, true), "NaN");
assert_eq!(to_string(f, -1.0/0.0, Minus, 0, false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, 1, true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, 1, true), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlus, 8, false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, 64, true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, 64, true), "-inf");
assert_eq!(to_string(f, 3.14, Minus, 0, false), "3.14");
assert_eq!(to_string(f, 3.14, MinusRaw, 0, false), "3.14");
@ -638,17 +638,17 @@ pub fn to_shortest_exp_str_test<F>(mut f_: F)
assert_eq!(to_string(f, -0.0, MinusPlusRaw, ( 5, 9), false), "-0e0");
assert_eq!(to_string(f, 1.0/0.0, Minus, (-4, 16), false), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, (-4, 16), true), "INF");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, (-4, 16), true), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlus, (-4, 16), false), "+inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, (-4, 16), true), "+INF");
assert_eq!(to_string(f, 0.0/0.0, Minus, ( 0, 0), false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, ( 0, 0), true), "NAN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, (-9, -5), false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, ( 5, 9), true), "NAN");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, (-4, 16), true), "+inf");
assert_eq!(to_string(f, 0.0/0.0, Minus, ( 0, 0), false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, ( 0, 0), true), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, (-9, -5), false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, ( 5, 9), true), "NaN");
assert_eq!(to_string(f, -1.0/0.0, Minus, ( 0, 0), false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, ( 0, 0), true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, ( 0, 0), true), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlus, (-9, -5), false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, ( 5, 9), true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, ( 5, 9), true), "-inf");
assert_eq!(to_string(f, 3.14, Minus, (-4, 16), false), "3.14");
assert_eq!(to_string(f, 3.14, MinusRaw, (-4, 16), false), "3.14");
@ -752,17 +752,17 @@ pub fn to_exact_exp_str_test<F>(mut f_: F)
assert_eq!(to_string(f, -0.0, MinusPlusRaw, 8, false), "-0.0000000e0");
assert_eq!(to_string(f, 1.0/0.0, Minus, 1, false), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, 1, true), "INF");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, 1, true), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlus, 1, false), "+inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, 1, true), "+INF");
assert_eq!(to_string(f, 0.0/0.0, Minus, 8, false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, 8, true), "NAN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, 8, false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, 8, true), "NAN");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, 1, true), "+inf");
assert_eq!(to_string(f, 0.0/0.0, Minus, 8, false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, 8, true), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, 8, false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, 8, true), "NaN");
assert_eq!(to_string(f, -1.0/0.0, Minus, 64, false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, 64, true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, 64, true), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlus, 64, false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, 64, true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, 64, true), "-inf");
assert_eq!(to_string(f, 3.14, Minus, 1, true), "3E0");
assert_eq!(to_string(f, 3.14, MinusRaw, 1, false), "3e0");
@ -973,17 +973,17 @@ pub fn to_exact_fixed_str_test<F>(mut f_: F)
assert_eq!(to_string(f, -0.0, MinusPlusRaw, 8, true), "-0.00000000");
assert_eq!(to_string(f, 1.0/0.0, Minus, 0, false), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, 1, true), "INF");
assert_eq!(to_string(f, 1.0/0.0, MinusRaw, 1, true), "inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlus, 8, false), "+inf");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, 64, true), "+INF");
assert_eq!(to_string(f, 0.0/0.0, Minus, 0, false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, 1, true), "NAN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, 8, false), "nan");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, 64, true), "NAN");
assert_eq!(to_string(f, 1.0/0.0, MinusPlusRaw, 64, true), "+inf");
assert_eq!(to_string(f, 0.0/0.0, Minus, 0, false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusRaw, 1, true), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlus, 8, false), "NaN");
assert_eq!(to_string(f, 0.0/0.0, MinusPlusRaw, 64, true), "NaN");
assert_eq!(to_string(f, -1.0/0.0, Minus, 0, false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, 1, true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusRaw, 1, true), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlus, 8, false), "-inf");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, 64, true), "-INF");
assert_eq!(to_string(f, -1.0/0.0, MinusPlusRaw, 64, true), "-inf");
assert_eq!(to_string(f, 3.14, Minus, 0, false), "3");
assert_eq!(to_string(f, 3.14, MinusRaw, 0, false), "3");