Files
IronCalc/base/src/test/util.rs
Nicolás Hatcher df0aa51d14 FIX: Adds some tests
2024-11-27 22:55:39 +01:00

54 lines
1.9 KiB
Rust

#![allow(clippy::unwrap_used)]
use crate::expressions::types::CellReferenceIndex;
use crate::model::Model;
use crate::types::Cell;
pub fn new_empty_model() -> Model {
Model::new_empty("model", "en", "UTC").unwrap()
}
impl Model {
pub fn _parse_reference(&self, cell: &str) -> CellReferenceIndex {
if cell.contains('!') {
self.parse_reference(cell).unwrap()
} else {
self.parse_reference(&format!("Sheet1!{}", cell)).unwrap()
}
}
pub fn _set(&mut self, cell: &str, value: &str) {
let cell_reference = self._parse_reference(cell);
let column = cell_reference.column;
let row = cell_reference.row;
self.set_user_input(cell_reference.sheet, row, column, value.to_string())
.unwrap();
}
pub fn _has_formula(&self, cell: &str) -> bool {
self._get_formula_opt(cell).is_some()
}
pub fn _get_formula(&self, cell: &str) -> String {
self._get_formula_opt(cell).unwrap_or_default()
}
fn _get_formula_opt(&self, cell: &str) -> Option<String> {
let cell_reference = self._parse_reference(cell);
let column = cell_reference.column;
let row = cell_reference.row;
self.get_cell_formula(cell_reference.sheet, row, column)
.unwrap()
}
pub fn _get_text_at(&self, sheet: u32, row: i32, column: i32) -> String {
self.get_formatted_cell_value(sheet, row, column).unwrap()
}
pub fn _get_text(&self, cell: &str) -> String {
let CellReferenceIndex { sheet, row, column } = self._parse_reference(cell);
self._get_text_at(sheet, row, column)
}
pub fn _get_cell(&self, cell: &str) -> &Cell {
let cell_reference = self._parse_reference(cell);
let worksheet = self.workbook.worksheet(cell_reference.sheet).unwrap();
worksheet
.cell(cell_reference.row, cell_reference.column)
.unwrap()
}
}