def test_unisons_incorrect(self): fs = FirstSpecies([c, d, c], [g, d, g]) fs.check() self.assertEqual(len(fs.results), 1) self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('Only the first and last ' 'intervals may contain a unison')))
def test_last_interval_incorrect(self): """The first interval must be a unison, fifth or octave.""" fs = FirstSpecies([c, g, c], [c5, b, a]) fs.check() self.assertEqual(len(fs.results), 1) self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('The counterpoint must end with a' ' unison, fifth or octave.')))
class TestFirstSpecies(unittest.TestCase): def setUp(self): """Create two melodic lines.""" self.cf = [d, f, g, f, e, d] self.cm = [d5, a, b, d5, c5sharp, d5] self.fs = FirstSpecies(self.cf, self.cm) self.fs.check() def test_check_all(self): self.assertEqual(self.fs.results, []) def test_create_intervals(self): intervals = [HarmonicInterval(cf, cm) for cf, cm in zip(self.cf, self.cm)] self.assertEqual(self.fs.harmonic_intervals, intervals) def test_cf_intervals(self): """Test that the cantus firmus melodic intervals have been created correctly.""" # TODO def test_cm_intervals(self): """Test that the counter melody melodic intervals have been created correctly.""" # TODO def test_first_interval_correct(self): """The first interval must be a unison, fifth or octave.""" fs = FirstSpecies([c, g, c], [c5, b, c5]) fs.check() self.assertEqual(fs.results, []) def test_first_interval_incorrect(self): fs = FirstSpecies([c, g, c], [b, b, c5]) fs.check() self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('The counterpoint must begin with a' ' unison, fifth or octave.'))) def test_last_interval_correct(self): # TODO pass def test_last_interval_incorrect(self): """The first interval must be a unison, fifth or octave.""" fs = FirstSpecies([c, g, c], [c5, b, a]) fs.check() self.assertEqual(len(fs.results), 1) self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('The counterpoint must end with a' ' unison, fifth or octave.'))) def test_unisons_correct(self): fs = FirstSpecies([c, b3, c], [c, d, c]) fs.check() self.assertEqual(fs.results, []) def test_unisons_incorrect(self): fs = FirstSpecies([c, d, c], [g, d, g]) fs.check() self.assertEqual(len(fs.results), 1) self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('Only the first and last ' 'intervals may contain a unison'))) def test_parallel_correct(self): fs = FirstSpecies([c, g, c], [c5, b, c5]) fs.check() self.assertEqual(fs.results, []) def test_parallel_incorrect(self): fs = FirstSpecies([c, d], [c5, d5]) fs.check() self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('Parallel octave or fifth')))
def test_parallel_incorrect(self): fs = FirstSpecies([c, d], [c5, d5]) fs.check() self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('Parallel octave or fifth')))
def test_parallel_correct(self): fs = FirstSpecies([c, g, c], [c5, b, c5]) fs.check() self.assertEqual(fs.results, [])
def test_unisons_correct(self): fs = FirstSpecies([c, b3, c], [c, d, c]) fs.check() self.assertEqual(fs.results, [])
def test_first_interval_incorrect(self): fs = FirstSpecies([c, g, c], [b, b, c5]) fs.check() self.assertEqual(str(fs.results[0]), str(FirstSpeciesError('The counterpoint must begin with a' ' unison, fifth or octave.')))
def test_first_interval_correct(self): """The first interval must be a unison, fifth or octave.""" fs = FirstSpecies([c, g, c], [c5, b, c5]) fs.check() self.assertEqual(fs.results, [])
def setUp(self): """Create two melodic lines.""" self.cf = [d, f, g, f, e, d] self.cm = [d5, a, b, d5, c5sharp, d5] self.fs = FirstSpecies(self.cf, self.cm) self.fs.check()