Unit test for the Manual API's struct and union layout calculations.
This test file verifies that the layout algorithms in types.c (specifically infix_type_create_struct and infix_type_create_union) produce memory layouts that are identical to those produced by the host C compiler.
It defines several native C struct and union types and then programmatically creates their infix_type equivalents. It then asserts that the size, alignment, and member offset fields of the generated types match the results of the sizeof, _Alignof, and offsetof operators on the native types.
The test covers:
- A struct with standard internal padding.
- A struct with no padding.
- A struct containing a nested struct.
- A packed struct (
#pragma pack(1)).
- A union with members of different sizes and alignments.
This test is crucial for ensuring that infix can correctly and portably reason about the memory representation of C data structures.