def test_normalize(self): """PositionalBaseUsage normalize should normalize each position""" a, c, g = BaseUsage('AAGC'), BaseUsage('CCGA'), BaseUsage('GGCA') p = PositionalBaseUsage(a, c, g) self.assertEqual(p[0], {'A':2, 'C':1, 'G':1, 'U':0}) p.normalize() self.assertEqual(p[0], {'A':0.5, 'C':0.25, 'G':0.25, 'U':0}) self.assertEqual(p[1], {'A':0.25, 'C':0.5, 'G':0.25, 'U':0}) self.assertEqual(p[2], {'A':0.25, 'C':0.25, 'G':0.5, 'U':0})
def test_info(self): """PositionalBaseUsage info should work as expected""" #test a cycle of setting the Info and setting it back again p = PositionalBaseUsage() self.assertRaises(AttributeError, getattr, p, 'upper') p.Info = 'xyz' self.assertEqual(p.upper(), 'XYZ') p.Info = None self.assertRaises(AttributeError, getattr, p, 'upper')
def test_positionalBases(self): """PositionalBaseUsage positionalBases should return same object""" p = PositionalBaseUsage() x = p.positionalBases() assert p is x
def test_bases(self): """PositionalBaseUsage bases should sum bases at each position""" a, c, g = BaseUsage('AAGC'), BaseUsage('CCGA'), BaseUsage('GGCA') p = PositionalBaseUsage(a, c, g) b = p.bases() self.assertEqual(b, BaseUsage('AAGCCCGAGGCA'))