Removed unwrap()s, refactored iterator, removed memleak

This commit is contained in:
Josh Mitchell
2020-11-08 17:23:08 +11:00
parent 05b309e4bd
commit f9cf479baf
8 changed files with 223 additions and 197 deletions

View File

@@ -1,27 +1,28 @@
#[cfg(test)]
mod integration {
use std::rc::Rc;
use xdrfile::*;
#[test]
fn test_use_library() {
let mut trj = XTCTrajectory::open_read("tests/1l2y.xtc").unwrap();
let num_atoms = trj.get_num_atoms().unwrap();
fn test_use_library() -> Result<()> {
let mut trj = XTCTrajectory::open_read("tests/1l2y.xtc")?;
let num_atoms = trj.get_num_atoms()?;
let mut frame = Frame::with_capacity(num_atoms);
trj.read(&mut frame).unwrap();
trj.read(&mut frame).unwrap();
trj.read(&mut frame)?;
trj.read(&mut frame)?;
assert_eq!(frame.step, 2);
Ok(())
}
#[test]
fn test_use_library_iterator() {
let trj = XTCTrajectory::open_read("tests/1l2y.xtc").unwrap();
let frames: Vec<Rc<Frame>> = trj.into_iter().filter_map(Result::ok).collect();
for (idx, frame) in frames.iter().enumerate() {
fn test_use_library_iterator() -> Result<()> {
let trj = XTCTrajectory::open_read("tests/1l2y.xtc")?;
let frames: Result<Vec<Rc<Frame>>> = trj.into_iter().collect();
for (idx, frame) in frames?.iter().enumerate() {
assert_eq!(frame.step as usize, idx + 1);
}
Ok(())
}
}