public void InitMarkers()
 {
     // Markers
     //  root
     //  object
     //  tag
     _root   = _links.GetOrCreate(1U, 1U);
     _object = _links.GetOrCreate(_root, _addressToRawNumberConverter.Convert(1U));
     _tag    = _links.GetOrCreate(_root, _addressToRawNumberConverter.Convert(2U));
 }
Exemplo n.º 2
0
        private static ulong BuiltCharacterPosition(ILinks <ulong> links, AddressToRawNumberConverter <ulong> addressToRawNumberConverter, Platform.Data.Doublets.Unicode.CharToUnicodeSymbolConverter <ulong> charToUnicodeSymbolConverter, char c, int i)
        {
            var source = addressToRawNumberConverter.Convert((ulong)(i + 10));
            var target = charToUnicodeSymbolConverter.Convert(c);
            var result = links.GetOrCreate(source, target);

            return(result);
        }
Exemplo n.º 3
0
        public static void RunRandomCreations <TLink>(this ILinks <TLink> links, ulong amountOfCreations)
        {
            var random = RandomHelpers.Default;
            var addressToUInt64Converter = UncheckedConverter <TLink, ulong> .Default;
            var uInt64ToAddressConverter = UncheckedConverter <ulong, TLink> .Default;

            for (var i = 0UL; i < amountOfCreations; i++)
            {
                var linksAddressRange = new Range <ulong>(0, addressToUInt64Converter.Convert(links.Count()));
                var source            = uInt64ToAddressConverter.Convert(random.NextUInt64(linksAddressRange));
                var target            = uInt64ToAddressConverter.Convert(random.NextUInt64(linksAddressRange));
                links.GetOrCreate(source, target);
            }
        }
Exemplo n.º 4
0
 public static void TestMultipleRandomCreationsAndDeletions<TLink>(this ILinks<TLink> links, int maximumOperationsPerCycle)
 {
     var comparer = Comparer<TLink>.Default;
     var addressToUInt64Converter = CheckedConverter<TLink, ulong>.Default;
     var uInt64ToAddressConverter = CheckedConverter<ulong, TLink>.Default;
     for (var N = 1; N < maximumOperationsPerCycle; N++)
     {
         var random = new System.Random(N);
         var created = 0UL;
         var deleted = 0UL;
         for (var i = 0; i < N; i++)
         {
             var linksCount = addressToUInt64Converter.Convert(links.Count());
             var createPoint = random.NextBoolean();
             if (linksCount >= 2 && createPoint)
             {
                 var linksAddressRange = new Range<ulong>(1, linksCount);
                 TLink source = uInt64ToAddressConverter.Convert(random.NextUInt64(linksAddressRange));
                 TLink target = uInt64ToAddressConverter.Convert(random.NextUInt64(linksAddressRange)); //-V3086
                 var resultLink = links.GetOrCreate(source, target);
                 if (comparer.Compare(resultLink, uInt64ToAddressConverter.Convert(linksCount)) > 0)
                 {
                     created++;
                 }
             }
             else
             {
                 links.Create();
                 created++;
             }
         }
         Assert.True(created == addressToUInt64Converter.Convert(links.Count()));
         for (var i = 0; i < N; i++)
         {
             TLink link = uInt64ToAddressConverter.Convert((ulong)i + 1UL);
             if (links.Exists(link))
             {
                 links.Delete(link);
                 deleted++;
             }
         }
         Assert.True(addressToUInt64Converter.Convert(links.Count()) == 0L);
     }
 }