Lines Matching full:list
11 /// TODO(b/262379173): Use bit vector to represent the list instead of boolean vector.
14 list: Vec<bool>, field
21 /// Allocates the list of state.
28 list: vec![false; num_of_pages], in new()
37 /// * `idx` - the index in the list.
39 self.list.get(idx) in get()
77 if let Some(list) = self.list.get_mut(idx_range) { in update()
78 for v in list { in update()
87 /// Returns the first range of indices of consecutive pages present in the list.
101 self.min_possible_idx = self.list.len(); in first_data_range()
106 /// Returns the first range of indices of consecutive pages present in the list after
115 let head_idx = head_idx + self.list[head_idx..].iter().position(|v| *v)?; in find_data_range()
116 let tail_idx = std::cmp::min(self.list.len() - head_idx, max_pages) + head_idx; in find_data_range()
117 let tail_idx = self.list[head_idx + 1..tail_idx] in find_data_range()
124 /// Returns the count of present pages in the list.
126 self.list[self.min_possible_idx..] in all_present_pages()
140 let list = PresentList::new(200); in get_default() localVariable
142 assert_eq!(*list.get(0).unwrap(), false); in get_default()
143 assert_eq!(*list.get(10).unwrap(), false); in get_default()
148 let list = PresentList::new(200); in get_out_of_range() localVariable
150 assert!(list.get(200).is_none()); in get_out_of_range()
155 let mut list = PresentList::new(200); in mark_as_present() localVariable
157 assert!(list.mark_as_present(10..12)); in mark_as_present()
158 assert_eq!(*list.get(9).unwrap(), false); in mark_as_present()
159 assert_eq!(*list.get(10).unwrap(), true); in mark_as_present()
160 assert_eq!(*list.get(11).unwrap(), true); in mark_as_present()
161 assert_eq!(*list.get(12).unwrap(), false); in mark_as_present()
166 let mut list = PresentList::new(200); in mark_as_present_duplicated() localVariable
168 assert!(list.mark_as_present(10..12)); in mark_as_present_duplicated()
169 assert!(list.mark_as_present(11..13)); in mark_as_present_duplicated()
170 assert_eq!(*list.get(9).unwrap(), false); in mark_as_present_duplicated()
171 assert_eq!(*list.get(10).unwrap(), true); in mark_as_present_duplicated()
172 assert_eq!(*list.get(11).unwrap(), true); in mark_as_present_duplicated()
173 assert_eq!(*list.get(12).unwrap(), true); in mark_as_present_duplicated()
174 assert_eq!(*list.get(13).unwrap(), false); in mark_as_present_duplicated()
179 let mut list = PresentList::new(200); in mark_as_present_out_of_range() localVariable
181 assert!(!list.mark_as_present(10..201)); in mark_as_present_out_of_range()
182 assert_eq!(*list.get(10).unwrap(), false); in mark_as_present_out_of_range()
187 let mut list = PresentList::new(200); in clear_range() localVariable
189 assert!(list.mark_as_present(10..14)); in clear_range()
190 assert!(list.clear_range(11..13)); in clear_range()
191 assert_eq!(*list.get(9).unwrap(), false); in clear_range()
192 assert_eq!(*list.get(10).unwrap(), true); in clear_range()
193 assert_eq!(*list.get(11).unwrap(), false); in clear_range()
194 assert_eq!(*list.get(12).unwrap(), false); in clear_range()
195 assert_eq!(*list.get(13).unwrap(), true); in clear_range()
196 assert_eq!(*list.get(14).unwrap(), false); in clear_range()
201 let mut list = PresentList::new(200); in clear_range_duplicated() localVariable
203 assert!(list.mark_as_present(10..14)); in clear_range_duplicated()
204 assert!(list.clear_range(11..13)); in clear_range_duplicated()
205 assert!(list.clear_range(12..15)); in clear_range_duplicated()
206 assert_eq!(*list.get(9).unwrap(), false); in clear_range_duplicated()
207 assert_eq!(*list.get(10).unwrap(), true); in clear_range_duplicated()
208 assert_eq!(*list.get(11).unwrap(), false); in clear_range_duplicated()
209 assert_eq!(*list.get(12).unwrap(), false); in clear_range_duplicated()
210 assert_eq!(*list.get(13).unwrap(), false); in clear_range_duplicated()
211 assert_eq!(*list.get(14).unwrap(), false); in clear_range_duplicated()
212 assert_eq!(*list.get(15).unwrap(), false); in clear_range_duplicated()
217 let mut list = PresentList::new(200); in clear_range_out_of_range() localVariable
219 assert!(list.mark_as_present(10..11)); in clear_range_out_of_range()
220 assert!(!list.clear_range(10..201)); in clear_range_out_of_range()
221 assert_eq!(*list.get(10).unwrap(), true); in clear_range_out_of_range()
226 let mut list = PresentList::new(200); in first_data_range() localVariable
228 list.mark_as_present(1..3); in first_data_range()
229 list.mark_as_present(12..13); in first_data_range()
230 list.mark_as_present(20..22); in first_data_range()
231 list.mark_as_present(22..23); in first_data_range()
232 list.mark_as_present(23..30); in first_data_range()
234 assert_eq!(list.first_data_range(200).unwrap(), 1..3); in first_data_range()
235 list.clear_range(1..3); in first_data_range()
236 assert_eq!(list.first_data_range(200).unwrap(), 12..13); in first_data_range()
237 list.clear_range(12..13); in first_data_range()
238 assert_eq!(list.first_data_range(200).unwrap(), 20..30); in first_data_range()
239 list.clear_range(20..30); in first_data_range()
240 assert!(list.first_data_range(200).is_none()); in first_data_range()
245 let mut list = PresentList::new(200); in first_data_range_clear_partially() localVariable
247 list.mark_as_present(10..20); in first_data_range_clear_partially()
249 list.clear_range(5..10); in first_data_range_clear_partially()
250 assert_eq!(list.first_data_range(200).unwrap(), 10..20); in first_data_range_clear_partially()
251 list.clear_range(5..12); in first_data_range_clear_partially()
252 assert_eq!(list.first_data_range(200).unwrap(), 12..20); in first_data_range_clear_partially()
253 list.clear_range(19..21); in first_data_range_clear_partially()
254 assert_eq!(list.first_data_range(200).unwrap(), 12..19); in first_data_range_clear_partially()
255 list.clear_range(16..17); in first_data_range_clear_partially()
256 assert_eq!(list.first_data_range(200).unwrap(), 12..16); in first_data_range_clear_partially()
261 let mut list = PresentList::new(200); in first_data_range_mark_after_clear() localVariable
263 list.mark_as_present(10..20); in first_data_range_mark_after_clear()
265 list.clear_range(10..15); in first_data_range_mark_after_clear()
266 assert_eq!(list.first_data_range(200).unwrap(), 15..20); in first_data_range_mark_after_clear()
267 list.mark_as_present(5..15); in first_data_range_mark_after_clear()
268 assert_eq!(list.first_data_range(200).unwrap(), 5..20); in first_data_range_mark_after_clear()
273 let mut list = PresentList::new(20); in first_data_range_end_is_full() localVariable
275 list.mark_as_present(10..20); in first_data_range_end_is_full()
277 assert_eq!(list.first_data_range(20).unwrap(), 10..20); in first_data_range_end_is_full()
282 let mut list = PresentList::new(20); in first_data_range_max_pages() localVariable
284 list.mark_as_present(10..13); in first_data_range_max_pages()
286 assert_eq!(list.first_data_range(1).unwrap(), 10..11); in first_data_range_max_pages()
287 assert_eq!(list.first_data_range(2).unwrap(), 10..12); in first_data_range_max_pages()
288 assert_eq!(list.first_data_range(3).unwrap(), 10..13); in first_data_range_max_pages()
289 assert_eq!(list.first_data_range(4).unwrap(), 10..13); in first_data_range_max_pages()
294 let mut list = PresentList::new(200); in find_data_range() localVariable
296 list.mark_as_present(1..3); in find_data_range()
297 list.mark_as_present(12..13); in find_data_range()
298 list.mark_as_present(20..22); in find_data_range()
299 list.mark_as_present(22..23); in find_data_range()
300 list.mark_as_present(23..30); in find_data_range()
302 assert_eq!(list.find_data_range(0, 200).unwrap(), 1..3); in find_data_range()
303 assert_eq!(list.find_data_range(3, 200).unwrap(), 12..13); in find_data_range()
304 assert_eq!(list.find_data_range(13, 200).unwrap(), 20..30); in find_data_range()
305 assert_eq!(list.find_data_range(22, 5).unwrap(), 22..27); in find_data_range()
306 assert!(list.find_data_range(30, 200).is_none()); in find_data_range()
307 assert!(list.find_data_range(200, 200).is_none()); in find_data_range()
312 let mut list = PresentList::new(200); in find_data_range_clear_partially() localVariable
314 list.mark_as_present(10..20); in find_data_range_clear_partially()
316 list.clear_range(5..10); in find_data_range_clear_partially()
317 assert_eq!(list.find_data_range(0, 200).unwrap(), 10..20); in find_data_range_clear_partially()
318 list.clear_range(5..12); in find_data_range_clear_partially()
319 assert_eq!(list.find_data_range(0, 200).unwrap(), 12..20); in find_data_range_clear_partially()
320 list.clear_range(19..21); in find_data_range_clear_partially()
321 assert_eq!(list.find_data_range(0, 200).unwrap(), 12..19); in find_data_range_clear_partially()
322 list.clear_range(16..17); in find_data_range_clear_partially()
323 assert_eq!(list.find_data_range(0, 200).unwrap(), 12..16); in find_data_range_clear_partially()
328 let mut list = PresentList::new(200); in find_data_range_mark_after_clear() localVariable
330 list.mark_as_present(10..20); in find_data_range_mark_after_clear()
332 list.clear_range(10..15); in find_data_range_mark_after_clear()
333 assert_eq!(list.find_data_range(0, 200).unwrap(), 15..20); in find_data_range_mark_after_clear()
334 list.mark_as_present(5..15); in find_data_range_mark_after_clear()
335 assert_eq!(list.find_data_range(0, 200).unwrap(), 5..20); in find_data_range_mark_after_clear()
340 let mut list = PresentList::new(20); in find_data_range_end_is_full() localVariable
342 list.mark_as_present(10..20); in find_data_range_end_is_full()
344 assert_eq!(list.find_data_range(0, 20).unwrap(), 10..20); in find_data_range_end_is_full()
349 let mut list = PresentList::new(20); in find_data_range_max_pages() localVariable
351 list.mark_as_present(10..13); in find_data_range_max_pages()
353 assert_eq!(list.find_data_range(0, 1).unwrap(), 10..11); in find_data_range_max_pages()
354 assert_eq!(list.find_data_range(0, 2).unwrap(), 10..12); in find_data_range_max_pages()
355 assert_eq!(list.find_data_range(0, 3).unwrap(), 10..13); in find_data_range_max_pages()
356 assert_eq!(list.find_data_range(0, 4).unwrap(), 10..13); in find_data_range_max_pages()
361 let mut list = PresentList::new(20); in all_present_pages() localVariable
363 list.mark_as_present(1..5); in all_present_pages()
364 list.mark_as_present(12..13); in all_present_pages()
366 assert_eq!(list.all_present_pages(), 5); in all_present_pages()