public static void Main()
Console.WriteLine("Existing = -25");
Console.WriteLine("New = -35");
int diffPercentOne = CalculateDifferencePercentage(-25, -35);
Console.WriteLine("Calc Diff: " + diffPercentOne);
Console.WriteLine("Diff Ratio: " + CalculateRatio(-25, -35));
Console.WriteLine("Update Accepted: " + UpdateAccepted(-25, -35, diffPercentOne));
Console.WriteLine("Existing = -35");
Console.WriteLine("New = -42");
int diffPercentOneHalf = CalculateDifferencePercentage(-35, -42);
Console.WriteLine("Calc Diff: " + diffPercentOneHalf);
Console.WriteLine("Diff Ratio: " + CalculateRatio(-35, -42));
Console.WriteLine("Update Accepted: " + UpdateAccepted(-35, -42, diffPercentOneHalf));
Console.WriteLine("Existing = -42");
Console.WriteLine("New = -48");
int diffPercentTwo = CalculateDifferencePercentage(-42, -48);
Console.WriteLine("Calc Diff: " + diffPercentTwo);
Console.WriteLine("Diff Ratio: " + CalculateRatio(-42, -48));
Console.WriteLine("Update Accepted: " + UpdateAccepted(-42, -48, diffPercentTwo));
Console.WriteLine("Existing = -48");
Console.WriteLine("New = -38");
int diffPercentThree = CalculateDifferencePercentage(-48, -38);
Console.WriteLine("Calc Diff: " + diffPercentThree);
Console.WriteLine("Diff Ratio: " + CalculateRatio(-48, -38));
Console.WriteLine("Update Accepted: " + UpdateAccepted(-48, -38, diffPercentThree));
Console.WriteLine("Existing = -48");
Console.WriteLine("New = -27");
int diffPercentFour = CalculateDifferencePercentage(-48, -27);
Console.WriteLine("Calc Diff: " + diffPercentFour);
Console.WriteLine("Diff Ratio: " + CalculateRatio(-48, -27));
Console.WriteLine("Update Accepted: " + UpdateAccepted(-48, -27, diffPercentFour));
public static int CalculateDifferencePercentage(int existingCacheEntry, int updatedLocationDetails)
var a = Math.Abs(existingCacheEntry);
var b = Math.Abs(updatedLocationDetails);
diffPercent = ((b - a) * 100) / a;
public static double CalculateRatio(int existingCacheEntry, int updatedLocationDetails)
var a = Math.Abs(existingCacheEntry);
var b = Math.Abs(updatedLocationDetails);
return double.PositiveInfinity;
double ratio = (double)b / a;
public static bool UpdateAccepted(int existingRssiValue, int newRssiValue, int newRssiDiff)
var newRssiDiffAbs = Math.Abs(newRssiDiff);
if (existingRssiValue == 0 || newRssiDiffAbs > 20)