class ReprTest(TestCase): """PCSet and PSet repr's vary based on ordered and multiset settings""" def setUp(self): self.l = [0, 1, -7, 16, 1, 0] self.pcset = PCSet(self.l) self.pset = PSet(self.l) def testreprO(self): self.pcset.ordered(True) self.pset.ordered(True) self.pcset.multiset(False) self.pset.multiset(False) self.assertEqual(self.pcset.__repr__(), '[0, 1, 5, 4]') self.assertEqual(self.pset.__repr__(), '[0, 1, -7, 16]') def testreprO_Multi(self): pcset = PCSet(self.l, ordered=True, multiset=True) pset = PSet(self.l, ordered=True, multiset=True) self.assertEqual(pcset.__repr__(), '[0, 1, 5, 4, 1, 0]') self.assertEqual(pset.__repr__(), '[0, 1, -7, 16, 1, 0]') def testreprUO(self): self.pcset.ordered(False) self.pset.ordered(False) self.pcset.multiset(False) self.pset.multiset(False) self.assertEqual(self.pcset.__repr__(), '[0, 1, 4, 5]') self.assertEqual(self.pset.__repr__(), '[-7, 0, 1, 16]') def testreprUO_Multi(self): pcset = PCSet(self.l, ordered=False, multiset=True) pset = PSet(self.l, ordered=False, multiset=True) self.assertEqual(pcset.__repr__(), '[0, 0, 1, 1, 4, 5]') self.assertEqual(pset.__repr__(), '[-7, 0, 0, 1, 1, 16]')
class EqualityTest(TestCase): """Equality checks between PCSets, PSets, and built ins""" def setUp(self): self.l = [0, 1, 2, 4, 5, 10 ,1 ,0] self.s = set(self.l) self.pcset = PCSet(self.l) self.pset = PSet(self.l) self.pset.ordered(False) def testeqPPCSets(self): self.assertTrue(self.pcset == self.pcset) self.assertTrue(self.pset == self.pset) self.assertTrue(self.pcset == self.pset) def testeqPPCSet_list(self): self.assertTrue(self.pcset == self.l and self.pset == self.l) def testeqPPCSet_set(self): self.assertTrue(self.pcset == self.s and self.pset == self.s) def testeqPPCSet_int(self): a = PCSet(3) b = PSet(3) self.assertTrue(a == 3 and b == 3)
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 )
class GetItemTest(TestCase): """[x:y] PCSets and PSets should return pcs and pitches respectively""" def setUp(self): self.l = [0, 1, 2, 5, 7, 9, 35, 4] self.pcset = PCSet(self.l) self.pset = PSet(self.l) def testgetInt(self): self.assertEqual(self.pcset[6], [9]) self.assertEqual(self.pset[6], [9]) self.pset.ordered(True) self.assertEqual(self.pset[6], [35]) def testgetRange(self): self.assertEqual(self.pcset[2:5], [2, 4, 5]) def testgetNegative(self): self.assertEqual(self.pcset[-1], [11]) def testgetAfter(self): self.assertRaises(IndexError, self.pcset.__getitem__, 100)