public void CompareTest() { byte[] i = new byte[20]; byte[] j = new byte[20]; i[19] = 1; j[19] = 2; NodeId one = new NodeId(i); NodeId two = new NodeId(j); Assert.IsTrue(one.CompareTo(two) < 0); Assert.IsTrue(two.CompareTo(one) > 0); Assert.IsTrue(one.CompareTo(one) == 0); }
internal static void ManyNodes(out RoutingTable routingTable, out List <NodeId> nodes) { // Generate our local id byte[] id = new byte[20]; id[19] = 7; nodes = new List <NodeId>(); RoutingTable table = new RoutingTable(new Node(new NodeId(id), new IPEndPoint(IPAddress.Any, 0))); for (int i = 0; i <= 30; i++) { if (i == 7) { continue; } id = new byte[20]; id[19] = (byte)i; nodes.Add(new NodeId(id)); table.Add(new Node(new NodeId(id), new IPEndPoint(IPAddress.Any, 0))); } nodes.Sort(delegate(NodeId left, NodeId right) { NodeId dLeft = left ^ table.LocalNode.Id; NodeId dRight = right ^ table.LocalNode.Id; return(dLeft.CompareTo(dRight)); }); nodes.RemoveAll(delegate(NodeId n) { return(table.FindNode(n) == null); }); routingTable = table; }
public void XorTest() { NodeId zero = new NodeId(new byte[20]); byte[] b = new byte[20]; b[0] = 1; NodeId one = new NodeId(b); NodeId r = one ^ zero; Assert.AreEqual(one, r, "#1"); Assert.IsTrue(one > zero, "#2"); Assert.IsTrue(one.CompareTo(zero) > 0, "#3"); NodeId z = one ^ r; Assert.AreEqual(zero, z, "#4"); }
public int CompareTo(Bucket other) { return(min.CompareTo(other.min)); }