mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-29 12:07:46 +00:00
uucore/format: add docs and tests for resolve_astrick_ methods
This commit is contained in:
parent
6061b67601
commit
64ce76bdf1
1 changed files with 111 additions and 0 deletions
|
@ -474,6 +474,8 @@ impl Spec {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Determine the width, potentially getting a value from args
|
||||||
|
/// Returns the non-negative width and whether the value should be left-aligned.
|
||||||
fn resolve_asterisk_width<'a>(
|
fn resolve_asterisk_width<'a>(
|
||||||
option: Option<CanAsterisk<usize>>,
|
option: Option<CanAsterisk<usize>>,
|
||||||
mut args: impl ArgumentIter<'a>,
|
mut args: impl ArgumentIter<'a>,
|
||||||
|
@ -492,6 +494,8 @@ fn resolve_asterisk_width<'a>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Determines the precision, which should (if defined)
|
||||||
|
/// be a non-negative number.
|
||||||
fn resolve_asterisk_precision<'a>(
|
fn resolve_asterisk_precision<'a>(
|
||||||
option: Option<CanAsterisk<usize>>,
|
option: Option<CanAsterisk<usize>>,
|
||||||
mut args: impl ArgumentIter<'a>,
|
mut args: impl ArgumentIter<'a>,
|
||||||
|
@ -548,3 +552,110 @@ fn eat_number(rest: &mut &[u8], index: &mut usize) -> Option<usize> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
mod resolve_asterisk_width {
|
||||||
|
use super::*;
|
||||||
|
use crate::format::FormatArgument;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn no_width() {
|
||||||
|
assert_eq!(None, resolve_asterisk_width(None, Vec::new().iter()));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn fixed_width() {
|
||||||
|
assert_eq!(
|
||||||
|
Some((42, false)),
|
||||||
|
resolve_asterisk_width(Some(CanAsterisk::Fixed(42)), Vec::new().iter())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn asterisks_with_numbers() {
|
||||||
|
assert_eq!(
|
||||||
|
Some((42, false)),
|
||||||
|
resolve_asterisk_width(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::SignedInt(42)].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
Some((42, false)),
|
||||||
|
resolve_asterisk_width(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::Unparsed("42".to_string())].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
Some((42, true)),
|
||||||
|
resolve_asterisk_width(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::SignedInt(-42)].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
Some((42, true)),
|
||||||
|
resolve_asterisk_width(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::Unparsed("-42".to_string())].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mod resolve_asterisk_precision {
|
||||||
|
use super::*;
|
||||||
|
use crate::format::FormatArgument;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn no_width() {
|
||||||
|
assert_eq!(None, resolve_asterisk_precision(None, Vec::new().iter()));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn fixed_width() {
|
||||||
|
assert_eq!(
|
||||||
|
Some(42),
|
||||||
|
resolve_asterisk_precision(Some(CanAsterisk::Fixed(42)), Vec::new().iter())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn asterisks_with_numbers() {
|
||||||
|
assert_eq!(
|
||||||
|
Some(42),
|
||||||
|
resolve_asterisk_precision(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::SignedInt(42)].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
Some(42),
|
||||||
|
resolve_asterisk_precision(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::Unparsed("42".to_string())].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
Some(0),
|
||||||
|
resolve_asterisk_precision(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::SignedInt(-42)].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
Some(0),
|
||||||
|
resolve_asterisk_precision(
|
||||||
|
Some(CanAsterisk::Asterisk),
|
||||||
|
vec![FormatArgument::Unparsed("-42".to_string())].iter()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue