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 )
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)
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, [])
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)