def test_ThrowsErrorWithParallelOctaves(self): analysis = XMLChoraleAnalysis(TestFilePaths.parallel_octave) analysis.analyze() errors = analysis.get_error_list("ParallelOctaveError") for error in errors: print error.message self.assertEqual(1, len(errors))
def test_ErrorHasCorrectProperties(self): analysis = XMLChoraleAnalysis(TestFilePaths.rep_bass) analysis.analyze() error = get_only_element(analysis.get_error_list("RepBassError")) self.assertEqual(3.0, error.get_measure_1()) self.assertEqual(3.0, error.get_measure_2()) self.assertEqual(0.0, error.get_beat_1()) self.assertEqual(1.0, error.get_beat_2())
def test_CorrectPropertiesOnParallelFifthError(self): analysis = XMLChoraleAnalysis(TestFilePaths.parallel_fifth) analysis.analyze() error = get_only_element(analysis.get_error_list("ParallelFifthError")) self.assertEqual("Fifth", error.get_interval_name()) self.assertEqual(Constants.ALTO_PART_NUMBER, error.get_part_number_1()) self.assertEqual(Constants.TENOR_PART_NUMBER, error.get_part_number_2()) self.assertEqual(2, error.get_measure_1()) self.assertEqual(1.0, error.get_beat_1()) self.assertEqual(2, error.get_measure_2()) self.assertEqual(2.0, error.get_beat_2())
def test_CorrectPropertiesOnParallelUnisonError(self): analysis = XMLChoraleAnalysis(TestFilePaths.parallel_unison) analysis.analyze() error = get_only_element(analysis.get_error_list("ParallelUnisonError")) self.assertEqual("Unison", error.get_interval_name()) self.assertEqual(Constants.ALTO_PART_NUMBER, error.get_part_number_1()) self.assertEqual(Constants.TENOR_PART_NUMBER, error.get_part_number_2()) self.assertEqual(2, error.get_measure_1()) self.assertEqual(1.0, error.get_beat_1()) self.assertEqual(2, error.get_measure_2()) self.assertEqual(2.0, error.get_beat_2()) self.assertEqual(note.Note("C4"), error.get_notes()[0]) self.assertEqual(note.Note("D4"), error.get_notes()[1]) self.assertEqual(note.Note("C4"), error.get_notes()[2]) self.assertEqual(note.Note("D4"), error.get_notes()[3])
def test_ThrowsErrorWithRepBass(self): analysis = XMLChoraleAnalysis(TestFilePaths.rep_bass) analysis.analyze() errors = analysis.get_error_list("RepBassError") self.assertEqual(1, len(errors))
def test_ThrowsErrorWithRange(self): analysis = XMLChoraleAnalysis(TestFilePaths.out_of_range) analysis.analyze() errors = analysis.get_error_list('RangeError') self.assertEqual(1, len(errors))
def test_ErrorHasCorrectProperties(self): analysis = XMLChoraleAnalysis(TestFilePaths.out_of_range) analysis.analyze() error = get_only_element(analysis.get_error_list("RangeError")) self.assertEqual(1.0, error.get_measure())
def test_ThrowsErrorWithTritoneJump(self): analysis = XMLChoraleAnalysis(TestFilePaths.tritone_jump) analysis.analyze() errors = analysis.get_error_list("TritoneJumpError") self.assertEqual(1, len(errors))
def test_ThrowsErrorWithVoiceCrossing(self): analysis = XMLChoraleAnalysis(TestFilePaths.voice_crossing) analysis.analyze() errors = analysis.get_error_list("VoiceCrossingError") self.assertEqual(2, len(errors))
def test_ThrowsErrorWithParallelUnisons(self): analysis = XMLChoraleAnalysis(TestFilePaths.parallel_unison) analysis.analyze() errors = analysis.get_error_list("ParallelUnisonError") self.assertEqual(1, len(errors))