#![allow(arithmetic_overflow)]
#[test]
fn test_u32_overflowing_add() {
let max_value: u32 = u32::MAX;
let (result, overflowed) = max_value.overflowing_add(1);
assert_eq!(result, 0, "Expected wraparound to 0");
assert!(overflowed, "Expected overflow flag to be set");
}
#[test]
fn test_u32_checked_overflow() {
let max_value: u32 = u32::MAX;
assert!(max_value.checked_add(1).is_none(), "Expected overflow to return None");
}
#[test]
#[should_panic]
fn test_u32_overflow() {
let max_value: u32 = u32::MAX;
let _overflowed_value = max_value + 1; }
#[test]
#[should_panic]
fn test_u16_overflow() {
let max_value: u16 = u16::MAX;
let _overflowed_value = max_value + 1; }
#[test]
#[should_panic]
fn test_i8_overflow_positive() {
let max_value: i8 = i8::MAX;
let _overflowed_value = max_value + 1; }
#[test]
#[should_panic]
fn test_i8_overflow_negative() {
let min_value: i8 = i8::MIN;
let _overflowed_value = min_value - 1; }