Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. fn main() {
  2. let max_value: u128 = 0xf;
  3. for a in 0..=max_value {
  4. for b in 0..=max_value {
  5. let v = &(a..=b);
  6. for count in 1..=max_value*3 {
  7. assert!(count > 0);
  8.  
  9. let niche = v.end().wrapping_add(1)..*v.start();
  10. let available = niche.end.wrapping_sub(niche.start) & max_value;
  11.  
  12. let start = v.end().wrapping_add(1) & max_value;
  13. let end = v.end().wrapping_add(count) & max_value;
  14. let valid_range_contains = |x| {
  15. if v.start() <= v.end() {
  16. *v.start() <= x && x <= *v.end()
  17. } else {
  18. *v.start() <= x || x <= *v.end()
  19. }
  20. };
  21. if (count > max_value || valid_range_contains(end)) != (count > available) {
  22. dbg!(v, count);
  23. panic!();
  24. }
  25. }
  26. }
  27. }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement