use neodes_codec::codec::{NeodesLineReadError, read_dsn_file};
use neodes_codec::line::{
NeodesLine, NeodesLineParseError,
NeodesLineParseError::{EmptyLine, Format},
};
use std::str::FromStr;
#[test]
fn test_read_file() {
let result = read_dsn_file("tests/read_test.dsn").unwrap();
let actual: Vec<Result<NeodesLine, NeodesLineParseError>> = result
.map(|r| {
r.map_err(|e| match e {
NeodesLineReadError::IOError(_) => panic!("IO error"),
NeodesLineReadError::ParseError(pe) => pe,
})
})
.collect();
let expected = vec![
Err(EmptyLine),
Err(Format),
Err(Format),
Err(Format),
Err(Format),
Err(Format),
Err(Format),
Ok(NeodesLine::from_str("S21.G00.01.123,'x'").unwrap()),
Ok(NeodesLine::from_str("S21.G00.01.123,'é'").unwrap()),
];
assert_eq!(actual, expected);
}