vectors/dense/heap/
debug.rs

1// This Source Code Form is subject to the terms of the Mozilla Public
2// License, v. 2.0. If a copy of the MPL was not distributed with this
3// file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
5use std::fmt;
6
7use super::DenseVector;
8
9impl<T> fmt::Debug for DenseVector<T>
10where
11    T: fmt::Debug
12{
13    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14        let _ = write!(f, "[");
15        for (index, item) in self.components.iter().enumerate() {
16            try! {
17                if index > 0 { write!(f, ", {:?}", item) }
18                else { write!(f, "{:?}", item) }
19            }
20        }
21        let _ = write!(f, "]");
22        Ok(())
23    }
24}
25
26#[cfg(test)]
27mod test {
28    use super::*;
29
30    use expectest::prelude::*;
31
32    #[test]
33    fn debug() {
34        let vector = DenseVector::from(vec![0.0, 0.25, 0.5, 0.75, 1.0]);
35        let subject = format!("{:?}", vector);
36        let expected = "[0.0, 0.25, 0.5, 0.75, 1.0]";
37        expect!(subject).to(be_equal_to(expected));
38    }
39}