public void ShouldMaintain48BitWorkerIdFromULong()
        {
            var oxidation = new BigIntegerOxidation(WorkerId);
            var key = oxidation.Oxidize();
            var strKey = key.ToLexicographicId();

            Assert.AreEqual(strKey.Length, 39);
            Assert.AreEqual(BigInteger.Parse(strKey, NumberStyles.AllowLeadingWhite), key);
        }
        public void ShouldMaintain48BitWorkerIdFromULong()
        {
            var oxidation = new BigIntegerOxidation(WorkerId);
            var key       = oxidation.Oxidize();
            var strKey    = key.ToLexicographicId();

            Assert.AreEqual(strKey.Length, 39);
            Assert.AreEqual(BigInteger.Parse(strKey, NumberStyles.AllowLeadingWhite), key);
        }
Пример #3
0
        public void ShouldMaintain48BitWorkerIdFromULong()
        {
            var oxidation = new BigIntegerOxidation(WorkerId);
            var key       = oxidation.Oxidize();
            var result    = key.ToByteArray();

            var id = BitConverter.ToUInt64(result, 2) & BigIntegerOxidation.IdentifierMask;

            Assert.AreEqual(WorkerId, id);
        }
        public void Should_maintain_48bit_worker_id_from_ulong()
        {
            // 48-bits = 12 hex digits
            ulong worker_id = 0x12345678abcd;

            var oxidation = new BigIntegerOxidation(worker_id);
            BigInteger key = oxidation.Oxidize();
            var result = key.ToByteArray();
            ulong id = BitConverter.ToUInt64(result, 2) & BigIntegerOxidation.IdentifierMask;
            Assert.AreEqual(worker_id, id);
        }
        public void Should_maintain_48bit_worker_id_from_littleendian()
        {
            // 48-bits = 6 bytes
            var worker_id = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };

            var oxidation = new BigIntegerOxidation(worker_id, BigIntegerOxidation.DefaultEpoch, true);
            BigInteger key = oxidation.Oxidize();
            var result = key.ToByteArray();
            for (var i = 0; i < 6; i++)
                Assert.AreEqual(worker_id[i], result[i + 2]);
        }
        public void ShouldMaintain48BitWorkerIdFromBigEndian()
        {
            // 48-bits = 6 bytes
            var workerId = new byte[] {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};

            var oxidation = new BigIntegerOxidation(workerId);
            var key = oxidation.Oxidize();
            var result = key.ToByteArray();

            for (var i = 0; i < 6; i++)
                Assert.AreEqual(workerId[5 - i], result[i + 2]);
        }
Пример #7
0
        public void SequentialKeysAreSequential()
        {
            // 32-bits = 8 hex digits
            var oxidation = new BigIntegerOxidation(0x12345678abcd);
            var key       = oxidation.Oxidize();
            var key2      = oxidation.Oxidize();
            var key3      = oxidation.Oxidize();

            System.Threading.Thread.Sleep(10);
            var key4 = oxidation.Oxidize();
            var key5 = oxidation.Oxidize();

            Assert.IsTrue(key5 > key4 && key4 > key3 && key3 > key2 && key2 > key);
        }
Пример #8
0
        public void ShouldMaintain48BitWorkerIdFromBigEndian()
        {
            // 48-bits = 6 bytes
            var workerId = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };

            var oxidation = new BigIntegerOxidation(workerId);
            var key       = oxidation.Oxidize();
            var result    = key.ToByteArray();

            for (var i = 0; i < 6; i++)
            {
                Assert.AreEqual(workerId[5 - i], result[i + 2]);
            }
        }
        public void Sequential_keys_are_sequential()
        {
            // 32-bits = 8 hex digits
            var oxidation = new BigIntegerOxidation(0x12345678abcd);
            BigInteger key = oxidation.Oxidize();
            BigInteger key2 = oxidation.Oxidize();
            BigInteger key3 = oxidation.Oxidize();

            System.Threading.Thread.Sleep(10);
            BigInteger key4 = oxidation.Oxidize();
            BigInteger key5 = oxidation.Oxidize();

            Assert.IsTrue(key5 > key4 && key4 > key3 && key3 > key2 && key2 > key);
        }
        public void ShouldMaintain48BitWorkerIdFromULong()
        {
            var oxidation = new BigIntegerOxidation(WorkerId);
            var key = oxidation.Oxidize();
            var result = key.ToByteArray();

            var id = BitConverter.ToUInt64(result, 2) & BigIntegerOxidation.IdentifierMask;

            Assert.AreEqual(WorkerId, id);
        }