public void MASTER_STRUCTFieldsRecursive() { var structLayout = UnsafeLayout.GetLayout <MASTER_STRUCT>(recursive: true, new List <Type> { typeof(Guid) }); Assert.AreEqual(7, structLayout.Count()); }
public void UnsafeStructRecursive() { TypeLayout.PrintLayout <WithNestedUnsafeStruct>(); var structLayout = UnsafeLayout.GetLayout <WithNestedUnsafeStruct>(); Assert.AreEqual(1, structLayout.Count()); Assert.AreEqual(0, structLayout[0].Offset); Assert.AreEqual(33, structLayout[0].Size); }
protected void AssertNonRecursiveWithPadding <T>() where T : struct { TypeLayout.PrintLayout <T>(); var structLayout = UnsafeLayout.GetLayout <T>(recursive: false); var typeLayout = TypeLayout.GetLayout <T>(includePaddings: true); CollectionAssert.AreEquivalent(typeLayout.Fields, structLayout); Assert.AreEqual(Unsafe.SizeOf <T>(), typeLayout.Size); }
public void UnsafeLayoutPaddingsRecursiveStruct() { UnsafeLayout.GetLayout <VeryVeryComplexStruct>(recursive: true); }