public void MaxGuid() { Assert.That(TimeGuidBitsLayout.MaxTimeGuid, Is.EqualTo(new byte[] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xbf, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f })); Assert.That(TimeGuidBitsLayout.GetTimestamp(TimeGuidBitsLayout.MaxTimeGuid), Is.EqualTo(new Timestamp(new DateTime(1652084544606846975L, DateTimeKind.Utc).Ticks))); Assert.That(TimeGuidBitsLayout.GetClockSequence(TimeGuidBitsLayout.MaxTimeGuid), Is.EqualTo(16383)); Assert.That(TimeGuidBitsLayout.GetNode(TimeGuidBitsLayout.MaxTimeGuid), Is.EqualTo(new byte[] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff })); }
public void MinGuid() { Assert.That(TimeGuidBitsLayout.MinTimeGuid, Is.EqualTo(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 })); Assert.That(TimeGuidBitsLayout.GetTimestamp(TimeGuidBitsLayout.MinTimeGuid), Is.EqualTo(new Timestamp(new DateTime(1582, 10, 15, 0, 0, 0, DateTimeKind.Utc).Ticks))); Assert.That(TimeGuidBitsLayout.GetClockSequence(TimeGuidBitsLayout.MinTimeGuid), Is.EqualTo(0)); Assert.That(TimeGuidBitsLayout.GetNode(TimeGuidBitsLayout.MinTimeGuid), Is.EqualTo(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 })); }
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 GetClockSequence_AllDistinctClockSequences() { var node = new byte[6]; var timestamp = Timestamp.Now; var uniqueClockSequences = new HashSet <ushort>(); for (var clockSequence = TimeGuidBitsLayout.MinClockSequence; clockSequence <= TimeGuidBitsLayout.MaxClockSequence; clockSequence++) { var timeGuid = TimeGuidBitsLayout.Format(timestamp, clockSequence, node); var actualClockSequence = TimeGuidBitsLayout.GetClockSequence(timeGuid); uniqueClockSequences.Add(actualClockSequence); Assert.That(actualClockSequence, Is.EqualTo(clockSequence)); } Assert.That(uniqueClockSequences.Count, Is.EqualTo(TimeGuidBitsLayout.MaxClockSequence + 1)); }