103 lines
3.3 KiB
Rust
103 lines
3.3 KiB
Rust
#![allow(clippy::unwrap_used)]
|
|
|
|
use crate::constants::{COLUMN_WIDTH_FACTOR, DEFAULT_COLUMN_WIDTH};
|
|
use crate::test::util::new_empty_model;
|
|
use crate::types::Col;
|
|
|
|
#[test]
|
|
fn test_column_width() {
|
|
let mut model = new_empty_model();
|
|
let cols = vec![Col {
|
|
custom_width: false,
|
|
max: 16384,
|
|
min: 1,
|
|
style: Some(6),
|
|
width: 8.7,
|
|
}];
|
|
model.workbook.worksheets[0].cols = cols;
|
|
model
|
|
.workbook
|
|
.worksheet_mut(0)
|
|
.unwrap()
|
|
.set_column_width(2, 30.0)
|
|
.unwrap();
|
|
assert_eq!(model.workbook.worksheets[0].cols.len(), 3);
|
|
let worksheet = model.workbook.worksheet(0).unwrap();
|
|
assert!((worksheet.get_column_width(1).unwrap() - DEFAULT_COLUMN_WIDTH).abs() < f64::EPSILON);
|
|
assert!((worksheet.get_column_width(2).unwrap() - 30.0).abs() < f64::EPSILON);
|
|
assert!((worksheet.get_column_width(3).unwrap() - DEFAULT_COLUMN_WIDTH).abs() < f64::EPSILON);
|
|
assert_eq!(model.get_cell_style_index(0, 23, 2), Ok(6));
|
|
}
|
|
|
|
#[test]
|
|
fn test_column_width_lower_edge() {
|
|
let mut model = new_empty_model();
|
|
let cols = vec![Col {
|
|
custom_width: true,
|
|
max: 16,
|
|
min: 5,
|
|
style: Some(1),
|
|
width: 10.0,
|
|
}];
|
|
model.workbook.worksheets[0].cols = cols;
|
|
model
|
|
.workbook
|
|
.worksheet_mut(0)
|
|
.unwrap()
|
|
.set_column_width(5, 30.0)
|
|
.unwrap();
|
|
assert_eq!(model.workbook.worksheets[0].cols.len(), 2);
|
|
let worksheet = model.workbook.worksheet(0).unwrap();
|
|
assert!((worksheet.get_column_width(4).unwrap() - DEFAULT_COLUMN_WIDTH).abs() < f64::EPSILON);
|
|
assert!((worksheet.get_column_width(5).unwrap() - 30.0).abs() < f64::EPSILON);
|
|
assert!(
|
|
(worksheet.get_column_width(6).unwrap() - 10.0 * COLUMN_WIDTH_FACTOR).abs() < f64::EPSILON
|
|
);
|
|
assert_eq!(model.get_cell_style_index(0, 23, 5), Ok(1));
|
|
}
|
|
|
|
#[test]
|
|
fn test_column_width_higher_edge() {
|
|
let mut model = new_empty_model();
|
|
let cols = vec![Col {
|
|
custom_width: true,
|
|
max: 16,
|
|
min: 5,
|
|
style: Some(1),
|
|
width: 10.0,
|
|
}];
|
|
model.workbook.worksheets[0].cols = cols;
|
|
model
|
|
.workbook
|
|
.worksheet_mut(0)
|
|
.unwrap()
|
|
.set_column_width(16, 30.0)
|
|
.unwrap();
|
|
assert_eq!(model.workbook.worksheets[0].cols.len(), 2);
|
|
let worksheet = model.workbook.worksheet(0).unwrap();
|
|
assert!(
|
|
(worksheet.get_column_width(15).unwrap() - 10.0 * COLUMN_WIDTH_FACTOR).abs() < f64::EPSILON
|
|
);
|
|
assert!((worksheet.get_column_width(16).unwrap() - 30.0).abs() < f64::EPSILON);
|
|
assert!((worksheet.get_column_width(17).unwrap() - DEFAULT_COLUMN_WIDTH).abs() < f64::EPSILON);
|
|
assert_eq!(model.get_cell_style_index(0, 23, 16), Ok(1));
|
|
}
|
|
|
|
#[test]
|
|
fn test_column_width_negative() {
|
|
let mut model = new_empty_model();
|
|
let result = model
|
|
.workbook
|
|
.worksheet_mut(0)
|
|
.unwrap()
|
|
.set_column_width(16, -1.0);
|
|
assert_eq!(result, Err("Can not set a negative width: -1".to_string()));
|
|
assert_eq!(model.workbook.worksheets[0].cols.len(), 0);
|
|
let worksheet = model.workbook.worksheet(0).unwrap();
|
|
assert_eq!(
|
|
(worksheet.get_column_width(16).unwrap()),
|
|
DEFAULT_COLUMN_WIDTH
|
|
);
|
|
assert_eq!(model.get_cell_style_index(0, 23, 16), Ok(0));
|
|
}
|