< Summary

Information
Class: Intentum.AI.Ensemble.MajorityVotingEnsemble
Assembly: Intentum.AI
File(s): /home/runner/work/Intentum/Intentum/src/Intentum.AI/Ensemble/MajorityVotingEnsemble.cs
Line coverage
91%
Covered lines: 11
Uncovered lines: 1
Coverable lines: 12
Total lines: 22
Line coverage: 91.6%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
Combine(...)50%2291.66%

File(s)

/home/runner/work/Intentum/Intentum/src/Intentum.AI/Ensemble/MajorityVotingEnsemble.cs

#LineLine coverage
 1using Intentum.Core.Intents;
 2
 3namespace Intentum.AI.Ensemble;
 4
 5public sealed class MajorityVotingEnsemble : IEnsembleStrategy
 6{
 7    public Intent Combine(IReadOnlyList<ModelResult> results)
 28    {
 29        if (results.Count == 0)
 010            return new Intent("Unknown", [], new IntentConfidence(0, "Low"));
 11
 212        var winner = results
 513            .GroupBy(r => r.Name)
 414            .OrderByDescending(g => g.Count())
 715            .ThenByDescending(g => g.Average(r => r.Score))
 216            .First();
 17
 518        var avgScore = winner.Average(r => r.Score);
 219        var level = IntentConfidence.FromScore(avgScore).Level;
 220        return new Intent(winner.Key, [], new IntentConfidence(avgScore, level));
 221    }
 22}