Esempio n. 1
0
        public void Should_sort_128_by_distance_from_end()
        {
            var a = new KNodeId128(ulong.MaxValue, ulong.MaxValue);
            var l = Enumerable.Range(0, 256).Select(i => KNodeId <KNodeId128> .Create()).ToArray();

            Array.Sort(l, new KNodeIdDistanceComparer <KNodeId128>(a));
            l.Should().BeInDescendingOrder(KNodeIdComparer <KNodeId128> .Default);
        }
        public void Should_calculate_proper_distance_offset_for_int128()
        {
            var a = new KNodeId128(0, 0);
            var b = new KNodeId128(0, 1);
            var o = (Span <byte>) new byte[16];
            var s = (ReadOnlySpan <byte>)o;

            KNodeId.CalculateDistance(a, b, o);
            s.CountLeadingZeros().Should().Be(127);
        }
Esempio n. 3
0
        public async Task Can_randomly_populate_int128()
        {
            var s = new KNodeId128(Guid.Empty);
            var t = new KFixedRoutingTable <KNodeId128, object>(s, new FakeNetwork <KNodeId128, object>());

            for (int i = 0; i < 262144 * 8; i++)
            {
                await t.TouchAsync(new KNodeId128(Guid.NewGuid()), null);
            }
        }
Esempio n. 4
0
        public async Task Can_randomly_populate_int128_mt()
        {
            var s = new KNodeId128(Guid.Empty);
            var t = new KFixedRoutingTable <KNodeId128, object>(s, new FakeSlowNetwork <KNodeId128, object>());

            var l = new List <Task>();

            for (int i = 0; i < 1024; i++)
            {
                l.Add(t.TouchAsync(new KNodeId128(Guid.NewGuid()), null).AsTask());
            }

            await Task.WhenAll(l);
        }