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