public void CachedDissimilarityTest() { var dataPoints = DataPoints.ToList(); var cachedDissimilarity = new CachedDissimilarityMetric <DataPoint>(DistanceMetric, DataPoints); for (var i = 0; i < dataPoints.Count; i++) { for (var j = i + 1; j < dataPoints.Count; j++) { var cachedDist = cachedDissimilarity.Calculate(dataPoints[i], dataPoints[j]); var distance = DistanceMetric.Calculate(dataPoints[i], dataPoints[j]); Console.WriteLine($"{dataPoints[i]} - {dataPoints[j]} = {cachedDist}"); Assert.AreEqual(cachedDist, distance, 1E-10, $"Distance {distance} and cached distance {cachedDist} between {dataPoints[i]} and {dataPoints[j]} should be the same."); } } cachedDissimilarity.Dispose(); }
public AddressDissimilarityMetric(Pipeline pipeline, List <string> addresses) { _pipeline = pipeline; _cachedDissimilarity = new CachedDissimilarityMetric <string>(this, new HashSet <string>(addresses)); }