public void GenerateByTimestampAndClockSequence_InvalidClockSequence() { var guidGen = new TimeGuidGenerator(PreciseTimestampGenerator.Instance); Assert.Throws <InvalidOperationException>(() => guidGen.NewGuid(Timestamp.Now, ushort.MaxValue)); Assert.Throws <InvalidOperationException>(() => guidGen.NewGuid(Timestamp.Now, TimeGuidBitsLayout.MaxClockSequence + 1)); }
public void GenerateByTimestamp() { var guidGen = new TimeGuidGenerator(PreciseTimestampGenerator.Instance); var ts = Timestamp.Now; var guid = guidGen.NewGuid(ts); Assert.That(TimeGuidBitsLayout.GetTimestamp(guid), Is.EqualTo(ts)); }
public void GenerateByTimestampAndClockSequence() { var guidGen = new TimeGuidGenerator(PreciseTimestampGenerator.Instance); var ts = Timestamp.Now; var clockSequence = TimeGuidGenerator.GenerateRandomClockSequence(); var guid = guidGen.NewGuid(ts, clockSequence); Assert.That(TimeGuidBitsLayout.GetTimestamp(guid), Is.EqualTo(ts)); Assert.That(TimeGuidBitsLayout.GetClockSequence(guid), Is.EqualTo(clockSequence)); }
public void TimeGuidGenerator_Collisions() { var guidGen = new TimeGuidGenerator(CreateNewTimestampGenerator()); var results = new Dictionary <byte[], byte>(10 * 1000 * 1000, ByteArrayComparer.Instance); for (var i = 0; i < 10 * 1000 * 1000; i++) { results.Add(guidGen.NewGuid(), 0); } }
public void CompareTo_ByTimestamp() { var timestamp1 = Timestamp.Now; var timestamp2 = timestamp1.AddTicks(1); var clockSequence = TimeGuidGenerator.GenerateRandomClockSequence(); var timeGuid1 = new TimeGuid(timestamp1, clockSequence, new byte[6]); var timeGuid2 = new TimeGuid(timestamp2, clockSequence, new byte[6]); Assert.That(timeGuid2.CompareTo(timeGuid1), Is.Positive); Assert.That(timeGuid1.CompareTo(timeGuid2), Is.Negative); }
public DateTime GetDateTime() => TimeGuidGenerator.ExtractDateTime(Value);
private static ushort RandomClockSequence() { return(TimeGuidGenerator.GenerateRandomClockSequence()); }
private static byte[] RandomNode() { return(TimeGuidGenerator.GenerateRandomNode()); }
public void GetNode() { var node = TimeGuidGenerator.GenerateRandomNode(); Assert.That(new TimeGuid(Timestamp.Now, TimeGuidGenerator.GenerateRandomClockSequence(), node).GetNode(), Is.EqualTo(node)); }
public void GetClockSequence() { var clockSequence = TimeGuidGenerator.GenerateRandomClockSequence(); Assert.That(TimeGuid.NewGuid(Timestamp.Now, clockSequence).GetClockSequence(), Is.EqualTo(clockSequence)); }