public void Inequivalence() { var sensor1 = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF } } }, SignalStrength = 1, SSID = "Rete1" }; var sensor2 = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xAA } } }, SignalStrength = 0.1, SSID = "Rete1" }; var sensor3 = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xAA } } }, SignalStrength =4, SSID = "Rete1" }; var left = new LocationSensorDatas() { SensorDatas = new List<SensorData>() { sensor1, sensor2 } }; var right = new LocationSensorDatas() { SensorDatas = new List<SensorData>() { sensor1, sensor3 } }; Assert.IsFalse(left.BusinessEquals(right)); Assert.IsFalse(right.BusinessEquals(left)); Assert.IsFalse(right.Equals(left)); }
public virtual bool BusinessEquals(WlanSensorData other, bool compareSignalStrength) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return SSID.Equals(other.SSID) && BSSIDs.All((x)=> other.BSSIDs.Any(y=> x.BusinessEquals(y))) && (!compareSignalStrength || SignalStrength.Equals(other.SignalStrength)); }
public void InequivalenceWithoutSignal() { var left = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF } } }, SignalStrength = 1, SSID = "Rete1" }; var right = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xAA } } }, SignalStrength = 1, SSID = "Rete1" }; Assert.IsFalse(left.BusinessEquals(right, false)); Assert.IsFalse(right.BusinessEquals(left, false)); }
public void ShouldReturnZeroDistanceForSameLocation() { var sensor1 = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF } } }, SignalStrength = 1, SSID = "Rete1" }; var sensor2 = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xAA } } }, SignalStrength = 0.1, SSID = "Rete1" }; var left = new LocationSensorDatas() { SensorDatas = new List<SensorData>() { sensor1, sensor2 } }; var right = new LocationSensorDatas() { SensorDatas = new List<SensorData>() { sensor1, sensor2 } }; Assert.AreEqual(0d, left.DistanceFrom(right)); Assert.AreEqual(0d, right.DistanceFrom(left)); }
public void ShouldReturnMaximumDistanceForADifferentSensor() { var left = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF } } }, SignalStrength = 1, SSID = "Rete1" }; var right = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xBB, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF } } }, SignalStrength = 1, SSID = "Rete1" }; Assert.AreEqual(left.SquaredDistanceFrom(right), 1d); Assert.AreEqual(right.SquaredDistanceFrom(left), 1d); }
public void ShouldReturnCorrectDistanceForSameSensor() { var left = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF } } }, SignalStrength = 1, SSID = "Rete1" }; var right = new WlanSensorData() { BSSIDs = new List<MacAddress>() { new MacAddress() { Bytes = new byte[] { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF } } }, SignalStrength = 0.5, SSID = "Rete1" }; var result = Math.Pow(1d - 0.5d, 2); Assert.AreEqual(left.SquaredDistanceFrom(right), result); Assert.AreEqual(right.SquaredDistanceFrom(left), result); }