public void CorrectClosestHistogramTest()
        {
            var histogramService = new HistogramSorterService();
            var histogram1       = new ColorHistogram(
                "randomId1",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.2
            },
                new List <double> {
                0.1, 0.2, 0.3
            }
                );
            var histogram2 = new ColorHistogram(
                "randomId2",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.2
            },
                new List <double> {
                0.1, 0.2, 0.2
            }
                );
            var histogram3 = new ColorHistogram(
                "randomId3",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.1
            },
                new List <double> {
                0.1, 0.2, 0.4
            }
                );
            var selectedHistograms = new List <ColorHistogram> {
                histogram1, histogram2, histogram3
            };
            var comparisonMap = histogramService.CreateHistogramComparisonMap(selectedHistograms);

            selectedHistograms.RemoveAt(0);

            var closestIndex = histogramService.FindTheClosestHistogramIndex(
                "randomId1",
                selectedHistograms,
                comparisonMap
                );

            Assert.True(closestIndex == 0);
        }
        public void CorrectSortTest()
        {
            var histogramService = new HistogramSorterService();
            var histogram1       = new ColorHistogram(
                "randomId1",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.2
            },
                new List <double> {
                0.1, 0.2, 0.3
            }
                );
            var histogram2 = new ColorHistogram(
                "randomId2",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.2
            },
                new List <double> {
                0.1, 0.2, 0.2
            }
                );
            var histogram3 = new ColorHistogram(
                "randomId3",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.1
            },
                new List <double> {
                0.1, 0.2, 0.4
            }
                );
            var histogram4 = new ColorHistogram(
                "randomId4",
                new List <double> {
                0.2
            },
                new List <double> {
                0.2, 0.1
            },
                new List <double> {
                0.1, 0.2, 0.3
            }
                );
            var selectedHistograms = new List <ColorHistogram> {
                histogram1, histogram2, histogram3, histogram4
            };
            var comparisonMap = histogramService.CreateHistogramComparisonMap(selectedHistograms);

            var sortedHistograms = histogramService.SortSelectedHistograms(
                2,
                2,
                comparisonMap,
                selectedHistograms
                );

            Assert.True(true);
        }
Example #3
0
        public void CorrectComparisonMapTest()
        {
            var histogramService = new HistogramSorterService();
            var histogram1       = new ColorHistogram(
                "randomId1",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.2
            },
                new List <double> {
                0.1, 0.2, 0.3
            }
                );
            var histogram2 = new ColorHistogram(
                "randomId2",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.2
            },
                new List <double> {
                0.1, 0.2, 0.2
            }
                );
            var histogram3 = new ColorHistogram(
                "randomId3",
                new List <double> {
                0.1
            },
                new List <double> {
                0.1, 0.1
            },
                new List <double> {
                0.1, 0.2, 0.4
            }
                );
            var selectedHistograms = new List <ColorHistogram> {
                histogram1, histogram2, histogram3
            };
            var comparisonMap = histogramService.CreateHistogramComparisonMap(selectedHistograms);

            Assert.True(comparisonMap.Count == 6);
            Assert.True(
                comparisonMap[new HistogramComparisonKeys("randomId1", "randomId2")] - Math.Pow(0.1, 2) < 0.001
                );
            Assert.True(
                comparisonMap[new HistogramComparisonKeys("randomId2", "randomId1")] - Math.Pow(0.1, 2) < 0.001
                );
            Assert.True(
                comparisonMap[new HistogramComparisonKeys("randomId1", "randomId3")] - 2 * Math.Pow(0.1, 2) < 0.001
                );
            Assert.True(
                comparisonMap[new HistogramComparisonKeys("randomId3", "randomId1")] - 2 * Math.Pow(0.1, 2) < 0.001
                );
            Assert.True(
                comparisonMap[new HistogramComparisonKeys("randomId2", "randomId3")] - (Math.Pow(0.1, 2) + Math.Pow(0.2, 2)) < 0.001
                );
            Assert.True(
                comparisonMap[new HistogramComparisonKeys("randomId3", "randomId2")] - (Math.Pow(0.1, 2) + Math.Pow(0.2, 2)) < 0.001
                );
        }