public virtual void Extract(ObjectDistanceComparator.EventData eventData)
        {
            if (eventData == null)
            {
                return;
            }

            DifferenceResult = eventData.CurrentDifference;
            DifferenceExtracted?.Invoke(DifferenceResult);
            DistanceResult = eventData.CurrentDistance;
            DistanceExtracted?.Invoke(DistanceResult);
        }
        public void Extract()
        {
            UnityEventValueListenerMock <Vector3> differenceExtractedMock = new UnityEventValueListenerMock <Vector3>();

            subject.DifferenceExtracted.AddListener(differenceExtractedMock.Listen);
            UnityEventValueListenerMock <float> distanceExtractedMock = new UnityEventValueListenerMock <float>();

            subject.DistanceExtracted.AddListener(distanceExtractedMock.Listen);

            ObjectDistanceComparator.EventData eventData = new ObjectDistanceComparator.EventData
            {
                CurrentDifference = new Vector3(2f, 5f, 10f),
                CurrentDistance   = 42.123f
            };

            Assert.IsFalse(differenceExtractedMock.Received);
            Assert.IsFalse(distanceExtractedMock.Received);

            subject.Extract(eventData);

            Assert.AreEqual(eventData.CurrentDifference, differenceExtractedMock.Value);
            Assert.AreEqual(eventData.CurrentDistance, distanceExtractedMock.Value);
        }
        public void Extract()
        {
            Vector3UnityEventListenerMock differenceExtractedMock = new Vector3UnityEventListenerMock();

            subject.DifferenceExtracted.AddListener(differenceExtractedMock.Listen);
            FloatUnityEventListenerMock distanceExtractedMock = new FloatUnityEventListenerMock();

            subject.DistanceExtracted.AddListener(distanceExtractedMock.Listen);

            ObjectDistanceComparator.EventData eventData = new ObjectDistanceComparator.EventData
            {
                difference = new Vector3(2f, 5f, 10f),
                distance   = 42.123f
            };

            Assert.IsFalse(differenceExtractedMock.Received);
            Assert.IsFalse(distanceExtractedMock.Received);

            subject.Extract(eventData);

            Assert.AreEqual(eventData.difference, differenceExtractedMock.value);
            Assert.AreEqual(eventData.distance, distanceExtractedMock.value);
        }