module ScaleGeneratorTest open Xunit open FsUnit.Xunit open ScaleGenerator [<Fact>] let ``Major scale`` () = let major = pitches "C" "MMmMMMm" let expected = ["C"; "D"; "E"; "F"; "G"; "A"; "B"] major |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Another major scale`` () = let major = pitches "G" "MMmMMMm" let expected = ["G"; "A"; "B"; "C"; "D"; "E"; "F#"] major |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Minor scale`` () = let minor = pitches "f#" "MmMMmMM" let expected = ["F#"; "G#"; "A"; "B"; "C#"; "D"; "E"] minor |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Another minor scale`` () = let minor = pitches "bb" "MmMMmMM" let expected = ["Bb"; "C"; "Db"; "Eb"; "F"; "Gb"; "Ab"] minor |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Dorian mode`` () = let dorian = pitches "d" "MmMMMmM" let expected = ["D"; "E"; "F"; "G"; "A"; "B"; "C"] dorian |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Mixolydian mode`` () = let mixolydian = pitches "Eb" "MMmMMmM" let expected = ["Eb"; "F"; "G"; "Ab"; "Bb"; "C"; "Db"] mixolydian |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Lydian mode`` () = let lydian = pitches "a" "MMMmMMm" let expected = ["A"; "B"; "C#"; "D#"; "E"; "F#"; "G#"] lydian |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Phrygian mode`` () = let phrygian = pitches "e" "mMMMmMM" let expected = ["E"; "F"; "G"; "A"; "B"; "C"; "D"] phrygian |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Locrian mode`` () = let locrian = pitches "g" "mMMmMMM" let expected = ["G"; "Ab"; "Bb"; "C"; "Db"; "Eb"; "F"] locrian |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Harmonic minor`` () = let harmonicMinor = pitches "d" "MmMMmAm" let expected = ["D"; "E"; "F"; "G"; "A"; "Bb"; "Db"] harmonicMinor |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Octatonic`` () = let octatonic = pitches "C" "MmMmMmMm" let expected = ["C"; "D"; "D#"; "F"; "F#"; "G#"; "A"; "B"] octatonic |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Hexatonic`` () = let hexatonic = pitches "Db" "MMMMMM" let expected = ["Db"; "Eb"; "F"; "G"; "A"; "B"] hexatonic |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Pentatonic`` () = let pentatonic = pitches "A" "MMAMA" let expected = ["A"; "B"; "C#"; "E"; "F#"] pentatonic |> should equal expected [<Fact(Skip = "Remove to run test")>] let ``Enigmatic`` () = let enigmatic = pitches "G" "mAMMMmm" let expected = ["G"; "G#"; "B"; "C#"; "D#"; "F"; "F#"] enigmatic |> should equal expected