from stdint import * import ctraits import stdio import testcheck # FormatStringTest - format string regression test export def main() -> int: testcheck.begin("FormatStringTest: Format String Regression") b: str = "hello world" for i in b: stdio.printf("%c\n", i) b += 1 print(b-11) l: []u64 = [0, 43, 2, 3, 4] l[0] = 1000 for i in l: stdio.printf("%llu\n", i) print("Value: ", f"0x{ULONGLONG(0x11)}") print("ULL Hex: ", f"0x{ULONGLONG(0x11):016X}") print("LL Hex: ", f"{LONGLONG(0x11):016X}") print("ULL Dec: ", f"{ULONGLONG(42):d}") print("LL Dec: ", f"{LONGLONG(42):d}") print("Hex: ", f"{0x11:016X}") print("Dec: ", f"{42:d}") print("Float: ", f"{3.14159:.2f}") # f-string assignment: must build a string, not printf directly s: str = f"Value=0x{ULONGLONG(42)}, Hex=0x{ULONGLONG(0x11):016X}" print("Assigned: ", s) # ctraits.isptr compile-time type check. # &s is i8** (char**); implicit pointer casts require matching depth, so annotate str*. ptr_var: str* = &s val_var: int = 42 cif ctraits.isptr(ptr_var): print("ptr_var is pointer") cif not ctraits.isptr(val_var): print("val_var is not pointer") testcheck.section("placeholder") testcheck.ok("testcheck framework ready") testcheck.info("placeholder test") return testcheck.end()