Fixed large integer literal warnings

This commit is contained in:
Kyler Olsen 2025-11-16 20:35:44 -07:00
parent 4398b3a4bc
commit c5ab140f5b
1 changed files with 24 additions and 12 deletions

View File

@ -16,6 +16,17 @@ class IntegerTestGenerator(BaseTestGenerator):
'u64': (0, 18446744073709551615), 'u64': (0, 18446744073709551615),
} }
TYPE_VALUES = {
'i8': (-128, 127),
'i16': (-32768, 32767),
'i32': (-2147483648, 2147483647),
'i64': ("INT64_MIN", 9223372036854775807),
'u8': (0, 255),
'u16': (0, 65535),
'u32': (0, 4294967295),
'u64': (0, "UINT64_MAX"),
}
def generate_basic_tests(self): def generate_basic_tests(self):
"""Generate basic test cases.""" """Generate basic test cases."""
@ -46,7 +57,7 @@ class IntegerTestGenerator(BaseTestGenerator):
self.make_success_test("Integer Default Decimal Max i64", self.make_success_test("Integer Default Decimal Max i64",
"9223372036854775807", "i64", 9223372036854775807) "9223372036854775807", "i64", 9223372036854775807)
self.make_success_test("Integer Default Decimal Min i64", self.make_success_test("Integer Default Decimal Min i64",
"-9223372036854775808", "i64", -9223372036854775808) "-9223372036854775808", "i64", "INT64_MIN")
# Underscores # Underscores
self.make_success_test("Integer Default Decimal with Underscore", self.make_success_test("Integer Default Decimal with Underscore",
@ -76,11 +87,12 @@ class IntegerTestGenerator(BaseTestGenerator):
def generate_typed_tests(self, type_name: str): def generate_typed_tests(self, type_name: str):
"""Generate tests for a specific type across all bases.""" """Generate tests for a specific type across all bases."""
min_val, max_val = self.TYPE_RANGES[type_name] min_range, max_range = self.TYPE_RANGES[type_name]
min_value, max_value = self.TYPE_VALUES[type_name]
is_unsigned = type_name.startswith('u') is_unsigned = type_name.startswith('u')
# Basic decimal # Basic decimal
test_val = 42 if max_val >= 42 else max_val test_val = 42 if max_range >= 42 else max_range
self.make_success_test(f"Integer {type_name} Decimal Positive", self.make_success_test(f"Integer {type_name} Decimal Positive",
f"{test_val}:{type_name}", type_name, test_val) f"{test_val}:{type_name}", type_name, test_val)
@ -90,41 +102,41 @@ class IntegerTestGenerator(BaseTestGenerator):
# Negative (only for signed types) # Negative (only for signed types)
if not is_unsigned: if not is_unsigned:
neg_val = -100 if min_val <= -100 else min_val neg_val = -100 if min_range <= -100 else min_range
self.make_success_test(f"Integer {type_name} Decimal Negative", self.make_success_test(f"Integer {type_name} Decimal Negative",
f"{neg_val}:{type_name}", type_name, neg_val) f"{neg_val}:{type_name}", type_name, neg_val)
# Hexadecimal # Hexadecimal
hex_val = min(255, max_val) hex_val = min(255, max_range)
self.make_success_test(f"Integer {type_name} Hex", self.make_success_test(f"Integer {type_name} Hex",
f"0x{hex_val:X}:{type_name}", type_name, hex_val) f"0x{hex_val:X}:{type_name}", type_name, hex_val)
# Binary # Binary
bin_val = min(15, max_val) bin_val = min(15, max_range)
self.make_success_test(f"Integer {type_name} Binary", self.make_success_test(f"Integer {type_name} Binary",
f"0b{bin_val:b}:{type_name}", type_name, bin_val) f"0b{bin_val:b}:{type_name}", type_name, bin_val)
# Octal # Octal
oct_val = min(63, max_val) oct_val = min(63, max_range)
self.make_success_test(f"Integer {type_name} Octal", self.make_success_test(f"Integer {type_name} Octal",
f"0o{oct_val:o}:{type_name}", type_name, oct_val) f"0o{oct_val:o}:{type_name}", type_name, oct_val)
# Max value # Max value
self.make_success_test(f"Integer {type_name} Max Value", self.make_success_test(f"Integer {type_name} Max Value",
f"{max_val}:{type_name}", type_name, max_val) f"{max_range}:{type_name}", type_name, max_value)
# Min value # Min value
self.make_success_test(f"Integer {type_name} Min Value", self.make_success_test(f"Integer {type_name} Min Value",
f"{min_val}:{type_name}", type_name, min_val) f"{min_range}:{type_name}", type_name, min_value)
# Overflow # Overflow
overflow_val = max_val + 1 overflow_val = max_range + 1
self.make_error_test(f"Integer {type_name} Overflow", self.make_error_test(f"Integer {type_name} Overflow",
f"{overflow_val}:{type_name}", f"{overflow_val}:{type_name}",
f"Integer overflow: value exceeds range for {type_name}.") f"Integer overflow: value exceeds range for {type_name}.")
# Underflow # Underflow
underflow_val = min_val - 1 underflow_val = min_range - 1
self.make_error_test(f"Integer {type_name} Underflow", self.make_error_test(f"Integer {type_name} Underflow",
f"{underflow_val}:{type_name}", f"{underflow_val}:{type_name}",
f"Integer overflow: value exceeds range for {type_name}.") f"Integer overflow: value exceeds range for {type_name}.")
@ -187,7 +199,7 @@ class IntegerTestGenerator(BaseTestGenerator):
elif type_name == 'u64': elif type_name == 'u64':
self.make_success_test("Integer u64 Hex Max", self.make_success_test("Integer u64 Hex Max",
"0xFFFFFFFFFFFFFFFF:u64", "0xFFFFFFFFFFFFFFFF:u64",
"u64", 18446744073709551615) "u64", "UINT64_MAX")
self.make_success_test("Integer u64 Binary Sample", self.make_success_test("Integer u64 Binary Sample",
"0b1010101010101010:u64", "u64", 43690) "0b1010101010101010:u64", "u64", 43690)
self.make_success_test("Integer u64 Octal Sample", "0o7777:u64", "u64", 4095) self.make_success_test("Integer u64 Octal Sample", "0o7777:u64", "u64", 4095)