def test_sharp_11(self): chord1 = pm.Chord("A(#4)") chord2 = pm.Chord("F#m(#11)") chord3 = pm.Chord("B-(#11)") chord4 = pm.Chord("G7#11") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("A4", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("A4", chord2.intervals) self.assertIn("m3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("A4", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("A4", chord4.intervals) self.assertNotIn("P4", chord1.intervals) self.assertNotIn("m7", chord1.intervals) self.assertNotIn("P4", chord2.intervals) self.assertNotIn("m7", chord2.intervals) self.assertNotIn("P4", chord3.intervals) self.assertNotIn("m7", chord3.intervals) self.assertNotIn("P4", chord4.intervals)
def test_add_9(self): chord1 = pm.Chord("Eadd9") chord2 = pm.Chord("G#m(add2)") chord3 = pm.Chord("Ab-(add9)") chord4 = pm.Chord("C2") chord5 = pm.Chord("Amaj(add9)") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("M2", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("M2", chord2.intervals) self.assertIn("m3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("M2", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("M2", chord4.intervals) self.assertIn("M3", chord5.intervals) self.assertIn("P5", chord5.intervals) self.assertIn("M2", chord5.intervals) self.assertNotIn("m7", chord1.intervals) self.assertNotIn("m7", chord2.intervals) self.assertNotIn("m7", chord3.intervals) self.assertNotIn("m7", chord4.intervals) self.assertNotIn("m7", chord5.intervals) self.assertNotIn("M7", chord5.intervals)
def test_flat_6(self): chord1 = pm.Chord("A(b6)") chord2 = pm.Chord("F#m7(b6)") chord3 = pm.Chord("B9(b13)") chord4 = pm.Chord("G7(#9)(b13)") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("m6", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("m6", chord2.intervals) self.assertIn("m7", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("M2", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("m6", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("A2", chord4.intervals) self.assertIn("m6", chord4.intervals) self.assertNotIn("M6", chord1.intervals) self.assertNotIn("m7", chord1.intervals) self.assertNotIn("M6", chord2.intervals) self.assertNotIn("M7", chord2.intervals) self.assertNotIn("M6", chord3.intervals) self.assertNotIn("m2", chord3.intervals) self.assertNotIn("M6", chord4.intervals) self.assertNotIn("m2", chord4.intervals)
def test_six(self): chord1 = pm.Chord("A6") chord2 = pm.Chord("F#m(6)") chord3 = pm.Chord("Db6/9") chord4 = pm.Chord("Gmin(6/9)") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("M6", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("M6", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("M2", chord3.intervals) self.assertIn("M6", chord3.intervals) self.assertIn("m3", chord4.intervals) self.assertIn("M6", chord4.intervals) self.assertIn("M2", chord4.intervals) self.assertNotIn("m6", chord1.intervals) self.assertNotIn("m7", chord1.intervals) self.assertNotIn("m6", chord2.intervals) self.assertNotIn("m7", chord2.intervals) self.assertNotIn("m7", chord3.intervals) self.assertNotIn("m2", chord3.intervals) self.assertNotIn("m7", chord4.intervals) self.assertNotIn("m6", chord4.intervals)
def test_7(self): chord1 = pm.Chord("E7") chord2 = pm.Chord("Fmin7") chord3 = pm.Chord("Bbm7") chord4 = pm.Chord("Cmin7") chord5 = pm.Chord("Cminor7(b5)") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("m7", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("m7", chord2.intervals) self.assertIn("m3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("m3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("m3", chord5.intervals) self.assertIn("D5", chord5.intervals) self.assertIn("m7", chord5.intervals) self.assertNotIn("M7", chord1.intervals) self.assertNotIn("M7", chord2.intervals) self.assertNotIn("M7", chord3.intervals) self.assertNotIn("M7", chord4.intervals) self.assertNotIn("M7", chord5.intervals) self.assertNotIn("P5", chord5.intervals)
def test_maj_7(self): chord1 = pm.Chord("Emaj7") chord2 = pm.Chord("Fmajor7") chord3 = pm.Chord("BbM7") chord4 = pm.Chord("Cmin(maj7)") chord5 = pm.Chord("CminorM7") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("M7", chord1.intervals) self.assertIn("M3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("M7", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("M7", chord3.intervals) self.assertIn("m3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("M7", chord4.intervals) self.assertIn("m3", chord5.intervals) self.assertIn("P5", chord5.intervals) self.assertIn("M7", chord5.intervals) self.assertNotIn("m3", chord1.intervals) self.assertNotIn("m7", chord1.intervals) self.assertNotIn("m3", chord2.intervals) self.assertNotIn("m7", chord2.intervals) self.assertNotIn("m3", chord3.intervals) self.assertNotIn("m7", chord3.intervals) self.assertNotIn("M3", chord4.intervals) self.assertNotIn("m7", chord4.intervals) self.assertNotIn("M3", chord5.intervals) self.assertNotIn("m7", chord5.intervals)
def test_power_chord(self): pow1 = pm.Chord("E5") pow2 = pm.Chord("F no 3rd") pow3 = pm.Chord("Bb(no3)") pow4 = pm.Chord("C#no3") self.assertIn("P5", pow1.intervals) self.assertIn("P5", pow2.intervals) self.assertIn("P5", pow3.intervals) self.assertIn("P5", pow4.intervals) self.assertNotIn("M3", pow1.intervals) self.assertNotIn("M3", pow2.intervals) self.assertNotIn("M3", pow3.intervals) self.assertNotIn("M3", pow4.intervals)
def test_maj_chord(self): maj1 = pm.Chord("A") maj2 = pm.Chord("Gmaj") maj3 = pm.Chord("Bmajor") maj4 = pm.Chord("C maj") self.assertIn("M3", maj1.intervals) self.assertIn("P5", maj1.intervals) self.assertIn("M3", maj2.intervals) self.assertIn("P5", maj2.intervals) self.assertIn("M3", maj3.intervals) self.assertIn("P5", maj4.intervals) self.assertIn("M3", maj4.intervals) self.assertNotIn("M7", maj2.intervals) self.assertNotIn("M7", maj3.intervals) self.assertNotIn("M7", maj4.intervals)
def test_min_chord(self): min1 = pm.Chord("E-") min2 = pm.Chord("Fmin") min3 = pm.Chord("Bbminor") min4 = pm.Chord("C# min") self.assertIn("m3", min1.intervals) self.assertIn("P5", min1.intervals) self.assertIn("m3", min2.intervals) self.assertIn("P5", min2.intervals) self.assertIn("m3", min3.intervals) self.assertIn("P5", min4.intervals) self.assertIn("m3", min4.intervals) self.assertNotIn("m7", min1.intervals) self.assertNotIn("m7", min2.intervals) self.assertNotIn("m7", min3.intervals) self.assertNotIn("m7", min4.intervals)
def test_alt(self): chord1 = pm.Chord("A7alt") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("m7", chord1.intervals) self.assertIn("m2", chord1.intervals) self.assertIn("m6", chord1.intervals)
def test_aug_chord(self): aug1 = pm.Chord("G+") aug2 = pm.Chord("F + ") aug3 = pm.Chord("Ab augmented") aug4 = pm.Chord("Daug") self.assertIn("M3", aug1.intervals) self.assertIn("A5", aug1.intervals) self.assertIn("M3", aug2.intervals) self.assertIn("A5", aug2.intervals) self.assertIn("M3", aug3.intervals) self.assertIn("A5", aug4.intervals) self.assertIn("M3", aug4.intervals) self.assertNotIn("P5", aug1.intervals) self.assertNotIn("P5", aug2.intervals) self.assertNotIn("P5", aug3.intervals) self.assertNotIn("P5", aug4.intervals)
def test_dim_chord(self): dim1 = pm.Chord("Go") dim2 = pm.Chord("Fdim") dim3 = pm.Chord("Abdiminished") dim4 = pm.Chord("D°") self.assertIn("m3", dim1.intervals) self.assertIn("D5", dim1.intervals) self.assertIn("m3", dim2.intervals) self.assertIn("D5", dim2.intervals) self.assertIn("m3", dim3.intervals) self.assertIn("D5", dim4.intervals) self.assertIn("m3", dim4.intervals) self.assertNotIn("P5", dim1.intervals) self.assertNotIn("D7", dim1.intervals) self.assertNotIn("P5", dim2.intervals) self.assertNotIn("P5", dim3.intervals) self.assertNotIn("P5", dim4.intervals)
def test_spelling(self): chord1 = pm.Chord("A") chord2 = pm.Chord("F#m") chord3 = pm.Chord("Db6/9") chord4 = pm.Chord("Gmin7") chord5 = pm.Chord("Bø") chord6 = pm.Chord("Gmin9") chord7 = pm.Chord("F9(b13)") chord8 = pm.Chord("Fmin(maj7))") self.assertEqual(len(chord1), 3) self.assertEqual(len(chord2), 3) self.assertEqual(len(chord3), 5) self.assertEqual(len(chord4), 4) self.assertEqual(len(chord5), 4) self.assertEqual(len(chord6), 5) self.assertEqual(len(chord7), 6) self.assertEqual(len(chord8), 4) self.assertEqual(chord1[0].name, "A") self.assertEqual(chord1[1].name, "C#") self.assertEqual(chord1[2].name, "E") self.assertEqual(chord2[0].name, "F#") self.assertEqual(chord2[1].name, "A") self.assertEqual(chord2[2].name, "C#") self.assertEqual(chord3[0].name, "Db") self.assertEqual(chord3[1].name, "F") self.assertEqual(chord3[2].name, "Ab") self.assertEqual(chord4[0].name, "G") self.assertEqual(chord4[1].name, "Bb") self.assertEqual(chord4[2].name, "D") self.assertEqual(chord4[3].name, "F") self.assertEqual(chord5[0].name, "B") self.assertEqual(chord5[1].name, "D") self.assertEqual(chord5[2].name, "F") self.assertEqual(chord5[3].name, "A") self.assertEqual(chord6[0].name, "G") self.assertEqual(chord6[1].name, "Bb") self.assertEqual(chord6[2].name, "D") self.assertEqual(chord6[3].name, "F") self.assertEqual(chord6[4].name, "A") self.assertEqual(chord7[0].name, "F") self.assertEqual(chord7[1].name, "A") self.assertEqual(chord7[2].name, "C") self.assertEqual(chord7[3].name, "Eb") self.assertEqual(chord7[4].name, "G") self.assertEqual(chord7[5].name, "Db") self.assertEqual(chord8[0].name, "F") self.assertEqual(chord8[1].name, "Ab") self.assertEqual(chord8[2].name, "C") self.assertEqual(chord8[3].name, "E")
def test_half_dim_chord(self): half_dim1 = pm.Chord("Ehalfdim") half_dim2 = pm.Chord("F half diminished") half_dim3 = pm.Chord("Bhalfdiminished") half_dim4 = pm.Chord("G##ø") self.assertIn("m3", half_dim1.intervals) self.assertIn("D5", half_dim1.intervals) self.assertIn("m7", half_dim1.intervals) self.assertIn("m3", half_dim2.intervals) self.assertIn("D5", half_dim2.intervals) self.assertIn("m7", half_dim2.intervals) self.assertIn("m3", half_dim3.intervals) self.assertIn("m7", half_dim3.intervals) self.assertIn("D5", half_dim4.intervals) self.assertIn("m3", half_dim4.intervals) self.assertIn("m7", half_dim4.intervals) self.assertNotIn("P5", half_dim1.intervals) self.assertNotIn("D7", half_dim1.intervals) self.assertNotIn("D7", half_dim2.intervals) self.assertNotIn("D7", half_dim3.intervals) self.assertNotIn("D7", half_dim4.intervals)
def test_sus_2_chord(self): sus1 = pm.Chord("Esus2") sus2 = pm.Chord("Fsuspended2") sus3 = pm.Chord("Bb suspended 2") sus4 = pm.Chord("C# sus 2") self.assertIn("M2", sus1.intervals) self.assertIn("P5", sus1.intervals) self.assertIn("M2", sus2.intervals) self.assertIn("P5", sus2.intervals) self.assertIn("M2", sus3.intervals) self.assertIn("P5", sus3.intervals) self.assertIn("M2", sus4.intervals) self.assertIn("P5", sus4.intervals) self.assertNotIn("M3", sus1.intervals) self.assertNotIn("M3", sus2.intervals) self.assertNotIn("M3", sus3.intervals) self.assertNotIn("M3", sus4.intervals) self.assertNotIn("P4", sus1.intervals) self.assertNotIn("P4", sus2.intervals) self.assertNotIn("P4", sus3.intervals) self.assertNotIn("P4", sus4.intervals)
def test_add_4(self): chord1 = pm.Chord("E13(add4)") chord2 = pm.Chord("G#(add11)") chord3 = pm.Chord("B7add4") chord4 = pm.Chord("C7add11") chord5 = pm.Chord("Amaj13add4") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("M2", chord1.intervals) self.assertIn("m7", chord1.intervals) self.assertIn("M6", chord1.intervals) self.assertIn("P4", chord1.intervals) self.assertIn("M3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("P4", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("P4", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("P4", chord1.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("P4", chord1.intervals) self.assertIn("M3", chord5.intervals) self.assertIn("P5", chord5.intervals) self.assertIn("M7", chord5.intervals) self.assertIn("M2", chord5.intervals) self.assertIn("M6", chord5.intervals) self.assertIn("P4", chord1.intervals) self.assertNotIn("M7", chord1.intervals) self.assertNotIn("M2", chord2.intervals) self.assertNotIn("M2", chord3.intervals) self.assertNotIn("M2", chord3.intervals) self.assertNotIn("M2", chord4.intervals) self.assertNotIn("m7", chord5.intervals)
def test_sharp_5(self): chord1 = pm.Chord("A(#5)") chord2 = pm.Chord("F#m7#5") chord3 = pm.Chord("B13(#5)(b9)") chord4 = pm.Chord("G7#5") self.assertIn("M3", chord1.intervals) self.assertIn("A5", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("A5", chord2.intervals) self.assertIn("m7", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("A5", chord3.intervals) self.assertIn("m2", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("A5", chord4.intervals) self.assertNotIn("P5", chord1.intervals) self.assertNotIn("m7", chord1.intervals) self.assertNotIn("P5", chord2.intervals) self.assertNotIn("M7", chord2.intervals) self.assertNotIn("P5", chord3.intervals) self.assertNotIn("M2", chord3.intervals) self.assertNotIn("P5", chord4.intervals)
def test_flat_5(self): chord1 = pm.Chord("A(b5)") chord2 = pm.Chord("F#m7b5") chord3 = pm.Chord("B13(b5)(b9)") chord4 = pm.Chord("G7b5") self.assertIn("M3", chord1.intervals) self.assertIn("D5", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("D5", chord2.intervals) self.assertIn("m7", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("D5", chord3.intervals) self.assertIn("m2", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("D5", chord4.intervals) self.assertNotIn("P5", chord1.intervals) self.assertNotIn("m7", chord1.intervals) self.assertNotIn("P5", chord2.intervals) self.assertNotIn("M7", chord2.intervals) self.assertNotIn("P5", chord3.intervals) self.assertNotIn("M2", chord3.intervals) self.assertNotIn("P5", chord4.intervals)
def test_13_chord(self): chord1 = pm.Chord("E13") chord2 = pm.Chord("G#m13") chord3 = pm.Chord("G13(b9)") chord4 = pm.Chord("C13(#11)") chord5 = pm.Chord("Amaj13") chord6 = pm.Chord("Ebmin13(maj7)") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("M2", chord1.intervals) self.assertIn("m7", chord1.intervals) self.assertIn("M6", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("M2", chord2.intervals) self.assertIn("m7", chord2.intervals) self.assertIn("M6", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("m2", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("M6", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("M2", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("A4", chord4.intervals) self.assertIn("M6", chord4.intervals) self.assertIn("M3", chord5.intervals) self.assertIn("P5", chord5.intervals) self.assertIn("M7", chord5.intervals) self.assertIn("M2", chord5.intervals) self.assertIn("M6", chord5.intervals) self.assertIn("m3", chord6.intervals) self.assertIn("P5", chord6.intervals) self.assertIn("M7", chord6.intervals) self.assertIn("M2", chord6.intervals) self.assertIn("P4", chord6.intervals) self.assertIn("M6", chord6.intervals) self.assertNotIn("M7", chord1.intervals) self.assertNotIn("M3", chord2.intervals) self.assertNotIn("M2", chord3.intervals) self.assertNotIn("P4", chord4.intervals) self.assertNotIn("m7", chord5.intervals) self.assertNotIn("m7", chord6.intervals)
def test_sharp_9s(self): chord1 = pm.Chord("E13(#9)") chord2 = pm.Chord("G#(#9)") chord3 = pm.Chord("G11(#9)") chord4 = pm.Chord("C7#9") chord5 = pm.Chord("Amaj13(#9)") chord6 = pm.Chord("Ebmin13(maj7)(#9)") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("A2", chord1.intervals) self.assertIn("m7", chord1.intervals) self.assertIn("M6", chord1.intervals) self.assertIn("M3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("A2", chord2.intervals) self.assertIn("P4", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("A2", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("A2", chord4.intervals) self.assertIn("m7", chord4.intervals) self.assertIn("M3", chord5.intervals) self.assertIn("P5", chord5.intervals) self.assertIn("M7", chord5.intervals) self.assertIn("A2", chord5.intervals) self.assertIn("M6", chord5.intervals) self.assertIn("m3", chord6.intervals) self.assertIn("P5", chord6.intervals) self.assertIn("M7", chord6.intervals) self.assertIn("A2", chord6.intervals) self.assertIn("P4", chord6.intervals) self.assertIn("M6", chord6.intervals) self.assertNotIn("M7", chord1.intervals) self.assertNotIn("M2", chord1.intervals) self.assertNotIn("M2", chord2.intervals) self.assertNotIn("M2", chord3.intervals) self.assertNotIn("M2", chord3.intervals) self.assertNotIn("P4", chord4.intervals) self.assertNotIn("M2", chord4.intervals) self.assertNotIn("m7", chord5.intervals) self.assertNotIn("M2", chord5.intervals) self.assertNotIn("m7", chord6.intervals) self.assertNotIn("M2", chord6.intervals)
def test_9_chord(self): chord1 = pm.Chord("E9") chord2 = pm.Chord("G#m9") chord3 = pm.Chord("Ab9") chord4 = pm.Chord("Cmaj9") chord5 = pm.Chord("Amaj9") chord6 = pm.Chord("Ebmin9(maj7)") self.assertIn("M3", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("M2", chord1.intervals) self.assertIn("m7", chord1.intervals) self.assertIn("m3", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("M2", chord2.intervals) self.assertIn("m7", chord2.intervals) self.assertIn("M3", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("M2", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("M3", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("M2", chord4.intervals) self.assertIn("M7", chord4.intervals) self.assertIn("M3", chord5.intervals) self.assertIn("P5", chord5.intervals) self.assertIn("M7", chord5.intervals) self.assertIn("M2", chord5.intervals) self.assertIn("m3", chord6.intervals) self.assertIn("P5", chord6.intervals) self.assertIn("M7", chord6.intervals) self.assertIn("M2", chord6.intervals) self.assertNotIn("M7", chord1.intervals) self.assertNotIn("M7", chord2.intervals) self.assertNotIn("M7", chord3.intervals) self.assertNotIn("m7", chord4.intervals) self.assertNotIn("m7", chord5.intervals) self.assertNotIn("m7", chord6.intervals)
def test_11_chord(self): chord1 = pm.Chord("E11") chord2 = pm.Chord("G#m11") chord3 = pm.Chord("Ab11") chord4 = pm.Chord("Cmaj11") chord5 = pm.Chord("Amaj11") chord6 = pm.Chord("Ebmin11(maj7)") self.assertIn("P4", chord1.intervals) self.assertIn("P5", chord1.intervals) self.assertIn("M2", chord1.intervals) self.assertIn("m7", chord1.intervals) self.assertIn("P4", chord2.intervals) self.assertIn("P5", chord2.intervals) self.assertIn("M2", chord2.intervals) self.assertIn("m7", chord2.intervals) self.assertIn("P4", chord3.intervals) self.assertIn("P5", chord3.intervals) self.assertIn("M2", chord3.intervals) self.assertIn("m7", chord3.intervals) self.assertIn("P4", chord4.intervals) self.assertIn("P5", chord4.intervals) self.assertIn("M2", chord4.intervals) self.assertIn("M7", chord4.intervals) self.assertIn("P4", chord5.intervals) self.assertIn("P5", chord5.intervals) self.assertIn("M7", chord5.intervals) self.assertIn("M2", chord5.intervals) self.assertIn("P4", chord6.intervals) self.assertIn("P5", chord6.intervals) self.assertIn("M7", chord6.intervals) self.assertIn("M2", chord6.intervals) self.assertNotIn("M7", chord1.intervals) self.assertNotIn("M7", chord2.intervals) self.assertNotIn("M7", chord3.intervals) self.assertNotIn("m7", chord4.intervals) self.assertNotIn("m7", chord5.intervals) self.assertNotIn("m7", chord6.intervals)
def test_chord_init(self): pm.Chord("A") pm.Chord("Gbm7") pm.Chord("Gminor") pm.Chord("B min") pm.Chord("C minor") pm.Chord("G7") pm.Chord("Bmaj9") pm.Chord("Gb13") pm.Chord("Fmin(maj7)") pm.Chord("Db6/9") pm.Chord("Db(6/9)") pm.Chord("F#b13(b9)") pm.Chord("A+")