extern crate office;
use office::Excel;
use office::DataType::{self, String, Float, Bool, Error, Empty};
use office::CellErrorType::*;
#[test]
fn issue_2() {
let path = format!("{}/tests/issues.xlsx", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("issue2").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[Float(1.), String("a".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[Float(2.), String("b".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[Float(3.), String("c".to_string())] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn issue_3() {
let path = format!("{}/tests/issue3.xlsm", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("Sheet1").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[Float(1.), String("a".to_string())] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn issue_4() {
let path = format!("{}/tests/issues.xlsx", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("issue5").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[Float(0.5)] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn issue_6() {
let path = format!("{}/tests/issues.xlsx", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("issue6").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[Float(1.)] as &[DataType]));
assert_eq!(r.next(), Some(&[Float(2.)] as &[DataType]));
assert_eq!(r.next(), Some(&[String("ab".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[Bool(false)] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn error_file() {
let path = format!("{}/tests/errors.xlsx", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("Feuil1").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[Error(Div0)] as &[DataType]));
assert_eq!(r.next(), Some(&[Error(Name)] as &[DataType]));
assert_eq!(r.next(), Some(&[Error(Value)] as &[DataType]));
assert_eq!(r.next(), Some(&[Error(Null)] as &[DataType]));
assert_eq!(r.next(), Some(&[Error(Ref)] as &[DataType]));
assert_eq!(r.next(), Some(&[Error(Num)] as &[DataType]));
assert_eq!(r.next(), Some(&[Error(NA)] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), Some(&[Empty] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn issue_9() {
let path = format!("{}/tests/issue9.xlsx", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("Feuil1").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[String("test1".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("test2 other".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("test3 aaa".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("test4".to_string())] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn vba() {
let path = format!("{}/tests/vba.xlsm", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let mut vba = excel.vba_project().unwrap();
assert_eq!(vba.to_mut().get_module("testVBA").unwrap(), "Attribute VB_Name = \"testVBA\"\
\r\nPublic Sub test()\
\r\n MsgBox \"Hello from vba!\"\
\r\nEnd Sub\
\r\n");
}
#[test]
fn xlsb() {
let path = format!("{}/tests/issues.xlsb", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("issue2").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[Float(1.), String("a".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[Float(2.), String("b".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[Float(3.), String("c".to_string())] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn xls() {
let path = format!("{}/tests/issues.xls", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("issue2").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[Float(1.), String("a".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[Float(2.), String("b".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[Float(3.), String("c".to_string())] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn special_chrs_xlsx() {
let path = format!("{}/tests/issues.xlsx", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("spc_chrs").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[String("&".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("<".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String(">".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("aaa ' aaa".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("\"".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("☺".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("֍".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("àâéêèçöïî«»".to_string())] as &[DataType]));
assert_eq!(r.next(), None);
}
#[test]
fn special_chrs_xlsb() {
let path = format!("{}/tests/issues.xlsb", env!("CARGO_MANIFEST_DIR"));
let mut excel = Excel::open(&path).expect("cannot open excel file");
let range = excel.worksheet_range("spc_chrs").unwrap();
let mut r = range.rows();
assert_eq!(r.next(), Some(&[String("&".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("<".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String(">".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("aaa ' aaa".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("\"".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("☺".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("֍".to_string())] as &[DataType]));
assert_eq!(r.next(), Some(&[String("àâéêèçöïî«»".to_string())] as &[DataType]));
assert_eq!(r.next(), None);
}