a1_notation 0.6.3

A package for converting to and from A1 spreadsheet notation
Documentation
use super::Row;
use std::fmt;

impl fmt::Display for Row {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let row_num = self.y + 1;
        let abs_char = if self.absolute { "$" } else { "" };

        write!(f, "{abs_char}{row_num}")
    }
}

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

    #[test]
    fn display_relative() {
        assert_eq!(Row::new(0).to_string(), "1");
        assert_eq!(Row::new(15).to_string(), "16");
        assert_eq!(Row::new(42).to_string(), "43");
        assert_eq!(Row::new(100).to_string(), "101");
    }

    #[test]
    fn display_absolute() {
        assert_eq!(
            Row {
                y: 0,
                absolute: true
            }
            .to_string(),
            "$1"
        );
        assert_eq!(
            Row {
                y: 10,
                absolute: true
            }
            .to_string(),
            "$11"
        );
    }
}