107 lines
2.5 KiB
Rust
107 lines
2.5 KiB
Rust
#![allow(clippy::unwrap_used)]
|
|
|
|
use crate::{
|
|
expressions::types::{Area, CellReferenceIndex},
|
|
test::util::new_empty_model,
|
|
};
|
|
|
|
#[test]
|
|
fn extend_to_basic() {
|
|
let mut model = new_empty_model();
|
|
model._set("A1", "=B1*SUM(F5:H10)");
|
|
|
|
model.evaluate();
|
|
|
|
// A1
|
|
let (sheet, row, column) = (0, 1, 1);
|
|
|
|
// extend from A1 to A5
|
|
let (target_row, target_column) = (5, 1);
|
|
let result = model
|
|
.extend_to(sheet, row, column, target_row, target_column)
|
|
.unwrap();
|
|
assert_eq!(&result, "=B5*SUM(F9:H14)");
|
|
|
|
// extend from A1 to E1
|
|
let (target_row, target_column) = (1, 5);
|
|
let result = model
|
|
.extend_to(sheet, row, column, target_row, target_column)
|
|
.unwrap();
|
|
assert_eq!(&result, "=F1*SUM(J5:L10)");
|
|
}
|
|
|
|
#[test]
|
|
fn extend_to_no_formula() {
|
|
let mut model = new_empty_model();
|
|
model._set("A1", "Hey Jude!");
|
|
|
|
model.evaluate();
|
|
|
|
// A1
|
|
let (sheet, row, column) = (0, 1, 1);
|
|
|
|
// extend from A1 to A5
|
|
let (target_row, target_column) = (5, 1);
|
|
let result = model
|
|
.extend_to(sheet, row, column, target_row, target_column)
|
|
.unwrap();
|
|
assert_eq!(&result, "Hey Jude!");
|
|
|
|
// extend from A1 to E1
|
|
let (target_row, target_column) = (1, 5);
|
|
let result = model
|
|
.extend_to(sheet, row, column, target_row, target_column)
|
|
.unwrap();
|
|
assert_eq!(&result, "Hey Jude!");
|
|
}
|
|
|
|
#[test]
|
|
fn extend_copied_value_basic() {
|
|
let mut model = new_empty_model();
|
|
let source = CellReferenceIndex {
|
|
sheet: 0,
|
|
row: 1,
|
|
column: 1,
|
|
};
|
|
let target = CellReferenceIndex {
|
|
sheet: 0,
|
|
row: 30,
|
|
column: 1,
|
|
};
|
|
let result = model
|
|
.extend_copied_value("=B1*D4", &source, &target)
|
|
.unwrap();
|
|
assert_eq!(&result, "=B30*D33");
|
|
|
|
let result = model
|
|
.extend_copied_value("don't make it sad", &source, &target)
|
|
.unwrap();
|
|
assert_eq!(&result, "don't make it sad");
|
|
}
|
|
|
|
#[test]
|
|
fn move_cell_value_to_area_basic() {
|
|
let mut model = new_empty_model();
|
|
let source = CellReferenceIndex {
|
|
sheet: 0,
|
|
row: 3,
|
|
column: 1,
|
|
};
|
|
let target = CellReferenceIndex {
|
|
sheet: 0,
|
|
row: 50,
|
|
column: 1,
|
|
};
|
|
let area = Area {
|
|
sheet: 0,
|
|
row: 1,
|
|
column: 1,
|
|
width: 5,
|
|
height: 4,
|
|
};
|
|
let result = model
|
|
.move_cell_value_to_area("=B1", &source, &target, &area)
|
|
.unwrap();
|
|
assert_eq!(&result, "=B48");
|
|
}
|