Пример #1
0
class SettingsTest(TestCase):
    """PCSet and PSet instances have various methods to change settings"""

    def setUp(self):
        self.l = [0, 4, 9, 11]
        self.pcset = PCSet(self.l)
        self.pset = PSet(self.l)

    def testMod(self):
        self.pcset.mod(7)
        self.pset.mod(13)
        self.assertEqual(self.pcset._mod, 7)
        self.assertEqual(self.pset._mod, 13)

    def testModInvalid(self):
        for n in [0, 32]:
            self.assertRaises(self.pcset.InvalidModulus, self.pcset.mod, n)

    def testCanon(self):
        a = self.pcset
        b = self.pset
        a.canon(True, False, False)
        b.canon(False, True, True)        
        self.assertTrue(
            a._canon_t == True and a._canon_i == False and a._canon_m == False
        )
        self.assertTrue(
            b._canon_t == False and b._canon_i == True and b._canon_m == True
        )

    def testDefault_m(self):
        self.pcset.default_m(7)
        self.assertEqual(self.pcset._default_m, 7)

    def testOrdered(self):
        self.pcset.ordered(True)
        self.pset.ordered(True)
        self.assertTrue(
            self.pcset._ordered == True and self.pset._ordered == True
        )
        self.pcset.ordered(False)
        self.pset.ordered(False)
        self.assertTrue(
            self.pcset._ordered == False and self.pset._ordered == False
        )

    def testMultiset(self):
        self.pcset.multiset(True)
        self.pset.multiset(True)
        self.assertTrue(
            self.pcset._multiset == True and self.pset._multiset == True
        )
        self.pcset.multiset(False)
        self.pset.multiset(False)
        self.assertTrue(
            self.pcset._multiset == False and self.pset._multiset == False
        )
Пример #2
0
    def testcopySettings(self):
        def verify(current):
            self.assertEqual(current.__class__, PCSet)
            self.assertTrue(current._ordered == False and current._multiset == False)
            self.assertEqual(current._mod, 7)
            self.assertTrue(current._canon_t, True)
            self.assertEqual(current._canon_i, False)
            self.assertEqual(current._canon_m, True)
            self.assertEqual(current.pitches, self.l)

        a = PCSet(self.l)
        a.mod(7)
        a.ordered(False)
        a.multiset(False)
        a.canon(True, False, True)
        a2 = a.copy()
        verify(a2)    
        b = PSet(self.l)
        self.assertEqual(b.__class__, PSet)
        b = a.copy()
        verify(b)
Пример #3
0
class EachTest(TestCase):
    """Methods that provide each n in the modulus or each set in the modulus"""

    def setUp(self):
        self.pcset = PCSet()

    def testEach_n(self):
        self.pcset.mod(12)
        self.assertEqual(list(self.pcset.each_n()),
                         [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
        self.pcset.mod(6)
        self.assertEqual(list(self.pcset.each_n()),[0, 1, 2, 3, 4, 5])
        self.assertEqual(list(self.pcset.each_n()),
                         list(PCSet.each_n_in_mod(6)))

    def testEach_set(self):
        self.pcset.mod(12)
        each_set = list(self.pcset.each_set())
        self.assertEqual(each_set[0:6], [[], [0], [1], [0, 1], [2], [0, 2]])
        self.assertEqual(each_set[-1],
                         [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
        self.assertEqual(each_set, list(PCSet.each_set_in_mod(12)))
        for index, each in enumerate(each_set):
            self.assertEqual(utils.setint(each), index)
        self.pcset.mod(4)
        each_set = list(self.pcset.each_set())
        self.assertEqual(each_set[0:3], [[], [0], [1]])
        self.assertEqual(each_set[-1], [0, 1, 2, 3])

    def testEach_set_in_mod(self):
        for each in PCSet.each_set_in_mod(10):
            self.assertEqual(each.mod(), 10)
        self.assertEqual(each, list(range(0, 10)))

    def testEach_tto(self):
        def check_each_tto(mod):
            a = PCSet(0, 3, mod=mod)
            ttos = list(a.each_tto())
            index = 0
            for m in (1, -1, 5, mod - 5):
                for n in range(0, mod):
                    self.assertEqual(ttos[index], (n, m))
                    index += 1  
        check_each_tto(12)
        check_each_tto(7)
        check_each_tto(15)

    def testEach_card(self):
        card = 2
        mod = 13
        a = PCSet(list(range(0, card)), mod=mod)
        aggregate = PCSet(list(range(0, mod)), mod=mod)
        for each, each_static in zip(a.each_card(), PCSet.each_card_in_mod(card, mod)):
            self.assertEqual(each.cardinality, card)
            self.assertEqual(each.mod(), mod)
            self.assertEqual(each._pc_set.issubset(aggregate), True)

    def testEach_prime_in_card_mod(self):
        trichords = [
            [0, 1, 2],
            [0, 1, 3],
            [0, 1, 4],
            [0, 1, 5],
            [0, 1, 6],
            [0, 2, 4],
            [0, 2, 5],
            [0, 2, 6],
            [0, 2, 7],
            [0, 3, 6],
            [0, 3, 7],
            [0, 4, 8],
        ]
        for each in PCSet.each_prime_in_card_mod(3, 13):
            self.assertEqual(each.mod(), 13)
            trichords.remove(each)
        self.assertEqual(trichords, [])
Пример #4
0
 def testZPartner_non_mod_12(self):
     a = PCSet(3, 5, 8)
     a.mod(13)
     b = a.zpartner
     self.assertEqual(b, [0, 2, 10])
     self.assertEqual(a.icv, b.icv)