1use seg_lib::{AssignSegmentTree, ops::BitXor};
2
3fn main() {
7 let mut seg = AssignSegmentTree::<BitXor<u32>>::from_iter(0..100);
9 assert_eq!(seg.len(), 100);
10 assert_eq!(Vec::from_iter(seg.iter().copied()), Vec::from_iter(0..100));
11
12 seg.range_assign(..50, 100);
14 assert!(seg.iter().take(50).all(|e| *e == 100));
15
16 assert_eq!(seg.range_query(..50), 0); assert_eq!(seg.range_query(50..), (50..100).fold(0, |res, e| res ^ e));
19
20 seg.point_assign(50, !0);
22 assert_eq!(seg.point_query(50), &!0);
23}