/// <summary>
        /// Második eset: az egyik kör a másikon belül helyezkedik el:
        /// Megoldás: a nagyobb kört arányosan csökkentjük, a kisebb kört pedig arányosan növeljük
        /// </summary>
        protected bool CheckInclude(NearbyBluetoothTag tag1, NearbyBluetoothTag tag2)
        {
            NearbyBluetoothTag bigger, smaller;

            if (tag1.Includes(tag2))
            {
                bigger  = tag1;
                smaller = tag2;
            }
            else if (tag2.Includes(tag1))
            {
                bigger  = tag2;
                smaller = tag1;
            }
            else
            {
                return(false);
            }

            double deviance = bigger.AveragePredictedDistanceFromTag - (LocationCalculator.Distance(bigger.Origo, smaller.Origo) + smaller.AveragePredictedDistanceFromTag);

            deviance += BIAS;   // Az eltérés torzítása, így biztosan lesz metszéspont
            double max   = bigger.AveragePredictedDistanceFromTag + smaller.AveragePredictedDistanceFromTag;
            double brate = bigger.AveragePredictedDistanceFromTag / max;
            double srate = smaller.AveragePredictedDistanceFromTag / max;

            bigger.SetAveragePredictedDistance(bigger.AveragePredictedDistanceFromTag - deviance * brate);
            smaller.SetAveragePredictedDistance(smaller.AveragePredictedDistanceFromTag + deviance * srate);


            //TEST
            double dist = bigger.AveragePredictedDistanceFromTag - (LocationCalculator.Distance(bigger.Origo, smaller.Origo) + smaller.AveragePredictedDistanceFromTag);

            if (dist > 0.0)
            {
                dist = 0; /* throw new Exception("Calculation error: distance must be 0.0"); */
            }
            //TEST

            return(true);
        }
        /// <summary>
        /// Második eset: az egyik kör a másikon belül helyezkedik el:
        /// Megoldás: a nagyobb kört arányosan csökkentjük, a kisebb kört pedig arányosan növeljük
        /// </summary>
        protected bool CheckInclude(NearbyBluetoothTag tag1, NearbyBluetoothTag tag2)
        {
            NearbyBluetoothTag bigger, smaller;
            if (tag1.Includes(tag2))
            {
                bigger = tag1;
                smaller = tag2;
            }
            else if (tag2.Includes(tag1))
            {
                bigger = tag2;
                smaller = tag1;
            }
            else return false;

            double deviance = bigger.AveragePredictedDistanceFromTag - (LocationCalculator.Distance(bigger.Origo, smaller.Origo) + smaller.AveragePredictedDistanceFromTag);
            deviance += BIAS;   // Az eltérés torzítása, így biztosan lesz metszéspont
            double max = bigger.AveragePredictedDistanceFromTag + smaller.AveragePredictedDistanceFromTag;
            double brate = bigger.AveragePredictedDistanceFromTag / max;
            double srate = smaller.AveragePredictedDistanceFromTag / max;
            bigger.SetAveragePredictedDistance(bigger.AveragePredictedDistanceFromTag - deviance * brate);
            smaller.SetAveragePredictedDistance(smaller.AveragePredictedDistanceFromTag + deviance * srate);


            //TEST
            double dist = bigger.AveragePredictedDistanceFromTag - (LocationCalculator.Distance(bigger.Origo, smaller.Origo) + smaller.AveragePredictedDistanceFromTag);
            if (dist > 0.0)
                dist = 0; /* throw new Exception("Calculation error: distance must be 0.0"); */
            //TEST

            return true;
        }