示例#1
0
        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));
 }