diff --git a/src/app/app.rs b/src/app/app.rs index d26ef13..93ab620 100644 --- a/src/app/app.rs +++ b/src/app/app.rs @@ -18,7 +18,7 @@ use ratatui::{ use crate::app::{ clipboard::Clipboard, error_msg::StatusMessage, - logic::{self, calc::{Grid, get_header_size}, cell::CellType}, + logic::{calc::{Grid, get_header_size}, cell::CellType}, mode::Mode, screen::ScreenSpace, }; diff --git a/src/app/logic/calc.rs b/src/app/logic/calc.rs index 851c4c7..f9d4662 100644 --- a/src/app/logic/calc.rs +++ b/src/app/logic/calc.rs @@ -851,6 +851,19 @@ fn parse_csv() { ); } +#[test] +fn invalid_ranges() { + let mut grid = Grid::new(); + + grid.set_cell("A0", 2.); + grid.set_cell("A1", 1.); + // ASCII to number conversion needs to not overflow + grid.set_cell("B0", "=sum($:A)".to_string()); + + let cell = grid.get_cell("B0").as_ref().expect("Just set it"); + let _ = grid.evaluate(&cell.to_string()).expect("Should evaluate."); +} + #[test] fn ranges() { let mut grid = Grid::new(); diff --git a/src/app/mode.rs b/src/app/mode.rs index c589c60..60b1dc2 100644 --- a/src/app/mode.rs +++ b/src/app/mode.rs @@ -15,7 +15,7 @@ use crate::app::{ app::App, error_msg::StatusMessage, logic::{ - calc::{CSV_EXT, CUSTOM_EXT, Grid, LEN}, + calc::{Grid, LEN}, cell::CellType, }, }; diff --git a/src/app/screen.rs b/src/app/screen.rs index 90524d7..65c2651 100644 --- a/src/app/screen.rs +++ b/src/app/screen.rs @@ -2,7 +2,7 @@ use std::{collections::HashMap, sync::RwLock}; use ratatui::prelude; -use crate::app::logic::calc::{self, LEN}; +use crate::app::logic::calc::LEN; pub struct ScreenSpace { /// This is measured in cells.