MCPcopy Create free account
hub / github.com/Lokathor/tinyvec / ArrayVec_splice

Function ArrayVec_splice

tests/arrayvec.rs:201–364  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

199
200#[test]
201fn ArrayVec_splice() {
202 let mut av: ArrayVec<[i32; 10]> = Default::default();
203 av.push(1);
204 av.push(2);
205 av.push(3);
206
207 // splice returns the same things as drain
208 assert_eq!(Vec::from_iter(av.clone().splice(.., None)), vec![1, 2, 3]);
209
210 assert_eq!(Vec::from_iter(av.clone().splice(..2, None)), vec![1, 2]);
211 assert_eq!(Vec::from_iter(av.clone().splice(..3, None)), vec![1, 2, 3]);
212
213 assert_eq!(Vec::from_iter(av.clone().splice(..=1, None)), vec![1, 2]);
214 assert_eq!(Vec::from_iter(av.clone().splice(..=2, None)), vec![1, 2, 3]);
215
216 assert_eq!(Vec::from_iter(av.clone().splice(0.., None)), vec![1, 2, 3]);
217 assert_eq!(Vec::from_iter(av.clone().splice(1.., None)), vec![2, 3]);
218
219 assert_eq!(Vec::from_iter(av.clone().splice(0..2, None)), vec![1, 2]);
220 assert_eq!(Vec::from_iter(av.clone().splice(0..3, None)), vec![1, 2, 3]);
221 assert_eq!(Vec::from_iter(av.clone().splice(1..2, None)), vec![2]);
222 assert_eq!(Vec::from_iter(av.clone().splice(1..3, None)), vec![2, 3]);
223
224 assert_eq!(Vec::from_iter(av.clone().splice(0..=1, None)), vec![1, 2]);
225 assert_eq!(Vec::from_iter(av.clone().splice(0..=2, None)), vec![1, 2, 3]);
226 assert_eq!(Vec::from_iter(av.clone().splice(1..=1, None)), vec![2]);
227 assert_eq!(Vec::from_iter(av.clone().splice(1..=2, None)), vec![2, 3]);
228
229 // splice removes the same things as drain
230 let mut av2 = av.clone();
231 av2.splice(.., None);
232 assert_eq!(av2, array_vec![]);
233
234 let mut av2 = av.clone();
235 av2.splice(..2, None);
236 assert_eq!(av2, array_vec![3]);
237
238 let mut av2 = av.clone();
239 av2.splice(..3, None);
240 assert_eq!(av2, array_vec![]);
241
242 let mut av2 = av.clone();
243 av2.splice(..=1, None);
244 assert_eq!(av2, array_vec![3]);
245 let mut av2 = av.clone();
246 av2.splice(..=2, None);
247 assert_eq!(av2, array_vec![]);
248
249 let mut av2 = av.clone();
250 av2.splice(0.., None);
251 assert_eq!(av2, array_vec![]);
252 let mut av2 = av.clone();
253 av2.splice(1.., None);
254 assert_eq!(av2, array_vec![1]);
255
256 let mut av2 = av.clone();
257 av2.splice(0..2, None);
258 assert_eq!(av2, array_vec![3]);

Callers

nothing calls this directly

Calls 3

pushMethod · 0.45
cloneMethod · 0.45
spliceMethod · 0.45

Tested by

no test coverage detected