public void MajorPentatonicScale_Constructor_Test()
        {
            // Arrange

            // Act
            var target = new MajorPentatonicScale(Tone.C);

            // Assert
            Assert.AreEqual(Tone.C, target.BaseTone);
        }
        public void TestMajorPentatonicScaleNoteIntervals()
        {
            var scale = new MajorPentatonicScale(MusicNotes.A);

            Assert.Equal(IntervalQuality.P1, scale.Notes[0].Interval.IntervalQuality);
            Assert.Equal(IntervalQuality.M2, scale.Notes[1].Interval.IntervalQuality);
            Assert.Equal(IntervalQuality.M3, scale.Notes[2].Interval.IntervalQuality);
            Assert.Equal(IntervalQuality.P5, scale.Notes[3].Interval.IntervalQuality);
            Assert.Equal(IntervalQuality.M6, scale.Notes[4].Interval.IntervalQuality);
        }
        public void MajorPentatonicFFromF0ToD1_GetPitchByPosition_0_5_Test()
        {
            // Arrange
            var target = new MajorPentatonicScale(Tone.F);

            // Act
            var pitch = target.GetPitchByPosition(0.5, new Pitch(0, Tone.F), new Pitch(1, Tone.D));

            // Assert
            Assert.AreEqual(new Pitch(0, Tone.A), pitch);
        }
        public void PentatonicGFromF0ToGsharp1_GetScaleMembers_Test()
        {
            // Arrange
            var target = new MajorPentatonicScale(Tone.G);

            // Act
            var scaleInG = target.GetScaleMembers(new Pitch(0, Tone.F), new Pitch(1, Tone.Gsharp));

            // Assert
            Assert.AreEqual(new Pitch(0, Tone.G), scaleInG[0]);
            Assert.AreEqual(new Pitch(0, Tone.A), scaleInG[1]);
            Assert.AreEqual(new Pitch(0, Tone.B), scaleInG[2]);
            Assert.AreEqual(new Pitch(1, Tone.D), scaleInG[3]);
            Assert.AreEqual(new Pitch(1, Tone.E), scaleInG[4]);
            Assert.AreEqual(new Pitch(1, Tone.G), scaleInG[5]);
        }
        public void TestBMajorPentatonic()
        {
            var scale = new MajorPentatonicScale(MusicNotes.B);

            Assert.Equal(5, scale.Notes.Length);

            Assert.Equal(MusicNotes.B, scale.Notes[0].Note);

            Assert.Equal(MusicNotes.CSharp, scale.Notes[1].Note);

            Assert.Equal(MusicNotes.DSharp, scale.Notes[2].Note);

            Assert.Equal(MusicNotes.FSharp, scale.Notes[3].Note);

            Assert.Equal(MusicNotes.GSharp, scale.Notes[4].Note);
        }
        public void TestBFlatMajorPentatonic()
        {
            var scale = new MajorPentatonicScale(MusicNotes.BFlat);

            Assert.Equal(5, scale.Notes.Length);

            Assert.Equal(MusicNotes.BFlat, scale.Notes[0].Note);

            Assert.Equal(MusicNotes.C, scale.Notes[1].Note);

            Assert.Equal(MusicNotes.D, scale.Notes[2].Note);

            Assert.Equal(MusicNotes.F, scale.Notes[3].Note);

            Assert.Equal(MusicNotes.G, scale.Notes[4].Note);
        }
        public void TestASharpMajorPentatonic()
        {
            var scale = new MajorPentatonicScale(MusicNotes.ASharp);

            Assert.Equal(5, scale.Notes.Length);

            Assert.Equal(MusicNotes.ASharp, scale.Notes[0].Note);

            Assert.Equal(MusicNotes.BSharp, scale.Notes[1].Note);

            Assert.Equal(MusicNotes.CDoubleSharp, scale.Notes[2].Note);

            Assert.Equal(MusicNotes.ESharp, scale.Notes[3].Note);

            Assert.Equal(MusicNotes.FDoubleSharp, scale.Notes[4].Note);
        }
        public void TestGMajorPentatonic()
        {
            var scale = new MajorPentatonicScale(MusicNotes.G);

            Assert.Equal(5, scale.Notes.Length);

            Assert.Equal(MusicNotes.G, scale.Notes[0].Note);

            Assert.Equal(MusicNotes.A, scale.Notes[1].Note);

            Assert.Equal(MusicNotes.B, scale.Notes[2].Note);

            Assert.Equal(MusicNotes.D, scale.Notes[3].Note);

            Assert.Equal(MusicNotes.E, scale.Notes[4].Note);
        }