public unsafe void TestDict() { Dictionary <MetadataNamePart, int> dict = new Dictionary <MetadataNamePart, int>(); byte[] bytes = Encoding.UTF8.GetBytes("A.B.XXXXXXXXX" + '\0'); fixed(byte *fbytes = &bytes[0]) { MetadataName name = new MetadataName(fbytes, null); MetadataNamePart[] parts = new[] { MetadataNamePart.Empty, name.GetExtent(), name.GetExtent().GetPart(0, 1), name.GetExtent().GetPart(2, 1), name.GetExtent().GetPart(4, 6), }; for (int i = 0; i < parts.Length; i++) { dict.Add(parts[i], i); } Assert.That(dict.Count, Is.EqualTo(parts.Length)); for (int i = 0; i < parts.Length; i++) { int value; Assert.That(dict.TryGetValue(parts[i], out value), Is.True); Assert.That(value, Is.EqualTo(i)); } } }
public unsafe void TestPrefixSuffix(string str, char separator, string expectedPrefix, string expectedSuffix) { byte[] bytes = Encoding.UTF8.GetBytes(str + '\0'); fixed(byte *fbytes = &bytes[0]) { MetadataName name = new MetadataName(fbytes, null); MetadataNamePart prefix; MetadataNamePart suffix; MetadataNamePart extent = name.GetExtent(); int index = extent.IndexOf((byte)separator); Assert.That((index < 0), Is.EqualTo((expectedPrefix == null))); if (index >= 0) { prefix = extent.GetPart(0, index); Assert.That(prefix.ToString(), Is.EqualTo(expectedPrefix)); suffix = extent.GetPart(index + 1); Assert.That(suffix.ToString(), Is.EqualTo(expectedSuffix)); } } }
private static unsafe void TestDict() { Dictionary<MetadataNamePart, int> dict = new Dictionary<MetadataNamePart, int>(); byte[] bytes = Encoding.UTF8.GetBytes("A.B.XXXXXXXXX" + '\0'); fixed (byte* fbytes = &bytes[0]) { MetadataName name = new MetadataName(fbytes, null); MetadataNamePart[] parts = new[] { MetadataNamePart.Empty, name.GetExtent(), name.GetExtent().GetPart(0, 1), name.GetExtent().GetPart(2, 1), name.GetExtent().GetPart(4, 6), }; for (int i = 0; i < parts.Length; i++) { dict.Add(parts[i], i); } Assert(dict.Count == parts.Length); for (int i = 0; i < parts.Length; i++) { int value; Assert(dict.TryGetValue(parts[i], out value)); Assert(value == i); } } }
private static unsafe void TestPrefixSuffix(string str, char separator, string expectedPrefix, string expectedSuffix) { byte[] bytes = Encoding.UTF8.GetBytes(str + '\0'); fixed (byte* fbytes = &bytes[0]) { MetadataName name = new MetadataName(fbytes, null); MetadataNamePart prefix; MetadataNamePart suffix; MetadataNamePart extent = name.GetExtent(); int index = extent.IndexOf((byte)separator); Assert((index < 0) == (expectedPrefix == null)); if (index >= 0) { prefix = extent.GetPart(0, index); Assert(prefix.ToString() == expectedPrefix); suffix = extent.GetPart(index + 1); Assert(suffix.ToString() == expectedSuffix); } } }