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)); }
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); }
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); } }
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); } }