def testAdd(self): tmp = self.s2 tmp += Interval(3) self.assertTrue(tmp.eqNames(Sound('c', 2))) self.assertTrue((tmp + Interval(2, 'minor')).eqNames(Sound('d'))) self.assertTrue((tmp + Interval(4)).eqNames(Sound('f', 2))) self.assertTrue((tmp + Interval(-5, 'aug')).eqNames(Sound('f', 0))) self.assertTrue((tmp + Interval(-2)).eqNames(Sound('b', 0)))
def testSub(self): tmp = self.p2 tmp -= Interval(-6, 'minor') self.assertTrue(tmp.eqNames(Pitch('f'))) self.assertTrue((tmp - Interval(-2, 'minor')).eqNames(Pitch('g', -2))) self.assertTrue((tmp - Interval(-5, 'aug')).eqNames(Pitch('c', 2, 2))) self.assertTrue((tmp - Interval(10)).eqNames(Pitch('d', -2, 0))) self.assertTrue((tmp - Interval(2)).eqNames(Pitch('e', -2)))
def setUp(self): self.n1 = Note(4, 0, Pitch('a', 0, 1, 'lower')) self.n2 = Note(8, 1, Pitch('c', 2, 2), Pitch('e'), Pitch()) self.n3 = Note.fromRhythmValAndPitches(RhythmicValue(8, 0), Pitch('d')) self.n4 = Note(4, 0, Pitch()) self.n5 = Note(8, 1, Pitch()) self.n5.pitches.append(Pitch('c', 2, 2)) self.n5.pitches.append(Pitch('e')) self.n6 = Note.fromRhythmValAndStruct(RhythmicValue(), Pitch(), PitchesStructure(Interval(3), Interval(2), Interval(4))) self.n7 = Note(8, 2)
def setUp(self): self.ps1 = PitchesStructure() self.ps1.intervals.append(Interval(3)) self.ps1.intervals.append(Interval(3, 'minor')) self.ps2 = PitchesStructure() self.ps2.intervals.append(Interval(3)) self.ps2.intervals.append(Interval(3, 'minor')) self.ps2.intervals.append(Interval(3, 'minor')) self.ps3 = PitchesStructure() self.ps3.intervals.append(Interval(4)) self.ps3.intervals.append(Interval(4)) self.ps4 = PitchesStructure(Interval(3), Interval(3, 'minor'))
def setUp(self): self.i1 = Interval(3) self.i2 = Interval(5, 'perfect') self.i3 = Interval(7) self.i4 = Interval(7, 'minor') self.i5 = Interval(-4, 'aug', 1) self.i6 = Interval(3, 'major') self.i7 = Interval(-10, 'minor')
def __sub__(self, other): """Substracts from self interval. Args: other (Interval): interval to substract from self Returns: pitch which is self decreased of other interval """ return self + Interval(-other.direction * (other.number + other.octaves * 7), other.type_, other.dimAugFolds)
def testAdd(self): tmp = self.p2 tmp += Interval(3) self.assertTrue(tmp.eqNames(Pitch('c', 2))) self.assertTrue((tmp + Interval(2, 'minor')).eqNames(Pitch('d'))) self.assertTrue((tmp + Interval(4)).eqNames(Pitch('f', 2))) self.assertTrue((tmp + Interval(-5, 'aug')).eqNames(Pitch('f', 0, 0))) self.assertTrue((tmp + Interval(-2)).eqNames(Pitch('b', 0, 0))) self.assertTrue((tmp + Interval(5, 'dim')).eqNames(Pitch('g')))
class TestInterval(unittest.TestCase): def setUp(self): self.i1 = Interval(3) self.i2 = Interval(5, 'perfect') self.i3 = Interval(7) self.i4 = Interval(7, 'minor') self.i5 = Interval(-4, 'aug', 1) self.i6 = Interval(3, 'major') self.i7 = Interval(-10, 'minor') def testRepr(self): self.assertEqual(str(self.i1), "3") self.assertEqual(str(self.i2), "5") self.assertEqual(str(self.i3), "7<") self.assertEqual(str(self.i4), "7") self.assertEqual(str(self.i5), "-4<") self.assertEqual(str(self.i6), "3") self.assertEqual(str(self.i7), "-10>") def testEq(self): self.assertEqual(self.i1, self.i6) self.assertTrue(self.i6 == self.i1) self.assertFalse(self.i2 == self.i4) self.assertFalse(self.i3 == self.i4) self.assertFalse(self.i7 == self.i5) def testNe(self): self.assertNotEqual(self.i1, self.i2) self.assertTrue(self.i2 != self.i3) self.assertTrue(self.i2 != self.i4) self.assertFalse(self.i1 != self.i6) def testSemitones(self): self.assertEqual(self.i1.semitones(), 4) self.assertEqual(self.i2.semitones(), 7) self.assertEqual(self.i3.semitones(), 11) self.assertEqual(self.i4.semitones(), 10) self.assertEqual(self.i5.semitones(), -6) self.assertEqual(self.i6.semitones(), 4) self.assertEqual(self.i7.semitones(), -15) def testNeg(self): self.assertEqual(-self.i1, Interval(-3)) self.assertEqual(-self.i2, Interval(-5)) self.assertEqual(-self.i3, Interval(-7)) self.assertEqual(-self.i5, Interval(4, 'aug')) self.assertEqual(-self.i7, Interval(10, 'minor')) def testInversion(self): self.assertEqual(self.i1.inversion(), Interval(6, 'minor')) self.assertEqual(self.i2.inversion(), Interval(4)) self.assertEqual(self.i3.inversion(), Interval(2, 'minor')) self.assertEqual(self.i5.inversion(), Interval(-5, 'dim', 1)) self.assertEqual(self.i7.inversion(), Interval(-6))
def testInversion(self): self.assertEqual(self.i1.inversion(), Interval(6, 'minor')) self.assertEqual(self.i2.inversion(), Interval(4)) self.assertEqual(self.i3.inversion(), Interval(2, 'minor')) self.assertEqual(self.i5.inversion(), Interval(-5, 'dim', 1)) self.assertEqual(self.i7.inversion(), Interval(-6))
def testNeg(self): self.assertEqual(-self.i1, Interval(-3)) self.assertEqual(-self.i2, Interval(-5)) self.assertEqual(-self.i3, Interval(-7)) self.assertEqual(-self.i5, Interval(4, 'aug')) self.assertEqual(-self.i7, Interval(10, 'minor'))
def __sub__(self, other): return self + Interval(-other.direction * other.number, other.type_, other.dimAugFolds)