Example #1
0
 public Peer(TestRunWithConfiguration tc, RegistrationId registrationId, string name)
 {
     _tc            = tc;
     _name          = name;
     RegistrationId = registrationId;
     VectorValues   = RegistrationIdDistance.GetVectorValues(_tc.CryptoLibrary, registrationId, _tc.NumberOfDimensions).Select(x => (float)x).ToArray();
 }
Example #2
0
        unsafe void Test1Subroutine(ushort vector1_i, ushort vector2_i, short correct_d_i)
        {
            var d_i = RegistrationIdDistance.VectorComponentRoutine(vector1_i, vector2_i);

            Assert.IsTrue(correct_d_i == d_i);

            d_i = RegistrationIdDistance.VectorComponentRoutine(vector2_i, vector1_i);
            Assert.IsTrue(correct_d_i == d_i);
        }
Example #3
0
            public RegistrationIdDistance GetMinimalDistanceOfThisAndNeighborsToTarget(Peer target)
            {
                RegistrationIdDistance minDistance = RegistrationId.GetDistanceTo(_tc.CryptoLibrary, target.RegistrationId, _tc.NumberOfDimensions);

                foreach (var neighbor in Neighbors.Values)
                {
                    var d = neighbor.RegistrationId.GetDistanceTo(_tc.CryptoLibrary, target.RegistrationId, _tc.NumberOfDimensions);
                    if (minDistance.IsGreaterThan(d))
                    {
                        minDistance = d;
                    }
                }

                return(minDistance);
            }
Example #4
0
        void GetPosition(IVisiblePeer peer1, IVisiblePeer peer2, out Point p1, out Point p2)
        {
            var v1 = peer1.VectorValues;
            var x1 = v1[0];
            var y1 = v1[1];

            var v2 = peer2.VectorValues;
            var x2 = v2[0];
            var y2 = v2[1];

            RegistrationIdDistance.ProcessVectorInLoopedRegistrationIdSpace(x1, ref x2);
            RegistrationIdDistance.ProcessVectorInLoopedRegistrationIdSpace(y1, ref y2);

            p1 = new Point(margin + x1 * (canvas.ActualWidth - margin * 2), margin + y1 * (canvas.ActualHeight - margin * 2));
            p2 = new Point(margin + x2 * (canvas.ActualWidth - margin * 2), margin + y2 * (canvas.ActualHeight - margin * 2));
        }
Example #5
0
            public Peer GetMostFarNeighbor()
            {
                RegistrationIdDistance maxDistance = null;
                Peer mostFarNeighbor = null;

                foreach (var neighbor in Neighbors.Values)
                {
                    var d = neighbor.RegistrationId.GetDistanceTo(_tc.CryptoLibrary, this.RegistrationId, _tc.NumberOfDimensions);
                    if (maxDistance == null || d.IsGreaterThan(maxDistance))
                    {
                        maxDistance     = d;
                        mostFarNeighbor = neighbor;
                    }
                }

                return(mostFarNeighbor);
            }