< Summary

Information
Class: MusicTheory.Theory.Scale.ModalScale
Assembly: MusicTheory
File(s): /home/runner/work/MusicTheory/MusicTheory/Theory/Scale/ModalScale.cs
Line coverage
75%
Covered lines: 6
Uncovered lines: 2
Coverable lines: 8
Total lines: 17
Line coverage: 75%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Name()100%11100%
.ctor(...)100%11100%
GetSemitoneSet()100%11100%
Contains(...)100%210%
ContainsSemitone(...)100%210%

File(s)

/home/runner/work/MusicTheory/MusicTheory/Theory/Scale/ModalScale.cs

#LineLine coverage
 1namespace MusicTheory.Theory.Scale;
 2
 3using MusicTheory.Theory.Interval;
 4
 5public class ModalScale : IScale
 6{
 6427    public string Name { get; }
 8    private readonly int[] semitones;
 149    public ModalScale(string name, int[] semitones)
 10    {
 1411        Name = name;
 1412        this.semitones = semitones;
 1413    }
 66414    public IReadOnlyList<int> GetSemitoneSet() => semitones;
 015    public bool Contains(FunctionalInterval ivl) => semitones.Contains(ivl.Semitones % 12);
 016    public bool ContainsSemitone(int semitone) => semitones.Contains(((semitone % 12)+12)%12);
 17}