Add tests for row and column iterators.

This commit is contained in:
sebcrozet 2019-02-03 11:17:09 +01:00
parent bafd74da70
commit 48e9bbc065
1 changed files with 47 additions and 0 deletions

View File

@ -248,12 +248,31 @@ impl<N: Scalar, R: Dim, C: Dim, S: Storage<N, R, C>> Matrix<N, R, C, S> {
} }
/// Iterate through the rows of this matrix. /// Iterate through the rows of this matrix.
///
/// # Example
/// ```
/// # use nalgebra::Matrix2x3;
/// let mut a = Matrix2x3::new(1, 2, 3,
/// 4, 5, 6);
/// for (i, row) in a.row_iter().enumerate() {
/// assert_eq!(row, a.row(i))
/// }
/// ```
#[inline] #[inline]
pub fn row_iter(&self) -> RowIter<N, R, C, S> { pub fn row_iter(&self) -> RowIter<N, R, C, S> {
RowIter::new(self) RowIter::new(self)
} }
/// Iterate through the columns of this matrix. /// Iterate through the columns of this matrix.
/// # Example
/// ```
/// # use nalgebra::Matrix2x3;
/// let mut a = Matrix2x3::new(1, 2, 3,
/// 4, 5, 6);
/// for (i, column) in a.column_iter().enumerate() {
/// assert_eq!(column, a.column(i))
/// }
/// ```
#[inline] #[inline]
pub fn column_iter(&self) -> ColumnIter<N, R, C, S> { pub fn column_iter(&self) -> ColumnIter<N, R, C, S> {
ColumnIter::new(self) ColumnIter::new(self)
@ -604,12 +623,40 @@ impl<N: Scalar, R: Dim, C: Dim, S: StorageMut<N, R, C>> Matrix<N, R, C, S> {
} }
/// Mutably iterates through this matrix rows. /// Mutably iterates through this matrix rows.
///
/// # Example
/// ```
/// # use nalgebra::Matrix2x3;
/// let mut a = Matrix2x3::new(1, 2, 3,
/// 4, 5, 6);
/// for (i, mut row) in a.row_iter_mut().enumerate() {
/// row *= (i + 1) * 10;
/// }
///
/// let expected = Matrix2x3::new(10, 20, 30,
/// 80, 100, 120);
/// assert_eq!(a, expected);
/// ```
#[inline] #[inline]
pub fn row_iter_mut(&mut self) -> RowIterMut<N, R, C, S> { pub fn row_iter_mut(&mut self) -> RowIterMut<N, R, C, S> {
RowIterMut::new(self) RowIterMut::new(self)
} }
/// Mutably iterates through this matrix columns. /// Mutably iterates through this matrix columns.
///
/// # Example
/// ```
/// # use nalgebra::Matrix2x3;
/// let mut a = Matrix2x3::new(1, 2, 3,
/// 4, 5, 6);
/// for (i, mut col) in a.column_iter_mut().enumerate() {
/// col *= (i + 1) * 10;
/// }
///
/// let expected = Matrix2x3::new(10, 40, 90,
/// 40, 100, 180);
/// assert_eq!(a, expected);
/// ```
#[inline] #[inline]
pub fn column_iter_mut(&mut self) -> ColumnIterMut<N, R, C, S> { pub fn column_iter_mut(&mut self) -> ColumnIterMut<N, R, C, S> {
ColumnIterMut::new(self) ColumnIterMut::new(self)