Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- let max_value: u128 = 0xf;
- for a in 0..=max_value {
- for b in 0..=max_value {
- let v = &(a..=b);
- for count in 1..=max_value*3 {
- assert!(count > 0);
- let niche = v.end().wrapping_add(1)..*v.start();
- let available = niche.end.wrapping_sub(niche.start) & max_value;
- let start = v.end().wrapping_add(1) & max_value;
- let end = v.end().wrapping_add(count) & max_value;
- let valid_range_contains = |x| {
- if v.start() <= v.end() {
- *v.start() <= x && x <= *v.end()
- } else {
- *v.start() <= x || x <= *v.end()
- }
- };
- if (count > max_value || valid_range_contains(end)) != (count > available) {
- dbg!(v, count);
- panic!();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement