def test_init(self): """JointEnumeration init should work as expected""" #should work for alphabet object a = JointEnumeration([DnaBases, RnaBases]) self.assertEqual(len(a), 16) self.assertEqual(a.Shape, (4,4)) self.assertEqual(a[0], ('T','U')) self.assertEqual(a[-1], ('G','G')) self.assertEqual(a._sub_enum_factors, array([[4],[1]])) #should work for arbitrary sequences a = JointEnumeration(['TCAG', 'UCAG']) self.assertEqual(len(a), 16) self.assertEqual(a[0], ('T','U')) self.assertEqual(a[-1], ('G','G')) self.assertEqual(a._sub_enum_factors, array([[4],[1]])) #should work for different length sequences a = JointEnumeration(['TCA', 'UCAG']) self.assertEqual(a.Shape, (3,4)) self.assertEqual(len(a), 12) self.assertEqual(a[0], ('T','U')) self.assertEqual(a[-1], ('A','G')) self.assertEqual(a._sub_enum_factors, \ array([[4],[1]])) #note: _not_ [3,1]
def test_unpackArrays(self): """JointEnumeration unpackArrays should return correct arrays.""" a = JointEnumeration(['xyz', 'abcd', 'ef']) v = [7, 15, 18, 0] result = a.unpackArrays(v) self.assertEqual(result, array([[0, 1, 2, 0], [3, 3, 1, 0], [1, 1, 0, 0]]))
def test_unpackArrays(self): """JointEnumeration unpackArrays should return correct arrays.""" a = JointEnumeration(['xyz', 'abcd', 'ef']) v = [7,15,18,0] result = a.unpackArrays(v) self.assertEqual(result, array([[0,1,2,0],[3,3,1,0], [1,1,0,0]]))
def test_fromIndices(self): """JointEnumeration fromIndices should return correct tuples""" a = JointEnumeration(['TCAG','UCAG']) i = a.fromIndices([0, 15, 15]) self.assertEqual(i, [('T','U'),('G','G'),('G','G')])
def test_toIndices(self): """JointEnumeration toIndices should convert tuples correctly""" a = JointEnumeration(['TCAG','UCAG']) i = a.toIndices([('T','U'),('G','G'),('G','G')]) self.assertEqual(i, [0, 15, 15])