diff --git a/SLS_Tests/generate_tests/integer_tests.py b/SLS_Tests/generate_tests/integer_tests.py index 55e6b8a..e8ba75c 100644 --- a/SLS_Tests/generate_tests/integer_tests.py +++ b/SLS_Tests/generate_tests/integer_tests.py @@ -16,6 +16,17 @@ class IntegerTestGenerator(BaseTestGenerator): '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): """Generate basic test cases.""" @@ -46,7 +57,7 @@ class IntegerTestGenerator(BaseTestGenerator): self.make_success_test("Integer Default Decimal Max i64", "9223372036854775807", "i64", 9223372036854775807) self.make_success_test("Integer Default Decimal Min i64", - "-9223372036854775808", "i64", -9223372036854775808) + "-9223372036854775808", "i64", "INT64_MIN") # Underscores self.make_success_test("Integer Default Decimal with Underscore", @@ -76,11 +87,12 @@ class IntegerTestGenerator(BaseTestGenerator): def generate_typed_tests(self, type_name: str): """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') # 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", f"{test_val}:{type_name}", type_name, test_val) @@ -90,41 +102,41 @@ class IntegerTestGenerator(BaseTestGenerator): # Negative (only for signed types) 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", f"{neg_val}:{type_name}", type_name, neg_val) # Hexadecimal - hex_val = min(255, max_val) + hex_val = min(255, max_range) self.make_success_test(f"Integer {type_name} Hex", f"0x{hex_val:X}:{type_name}", type_name, hex_val) # Binary - bin_val = min(15, max_val) + bin_val = min(15, max_range) self.make_success_test(f"Integer {type_name} Binary", f"0b{bin_val:b}:{type_name}", type_name, bin_val) # Octal - oct_val = min(63, max_val) + oct_val = min(63, max_range) self.make_success_test(f"Integer {type_name} Octal", f"0o{oct_val:o}:{type_name}", type_name, oct_val) # 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 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_val = max_val + 1 + overflow_val = max_range + 1 self.make_error_test(f"Integer {type_name} Overflow", f"{overflow_val}:{type_name}", f"Integer overflow: value exceeds range for {type_name}.") # Underflow - underflow_val = min_val - 1 + underflow_val = min_range - 1 self.make_error_test(f"Integer {type_name} Underflow", f"{underflow_val}:{type_name}", f"Integer overflow: value exceeds range for {type_name}.") @@ -187,7 +199,7 @@ class IntegerTestGenerator(BaseTestGenerator): elif type_name == 'u64': self.make_success_test("Integer u64 Hex Max", "0xFFFFFFFFFFFFFFFF:u64", - "u64", 18446744073709551615) + "u64", "UINT64_MAX") self.make_success_test("Integer u64 Binary Sample", "0b1010101010101010:u64", "u64", 43690) self.make_success_test("Integer u64 Octal Sample", "0o7777:u64", "u64", 4095)