Пример #1
0
        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));
                }
            }
        }
Пример #2
0
        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));
                }
            }
        }
Пример #3
0
        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);
                }
            }
        }
Пример #4
0
        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);
                }
            }
        }