private unsafe static void TestStructureSizes(List <string> errors, Dictionary <string, int> nativeData)
        {
            Dictionary <string, int> managedData = NativeStructures.ToDictionary(x => x.Name, x => Marshal.SizeOf(x));

            var difference = nativeData.Keys.Except(managedData.Keys);

            if (difference.Any())
            {
                errors.Add("Structure lists are different: " + string.Join(", ", difference) + ".");
                return;
            }

            foreach (string key in nativeData.Keys)
            {
                int nativeSize  = nativeData[key];
                int managedSize = managedData[key];

                if (nativeSize != managedSize)
                {
                    errors.Add("Structure " + key + " declarations are different. Expected size is " + nativeSize.ToString(CultureInfo.InvariantCulture) + " actual size is " + managedSize.ToString(CultureInfo.InvariantCulture) + ".");
                }
            }
        }