UPDATE: Update README to include a minimal ROADMAD

This commit is contained in:
Nicolás Hatcher
2023-12-01 08:53:12 +01:00
parent c5b8efd83d
commit c63acd72d0
8 changed files with 229 additions and 11 deletions

View File

@@ -47,5 +47,6 @@ mod test_number_format;
mod test_escape_quotes;
mod test_fn_type;
mod test_get_cell_content;
mod test_percentage;
mod test_today;

View File

@@ -0,0 +1,71 @@
#![allow(clippy::unwrap_used)]
use crate::expressions::utils::{LAST_COLUMN, LAST_ROW};
use crate::test::util::new_empty_model;
#[test]
fn test_empty_model() {
let mut model = new_empty_model();
assert_eq!(model.get_frozen_rows(0), Ok(0));
assert_eq!(model.get_frozen_columns(0), Ok(0));
let e = model.set_frozen_rows(0, 3);
assert!(e.is_ok());
assert_eq!(model.get_frozen_rows(0), Ok(3));
assert_eq!(model.get_frozen_columns(0), Ok(0));
let e = model.set_frozen_columns(0, 53);
assert!(e.is_ok());
assert_eq!(model.get_frozen_rows(0), Ok(3));
assert_eq!(model.get_frozen_columns(0), Ok(53));
// Set them back to zero
let e = model.set_frozen_rows(0, 0);
assert!(e.is_ok());
let e = model.set_frozen_columns(0, 0);
assert!(e.is_ok());
assert_eq!(model.get_frozen_rows(0), Ok(0));
assert_eq!(model.get_frozen_columns(0), Ok(0));
}
#[test]
fn test_invalid_sheet() {
let mut model = new_empty_model();
assert_eq!(model.get_frozen_rows(1), Err("Invalid sheet".to_string()));
assert_eq!(
model.get_frozen_columns(3),
Err("Invalid sheet".to_string())
);
assert_eq!(
model.set_frozen_rows(3, 3),
Err("Invalid sheet".to_string())
);
assert_eq!(
model.set_frozen_columns(3, 5),
Err("Invalid sheet".to_string())
);
}
#[test]
fn test_invalid_rows_columns() {
let mut model = new_empty_model();
assert_eq!(
model.set_frozen_rows(0, -3),
Err("Frozen rows cannot be negative".to_string())
);
assert_eq!(
model.set_frozen_columns(0, -5),
Err("Frozen columns cannot be negative".to_string())
);
assert_eq!(
model.set_frozen_rows(0, LAST_ROW),
Err("Too many rows".to_string())
);
assert_eq!(
model.set_frozen_columns(0, LAST_COLUMN),
Err("Too many columns".to_string())
);
}

View File

@@ -0,0 +1,18 @@
#![allow(clippy::unwrap_used)]
use crate::test::util::new_empty_model;
#[test]
fn test_formulas() {
let mut model = new_empty_model();
model.set_user_input(0, 1, 1, "$100.348".to_string());
model.set_user_input(0, 1, 2, "=ISNUMBER(A1)".to_string());
model.evaluate();
assert_eq!(model.get_cell_content(0, 1, 1).unwrap(), "100.348");
assert_eq!(model.get_cell_content(0, 1, 2).unwrap(), "=ISNUMBER(A1)");
assert_eq!(model.get_cell_content(0, 5, 5).unwrap(), "");
assert!(model.get_cell_content(1, 1, 2).is_err());
}