public void Test_Uuid80_Ordering() { var a = new Uuid80(123, 42); var a2 = new Uuid80(123, 42); var b = new Uuid80(123, 77); var c = new Uuid80(124, 41); Assert.That(a.CompareTo(a), Is.EqualTo(0)); Assert.That(a.CompareTo(b), Is.EqualTo(-1)); Assert.That(b.CompareTo(a), Is.EqualTo(+1)); Assert.That(c.CompareTo(a), Is.EqualTo(+1)); Assert.That(a < b, Is.True, "a < b"); Assert.That(a <= b, Is.True, "a <= b"); Assert.That(a < a2, Is.False, "a < a"); Assert.That(a <= a2, Is.True, "a <= a"); Assert.That(a < c, Is.True, "a < c"); Assert.That(a > b, Is.False, "a > b"); Assert.That(a >= b, Is.False, "a >= b"); Assert.That(a > a2, Is.False, "a > a"); Assert.That(a >= a2, Is.True, "a >= a"); Assert.That(a > c, Is.False, "a > c"); // parsed from string Assert.That(Uuid80.Parse("1234-137bcf31-0c8873a2") < Uuid80.Parse("1234-604bdf8a-2512b4ad"), Is.True); Assert.That(Uuid80.Parse("1234-d8f17a26-82adb1a4") < Uuid80.Parse("1234-22abbf33-1b2c1db0"), Is.False); Assert.That(Uuid80.Parse("{1234-137bcf31-0c8873a2}") > Uuid80.Parse("{1234-604bdf8a-2512b4ad}"), Is.False); Assert.That(Uuid80.Parse("{1234-d8f17a26-82adb1a4}") > Uuid80.Parse("{1234-22abbf33-1b2c1db0}"), Is.True); // verify byte ordering var d = new Uuid80(0x0001, 0x0000000200000003); var e = new Uuid80(0x0003, 0x0000000200000001); Assert.That(d.CompareTo(e), Is.LessThan(0)); Assert.That(e.CompareTo(d), Is.GreaterThan(0)); // verify that we can sort an array of Uuid80 var uids = new Uuid80[100]; for (int i = 0; i < uids.Length; i++) { uids[i] = Uuid80.NewUuid(); } Assume.That(uids, Is.Not.Ordered, "This can happen with a very small probability. Please try again"); Array.Sort(uids); Assert.That(uids, Is.Ordered); // ordering should be preserved in integer or textual form Assert.That(uids.Select(x => x.ToString()), Is.Ordered.Using <string>(StringComparer.Ordinal), "order should be preserved when ordering by text (hexa)"); }
public void Test_Uuid80_NewUid() { var a = Uuid80.NewUuid(); var b = Uuid80.NewUuid(); Assert.That(a, Is.Not.EqualTo(b)); const int N = 1_000; var uids = new HashSet <string>(StringComparer.Ordinal); for (int i = 0; i < N; i++) { var uid = Uuid80.NewUuid(); string s = uid.ToString(); if (uids.Contains(s)) { Assert.Fail("Duplicate Uuid80 generated: {0}", uid); } uids.Add(s); } Assert.That(uids.Count, Is.EqualTo(N)); }