| 199 | |
| 200 | #[test] |
| 201 | fn 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]); |