MCPcopy Create free account
hub / github.com/QMHTMY/RustBook / main

Function main

publication/code/chapter04/linked_list.rs:126–186  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

124}
125
126fn main() {
127 basic_test();
128 into_iter_test();
129 iter_test();
130 iter_mut_test();
131
132 fn basic_test() {
133 let mut list = List::new();
134 list.push(1); list.push(2); list.push(3);
135
136 assert_eq!(list.len(), 3);
137 assert_eq!(list.is_empty(), false);
138 assert_eq!(list.pop(), Some(3));
139 assert_eq!(list.peek(), Some(&2));
140 assert_eq!(list.peek_mut(), Some(&mut 2));
141
142 list.peek_mut().map(|val| {
143 *val = 4;
144 });
145 assert_eq!(list.peek(), Some(&4));
146
147 list.clear();
148 println!("basics test Ok!");
149 }
150
151 fn into_iter_test() {
152 let mut list = List::new();
153 list.push(1); list.push(2); list.push(3);
154
155 let mut iter = list.into_iter();
156 assert_eq!(iter.next(), Some(3));
157 assert_eq!(iter.next(), Some(2));
158 assert_eq!(iter.next(), Some(1));
159 assert_eq!(iter.next(), None);
160 println!("into_iter test Ok!");
161 }
162
163 fn iter_test() {
164 let mut list = List::new();
165 list.push(1); list.push(2); list.push(3);
166
167 let mut iter = list.iter();
168 assert_eq!(iter.next(), Some(&3));
169 assert_eq!(iter.next(), Some(&2));
170 assert_eq!(iter.next(), Some(&1));
171 assert_eq!(iter.next(), None);
172 println!("iter test Ok!");
173 }
174
175 fn iter_mut_test() {
176 let mut list = List::new();
177 list.push(1); list.push(2); list.push(3);
178
179 let mut iter = list.iter_mut();
180 assert_eq!(iter.next(), Some(&mut 3));
181 assert_eq!(iter.next(), Some(&mut 2));
182 assert_eq!(iter.next(), Some(&mut 1));
183 assert_eq!(iter.next(), None);

Callers

nothing calls this directly

Calls 4

basic_testFunction · 0.70
into_iter_testFunction · 0.70
iter_testFunction · 0.70
iter_mut_testFunction · 0.70

Tested by

no test coverage detected