]> git.proxmox.com Git - rustc.git/blob - vendor/text-size/tests/main.rs
New upstream version 1.48.0+dfsg1
[rustc.git] / vendor / text-size / tests / main.rs
1 use {std::ops, text_size::*};
2
3 fn size(x: u32) -> TextSize {
4 TextSize::from(x)
5 }
6
7 fn range(x: ops::Range<u32>) -> TextRange {
8 TextRange::new(x.start.into(), x.end.into())
9 }
10
11 #[test]
12 fn sum() {
13 let xs: Vec<TextSize> = vec![size(0), size(1), size(2)];
14 assert_eq!(xs.iter().sum::<TextSize>(), size(3));
15 assert_eq!(xs.into_iter().sum::<TextSize>(), size(3));
16 }
17
18 #[test]
19 fn math() {
20 assert_eq!(size(10) + size(5), size(15));
21 assert_eq!(size(10) - size(5), size(5));
22 }
23
24 #[test]
25 fn checked_math() {
26 assert_eq!(size(1).checked_add(size(1)), Some(size(2)));
27 assert_eq!(size(1).checked_sub(size(1)), Some(size(0)));
28 assert_eq!(size(1).checked_sub(size(2)), None);
29 assert_eq!(size(!0).checked_add(size(1)), None);
30 }
31
32 #[test]
33 #[rustfmt::skip]
34 fn contains() {
35 assert!( range(2..4).contains_range(range(2..3)));
36 assert!( ! range(2..4).contains_range(range(1..3)));
37 }
38
39 #[test]
40 fn intersect() {
41 assert_eq!(range(1..2).intersect(range(2..3)), Some(range(2..2)));
42 assert_eq!(range(1..5).intersect(range(2..3)), Some(range(2..3)));
43 assert_eq!(range(1..2).intersect(range(3..4)), None);
44 }
45
46 #[test]
47 fn cover() {
48 assert_eq!(range(1..2).cover(range(2..3)), range(1..3));
49 assert_eq!(range(1..5).cover(range(2..3)), range(1..5));
50 assert_eq!(range(1..2).cover(range(4..5)), range(1..5));
51 }
52
53 #[test]
54 fn cover_offset() {
55 assert_eq!(range(1..3).cover_offset(size(0)), range(0..3));
56 assert_eq!(range(1..3).cover_offset(size(1)), range(1..3));
57 assert_eq!(range(1..3).cover_offset(size(2)), range(1..3));
58 assert_eq!(range(1..3).cover_offset(size(3)), range(1..3));
59 assert_eq!(range(1..3).cover_offset(size(4)), range(1..4));
60 }
61
62 #[test]
63 #[rustfmt::skip]
64 fn contains_point() {
65 assert!( ! range(1..3).contains(size(0)));
66 assert!( range(1..3).contains(size(1)));
67 assert!( range(1..3).contains(size(2)));
68 assert!( ! range(1..3).contains(size(3)));
69 assert!( ! range(1..3).contains(size(4)));
70
71 assert!( ! range(1..3).contains_inclusive(size(0)));
72 assert!( range(1..3).contains_inclusive(size(1)));
73 assert!( range(1..3).contains_inclusive(size(2)));
74 assert!( range(1..3).contains_inclusive(size(3)));
75 assert!( ! range(1..3).contains_inclusive(size(4)));
76 }