예제 #1
0
        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);
        }
예제 #2
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;
        }
예제 #3
0
        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");
        }
예제 #4
0
 public int CompareTo(Bucket other)
 {
     return(min.CompareTo(other.min));
 }