@@ -85,3 +85,81 @@ impl<'a, T> IntoIterator for &'a mut DynamicStorage<T> {
8585 self . data . iter_mut ( )
8686 }
8787}
88+
89+ #[ cfg( test) ]
90+ mod tests {
91+ use super :: * ;
92+
93+ #[ test]
94+ fn test_iter ( ) {
95+ let storage = DynamicStorage :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
96+ let mut iter = storage. iter ( ) ;
97+ assert_eq ! ( iter. next( ) , Some ( & 1 ) ) ;
98+ assert_eq ! ( iter. next( ) , Some ( & 2 ) ) ;
99+ assert_eq ! ( iter. next( ) , Some ( & 3 ) ) ;
100+ assert_eq ! ( iter. next( ) , Some ( & 4 ) ) ;
101+ assert_eq ! ( iter. next( ) , None ) ;
102+ }
103+
104+ #[ test]
105+ fn test_iter_mut ( ) {
106+ let mut storage = DynamicStorage :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
107+ {
108+ let mut iter = storage. iter_mut ( ) ;
109+ if let Some ( x) = iter. next ( ) {
110+ * x = 10 ;
111+ }
112+ }
113+ assert_eq ! ( storage. data, vec![ 10 , 2 , 3 , 4 ] ) ;
114+ }
115+
116+ #[ test]
117+ fn test_index ( ) {
118+ let storage = DynamicStorage :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
119+ assert_eq ! ( storage[ 0 ] , 1 ) ;
120+ assert_eq ! ( storage[ 1 ] , 2 ) ;
121+ assert_eq ! ( storage[ 2 ] , 3 ) ;
122+ assert_eq ! ( storage[ 3 ] , 4 ) ;
123+ }
124+
125+ #[ test]
126+ fn test_index_mut ( ) {
127+ let mut storage = DynamicStorage :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
128+ storage[ 0 ] = 10 ;
129+ assert_eq ! ( storage[ 0 ] , 10 ) ;
130+ }
131+
132+ #[ test]
133+ fn test_into_iter ( ) {
134+ let storage = DynamicStorage :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
135+ let mut iter = storage. into_iter ( ) ;
136+ assert_eq ! ( iter. next( ) , Some ( 1 ) ) ;
137+ assert_eq ! ( iter. next( ) , Some ( 2 ) ) ;
138+ assert_eq ! ( iter. next( ) , Some ( 3 ) ) ;
139+ assert_eq ! ( iter. next( ) , Some ( 4 ) ) ;
140+ assert_eq ! ( iter. next( ) , None ) ;
141+ }
142+
143+ #[ test]
144+ fn test_into_iter_ref ( ) {
145+ let storage = DynamicStorage :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
146+ let mut iter = ( & storage) . into_iter ( ) ;
147+ assert_eq ! ( iter. next( ) , Some ( & 1 ) ) ;
148+ assert_eq ! ( iter. next( ) , Some ( & 2 ) ) ;
149+ assert_eq ! ( iter. next( ) , Some ( & 3 ) ) ;
150+ assert_eq ! ( iter. next( ) , Some ( & 4 ) ) ;
151+ assert_eq ! ( iter. next( ) , None ) ;
152+ }
153+
154+ #[ test]
155+ fn test_into_iter_mut ( ) {
156+ let mut storage = DynamicStorage :: new ( vec ! [ 1 , 2 , 3 , 4 ] ) ;
157+ {
158+ let mut iter = ( & mut storage) . into_iter ( ) ;
159+ if let Some ( x) = iter. next ( ) {
160+ * x = 10 ;
161+ }
162+ }
163+ assert_eq ! ( storage. data, vec![ 10 , 2 , 3 , 4 ] ) ;
164+ }
165+ }
0 commit comments