18 using System.Collections.Generic;
22 using TraceLabSDK.Types;
23 using TraceLabSDK.Types.Contests;
25 namespace TraceLab.Components.DevelopmentKit.Metrics.FeatureLocation
34 private const string _name =
"Effectiveness All Measure";
35 private const string _description =
"Computes the index position of correct links. This metric is calculated per query.";
40 public override string Name
48 public override string Description
50 get {
return _description; }
53 private TLSimilarityMatrix _matrix;
54 private TLSimilarityMatrix _oracle;
66 _matrix = candidateMatrix;
67 _oracle = answerMatrix;
75 _oracle.Threshold = 0;
76 Results =
new SerializableDictionary<string, double>();
77 foreach (
string query
in _oracle.SourceArtifactsIds)
79 TLLinksList links = _matrix.GetLinksAboveThresholdForSourceArtifact(query);
81 for (
int i = 0; i < links.Count; i++)
83 if (_oracle.IsLinkAboveThreshold(query, links[i].TargetArtifactId))
85 Results.Add(String.Format(
"{0}_{1}", query, links[i].TargetArtifactId), i);
97 BoxSummaryData data =
new BoxSummaryData(Name, Description);
98 data.AddPoint(
new BoxPlotPoint(Results.Values.ToArray()));