Ejemplo n.º 1
0
class Test(TestCase):
    def setUp(self) -> None:
        self.fm = FractalMusic(tempo=72, quarter_duration=10)

    def test_1(self):
        self.fm.change_quarter_duration(20)
        expected = 20
        self.assertEqual(expected, self.fm.quarter_duration)

    def test_2(self):
        self.fm.add_layer()
        self.fm.get_children()[0].change_quarter_duration(10)
        expected = 15
        self.assertEqual(expected, self.fm.quarter_duration)

    def test_3(self):
        self.fm.add_layer()
        self.fm.get_children()[0].change_quarter_duration(10)
        expected = [Fraction(10, 1), Fraction(5, 3), Fraction(10, 3)]
        self.assertEqual(
            expected,
            [child.quarter_duration for child in self.fm.get_children()])

    def test_4(self):
        self.fm.add_layer()
        self.fm.change_quarter_duration(15)
        expected = [Fraction(15, 2), Fraction(5, 2), Fraction(5, 1)]
        self.assertEqual(
            expected,
            [child.quarter_duration for child in self.fm.get_children()])

    def test_5(self):
        self.fm.add_layer()
        self.fm.add_layer()
        self.fm.get_children()[0].change_quarter_duration(10)
        expected = [[Fraction(15, 1)], [10,
                                        Fraction(5, 3),
                                        Fraction(10, 3)],
                    [[Fraction(5, 3),
                      Fraction(10, 3),
                      Fraction(5, 1)],
                     [Fraction(5, 6),
                      Fraction(5, 18),
                      Fraction(5, 9)],
                     [Fraction(10, 9),
                      Fraction(5, 3),
                      Fraction(5, 9)]]]
        self.assertEqual(expected, [
            self.fm.get_layer(layer=i, key='quarter_duration')
            for i in range(self.fm.number_of_layers + 1)
        ])
Ejemplo n.º 2
0
class Test(TestCase):
    def setUp(self) -> None:
        self.fm = FractalMusic(proportions=[1, 2, 3, 4],
                               tree_permutation_order=[3, 1, 4, 2],
                               duration=10.4)

    def test_1(self):
        self.fm.tempo = self.fm.find_best_tempo_in_range()
        self.assertEqual(10.4, self.fm.duration)

    def test_2(self):
        self.fm.tempo = self.fm.find_best_tempo_in_range()
        self.fm.change_quarter_duration(round(self.fm.quarter_duration))
        self.assertEqual(13, self.fm.quarter_duration)

    def test_3(self):
        self.fm.add_layer()
        for child in self.fm.get_children():
            best_tempo = child.find_best_tempo_in_range()
            child.tempo = best_tempo
        # print([leaf.quarter_duration for leaf in self.fm.get_children()])
        self.fm.round_leaves()
        result = [4.0, 1.0, 7.0, 2.0]
        self.assertEqual(
            result,
            [child.quarter_duration for child in self.fm.get_children()])

    def test_4(self):
        self.fm.add_layer()
        for child in self.fm.get_children():
            best_tempo = child.find_best_tempo_in_range()
            child.tempo = best_tempo
        self.fm.round_leaves()
        xml_path = path + '_test_4.xml'
        score = self.fm.get_children_score()
        score.write(xml_path)
        self.assertCompareFiles(xml_path)

    def test_5(self):
        best_tempi = self.fm.find_best_tempi_in_list(
            tempi=[50, 60, 70, 80, 90, 100])
        self.assertEqual([70, 80], best_tempi)
Ejemplo n.º 3
0
class Test(TestCase):
    def setUp(self) -> None:
        self.fm = FractalMusic(duration=10)

    def test_1(self):
        self.fm.tempo = 70
        self.fm.add_layer()
        self.fm.change_quarter_duration(round(self.fm.quarter_duration))

        xml_path = path + '_test_1.xml'
        score = self.fm.get_score(show_fractal_orders=True)
        score.write(xml_path)
        self.assertCompareFiles(xml_path)

    def test_2(self):
        self.fm.tempo = 70
        self.fm.add_layer()
        self.fm.add_layer()
        self.fm.quantize_children()
        xml_path = path + '_test_2.xml'
        score = self.fm.get_children_score(show_fractal_orders=True)
        score.write(xml_path)
        self.assertCompareFiles(xml_path)