zero_pad/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use std::fmt::Display;

pub fn zero_pad<T: Display>(num: T, min_length: usize) -> String {
    format!("{:0>width$}", num, width = min_length)
}


#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn one_digit() {
        assert_eq!(zero_pad(1, 6), "000001");
    }

    #[test]
    fn two_digits() {
        assert_eq!(zero_pad(23, 6), "000023");
    }

    #[test]
    fn no_need() {
        assert_eq!(zero_pad(123456, 6), "123456");
    }

    #[test]
    fn extra() {
        assert_eq!(zero_pad(1234567, 6), "1234567");
    }
}