/// <summary> /// Sum all relevant labels in the @imageLabels container. /// </summary> /// <returns></returns> public double SumOfRelevantLabels( IEnumerable <string> relevantLabels, ImageLabels imageLabels ) { return(imageLabels.LabelValues .Where(t => relevantLabels.Contains(t.Key)) .Sum(t => t.Value)); }
public List <string> GenerateQueryFromLabels(ImageLabels imageLabels) { var sortedLabels = imageLabels.LabelValues.OrderByDescending(x => x.Value).ToList(); var queriesWithLabels = sortedLabels.Take(3).ToList(); return(queriesWithLabels.Select(t => t.Key).ToList()); }
public List <string> GetTopNLabels(int numberOfTopLabels, ImageLabels imageLabels) { if (numberOfTopLabels > imageLabels.LabelValues.Count) { throw new ArgumentException("Cannot select more label values than the number of labels loaded"); } return(imageLabels.LabelValues .OrderByDescending(x => x.Value) .Take(numberOfTopLabels) .Select(t => t.Key) .ToList()); }
public void CorrectGetTopNTest() { var labelSorterService = new LabelSorterService(); var labelValues = new Dictionary <string, double> { ["car"] = 0.1, ["dark"] = 0.2, ["wheel"] = 0.3, ["sky"] = 0.4 }; var imageLabels = new ImageLabels( "randomId1", labelValues ); var top2LabelValues = labelSorterService.GetTopNLabels(2, imageLabels); Assert.True(top2LabelValues.Count == 2); Assert.True(top2LabelValues[0] == "sky"); Assert.True(top2LabelValues[1] == "wheel"); }
/// <summary> /// Outputs sum of all relevant query parameters. /// </summary> private static double SumQueries(ICollection <string> queryParams, ImageLabels imageLabels) { var labels = imageLabels.LabelValues.ToList(); return(labels.Where(t => queryParams.Contains(t.Key)).Sum(t => t.Value)); }