Skip to content

Commit 7e44d68

Browse files
committed
Adding proofs negative harnesses (forgotton last commit)
1 parent 670420e commit 7e44d68

6 files changed

Lines changed: 354 additions & 0 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#![feature(unchecked_math)]
2+
3+
fn main() {
4+
unchecked_add_u8(0, 0);
5+
unchecked_add_u16(0, 0);
6+
unchecked_add_u32(0, 0);
7+
unchecked_add_u64(0, 0);
8+
unchecked_add_u128(0, 0);
9+
unchecked_add_i8(0, 0);
10+
unchecked_add_i16(0, 0);
11+
unchecked_add_i32(0, 0);
12+
unchecked_add_i64(0, 0);
13+
unchecked_add_i128(0, 0);
14+
}
15+
16+
fn unchecked_add_u8(a: u8, b: u8) {
17+
let result = unsafe { a.unchecked_add(b) };
18+
assert!(result == a.wrapping_add(b));
19+
}
20+
21+
fn unchecked_add_u16(a: u16, b: u16) {
22+
let result = unsafe { a.unchecked_add(b) };
23+
assert!(result == a.wrapping_add(b));
24+
}
25+
26+
fn unchecked_add_u32(a: u32, b: u32) {
27+
let result = unsafe { a.unchecked_add(b) };
28+
assert!(result == a.wrapping_add(b));
29+
}
30+
31+
fn unchecked_add_u64(a: u64, b: u64) {
32+
let result = unsafe { a.unchecked_add(b) };
33+
assert!(result == a.wrapping_add(b));
34+
}
35+
36+
fn unchecked_add_u128(a: u128, b: u128) {
37+
let result = unsafe { a.unchecked_add(b) };
38+
assert!(result == a.wrapping_add(b));
39+
}
40+
41+
fn unchecked_add_i8(a: i8, b: i8) {
42+
let result = unsafe { a.unchecked_add(b) };
43+
assert!(result == a.wrapping_add(b));
44+
}
45+
46+
fn unchecked_add_i16(a: i16, b: i16) {
47+
let result = unsafe { a.unchecked_add(b) };
48+
assert!(result == a.wrapping_add(b));
49+
}
50+
51+
fn unchecked_add_i32(a: i32, b: i32) {
52+
let result = unsafe { a.unchecked_add(b) };
53+
assert!(result == a.wrapping_add(b));
54+
}
55+
56+
fn unchecked_add_i64(a: i64, b: i64) {
57+
let result = unsafe { a.unchecked_add(b) };
58+
assert!(result == a.wrapping_add(b));
59+
}
60+
61+
fn unchecked_add_i128(a: i128, b: i128) {
62+
let result = unsafe { a.unchecked_add(b) };
63+
assert!(result == a.wrapping_add(b));
64+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#![feature(unchecked_math)]
2+
3+
fn main() {
4+
unchecked_mul_u8(0, 0);
5+
unchecked_mul_u16(0, 0);
6+
unchecked_mul_u32(0, 0);
7+
unchecked_mul_u64(0, 0);
8+
unchecked_mul_u128(0, 0);
9+
unchecked_mul_i8(0, 0);
10+
unchecked_mul_i16(0, 0);
11+
unchecked_mul_i32(0, 0);
12+
unchecked_mul_i64(0, 0);
13+
unchecked_mul_i128(0, 0);
14+
}
15+
16+
fn unchecked_mul_u8(a: u8, b: u8) {
17+
let result = unsafe { a.unchecked_mul(b) };
18+
assert!(result == a.wrapping_mul(b));
19+
}
20+
21+
fn unchecked_mul_u16(a: u16, b: u16) {
22+
let result = unsafe { a.unchecked_mul(b) };
23+
assert!(result == a.wrapping_mul(b));
24+
}
25+
26+
fn unchecked_mul_u32(a: u32, b: u32) {
27+
let result = unsafe { a.unchecked_mul(b) };
28+
assert!(result == a.wrapping_mul(b));
29+
}
30+
31+
fn unchecked_mul_u64(a: u64, b: u64) {
32+
let result = unsafe { a.unchecked_mul(b) };
33+
assert!(result == a.wrapping_mul(b));
34+
}
35+
36+
fn unchecked_mul_u128(a: u128, b: u128) {
37+
let result = unsafe { a.unchecked_mul(b) };
38+
assert!(result == a.wrapping_mul(b));
39+
}
40+
41+
fn unchecked_mul_i8(a: i8, b: i8) {
42+
let result = unsafe { a.unchecked_mul(b) };
43+
assert!(result == a.wrapping_mul(b));
44+
}
45+
46+
fn unchecked_mul_i16(a: i16, b: i16) {
47+
let result = unsafe { a.unchecked_mul(b) };
48+
assert!(result == a.wrapping_mul(b));
49+
}
50+
51+
fn unchecked_mul_i32(a: i32, b: i32) {
52+
let result = unsafe { a.unchecked_mul(b) };
53+
assert!(result == a.wrapping_mul(b));
54+
}
55+
56+
fn unchecked_mul_i64(a: i64, b: i64) {
57+
let result = unsafe { a.unchecked_mul(b) };
58+
assert!(result == a.wrapping_mul(b));
59+
}
60+
61+
fn unchecked_mul_i128(a: i128, b: i128) {
62+
let result = unsafe { a.unchecked_mul(b) };
63+
assert!(result == a.wrapping_mul(b));
64+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#![feature(unchecked_neg)]
2+
3+
fn main() {
4+
unchecked_neg_i8(0);
5+
unchecked_neg_i16(0);
6+
unchecked_neg_i32(0);
7+
unchecked_neg_i64(0);
8+
unchecked_neg_i128(0);
9+
}
10+
11+
fn unchecked_neg_i8(a: i8) {
12+
let result = unsafe { a.unchecked_neg() };
13+
assert!(result == a.wrapping_neg());
14+
}
15+
16+
fn unchecked_neg_i16(a: i16) {
17+
let result = unsafe { a.unchecked_neg() };
18+
assert!(result == a.wrapping_neg());
19+
}
20+
21+
fn unchecked_neg_i32(a: i32) {
22+
let result = unsafe { a.unchecked_neg() };
23+
assert!(result == a.wrapping_neg());
24+
}
25+
26+
fn unchecked_neg_i64(a: i64) {
27+
let result = unsafe { a.unchecked_neg() };
28+
assert!(result == a.wrapping_neg());
29+
}
30+
31+
fn unchecked_neg_i128(a: i128) {
32+
let result = unsafe { a.unchecked_neg() };
33+
assert!(result == a.wrapping_neg());
34+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#![feature(unchecked_shifts)]
2+
3+
fn main() {
4+
unchecked_shl_u8(0, 0);
5+
unchecked_shl_u16(0, 0);
6+
unchecked_shl_u32(0, 0);
7+
unchecked_shl_u64(0, 0);
8+
unchecked_shl_u128(0, 0);
9+
unchecked_shl_i8(0, 0);
10+
unchecked_shl_i16(0, 0);
11+
unchecked_shl_i32(0, 0);
12+
unchecked_shl_i64(0, 0);
13+
unchecked_shl_i128(0, 0);
14+
}
15+
16+
fn unchecked_shl_u8(a: u8, b: u32) {
17+
let result = unsafe { a.unchecked_shl(b) };
18+
assert!(result == a.wrapping_shl(b));
19+
}
20+
21+
fn unchecked_shl_u16(a: u16, b: u32) {
22+
let result = unsafe { a.unchecked_shl(b) };
23+
assert!(result == a.wrapping_shl(b));
24+
}
25+
26+
fn unchecked_shl_u32(a: u32, b: u32) {
27+
let result = unsafe { a.unchecked_shl(b) };
28+
assert!(result == a.wrapping_shl(b));
29+
}
30+
31+
fn unchecked_shl_u64(a: u64, b: u32) {
32+
let result = unsafe { a.unchecked_shl(b) };
33+
assert!(result == a.wrapping_shl(b));
34+
}
35+
36+
fn unchecked_shl_u128(a: u128, b: u32) {
37+
let result = unsafe { a.unchecked_shl(b) };
38+
assert!(result == a.wrapping_shl(b));
39+
}
40+
41+
fn unchecked_shl_i8(a: i8, b: u32) {
42+
let result = unsafe { a.unchecked_shl(b) };
43+
assert!(result == a.wrapping_shl(b));
44+
}
45+
46+
fn unchecked_shl_i16(a: i16, b: u32) {
47+
let result = unsafe { a.unchecked_shl(b) };
48+
assert!(result == a.wrapping_shl(b));
49+
}
50+
51+
fn unchecked_shl_i32(a: i32, b: u32) {
52+
let result = unsafe { a.unchecked_shl(b) };
53+
assert!(result == a.wrapping_shl(b));
54+
}
55+
56+
fn unchecked_shl_i64(a: i64, b: u32) {
57+
let result = unsafe { a.unchecked_shl(b) };
58+
assert!(result == a.wrapping_shl(b));
59+
}
60+
61+
fn unchecked_shl_i128(a: i128, b: u32) {
62+
let result = unsafe { a.unchecked_shl(b) };
63+
assert!(result == a.wrapping_shl(b));
64+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#![feature(unchecked_shifts)]
2+
3+
fn main() {
4+
unchecked_shr_u8(0, 0);
5+
unchecked_shr_u16(0, 0);
6+
unchecked_shr_u32(0, 0);
7+
unchecked_shr_u64(0, 0);
8+
unchecked_shr_u128(0, 0);
9+
unchecked_shr_i8(0, 0);
10+
unchecked_shr_i16(0, 0);
11+
unchecked_shr_i32(0, 0);
12+
unchecked_shr_i64(0, 0);
13+
unchecked_shr_i128(0, 0);
14+
}
15+
16+
fn unchecked_shr_u8(a: u8, b: u32) {
17+
let result = unsafe { a.unchecked_shr(b) };
18+
assert!(result == a.wrapping_shr(b));
19+
}
20+
21+
fn unchecked_shr_u16(a: u16, b: u32) {
22+
let result = unsafe { a.unchecked_shr(b) };
23+
assert!(result == a.wrapping_shr(b));
24+
}
25+
26+
fn unchecked_shr_u32(a: u32, b: u32) {
27+
let result = unsafe { a.unchecked_shr(b) };
28+
assert!(result == a.wrapping_shr(b));
29+
}
30+
31+
fn unchecked_shr_u64(a: u64, b: u32) {
32+
let result = unsafe { a.unchecked_shr(b) };
33+
assert!(result == a.wrapping_shr(b));
34+
}
35+
36+
fn unchecked_shr_u128(a: u128, b: u32) {
37+
let result = unsafe { a.unchecked_shr(b) };
38+
assert!(result == a.wrapping_shr(b));
39+
}
40+
41+
fn unchecked_shr_i8(a: i8, b: u32) {
42+
let result = unsafe { a.unchecked_shr(b) };
43+
assert!(result == a.wrapping_shr(b));
44+
}
45+
46+
fn unchecked_shr_i16(a: i16, b: u32) {
47+
let result = unsafe { a.unchecked_shr(b) };
48+
assert!(result == a.wrapping_shr(b));
49+
}
50+
51+
fn unchecked_shr_i32(a: i32, b: u32) {
52+
let result = unsafe { a.unchecked_shr(b) };
53+
assert!(result == a.wrapping_shr(b));
54+
}
55+
56+
fn unchecked_shr_i64(a: i64, b: u32) {
57+
let result = unsafe { a.unchecked_shr(b) };
58+
assert!(result == a.wrapping_shr(b));
59+
}
60+
61+
fn unchecked_shr_i128(a: i128, b: u32) {
62+
let result = unsafe { a.unchecked_shr(b) };
63+
assert!(result == a.wrapping_shr(b));
64+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#![feature(unchecked_math)]
2+
3+
fn main() {
4+
unchecked_sub_u8(0, 0);
5+
unchecked_sub_u16(0, 0);
6+
unchecked_sub_u32(0, 0);
7+
unchecked_sub_u64(0, 0);
8+
unchecked_sub_u128(0, 0);
9+
unchecked_sub_i8(0, 0);
10+
unchecked_sub_i16(0, 0);
11+
unchecked_sub_i32(0, 0);
12+
unchecked_sub_i64(0, 0);
13+
unchecked_sub_i128(0, 0);
14+
}
15+
16+
fn unchecked_sub_u8(a: u8, b: u8) {
17+
let result = unsafe { a.unchecked_sub(b) };
18+
assert!(result == a.wrapping_sub(b));
19+
}
20+
21+
fn unchecked_sub_u16(a: u16, b: u16) {
22+
let result = unsafe { a.unchecked_sub(b) };
23+
assert!(result == a.wrapping_sub(b));
24+
}
25+
26+
fn unchecked_sub_u32(a: u32, b: u32) {
27+
let result = unsafe { a.unchecked_sub(b) };
28+
assert!(result == a.wrapping_sub(b));
29+
}
30+
31+
fn unchecked_sub_u64(a: u64, b: u64) {
32+
let result = unsafe { a.unchecked_sub(b) };
33+
assert!(result == a.wrapping_sub(b));
34+
}
35+
36+
fn unchecked_sub_u128(a: u128, b: u128) {
37+
let result = unsafe { a.unchecked_sub(b) };
38+
assert!(result == a.wrapping_sub(b));
39+
}
40+
41+
fn unchecked_sub_i8(a: i8, b: i8) {
42+
let result = unsafe { a.unchecked_sub(b) };
43+
assert!(result == a.wrapping_sub(b));
44+
}
45+
46+
fn unchecked_sub_i16(a: i16, b: i16) {
47+
let result = unsafe { a.unchecked_sub(b) };
48+
assert!(result == a.wrapping_sub(b));
49+
}
50+
51+
fn unchecked_sub_i32(a: i32, b: i32) {
52+
let result = unsafe { a.unchecked_sub(b) };
53+
assert!(result == a.wrapping_sub(b));
54+
}
55+
56+
fn unchecked_sub_i64(a: i64, b: i64) {
57+
let result = unsafe { a.unchecked_sub(b) };
58+
assert!(result == a.wrapping_sub(b));
59+
}
60+
61+
fn unchecked_sub_i128(a: i128, b: i128) {
62+
let result = unsafe { a.unchecked_sub(b) };
63+
assert!(result == a.wrapping_sub(b));
64+
}

0 commit comments

Comments
 (0)