~cpp
import unittest
class Palindrome:
def Reverse(self,numbers):
self.count=0
self.mul=1
self.stack=[]
self.reverseNumber=0
for i in range(1,100):
if numbers<=0:
break
else:
self.stack.append(numbers%10)
numbers=numbers/10
self.count=self.count+1
for i in range(1,self.count+1):
self.reverseNumber=self.reverseNumber+self.stack.pop()*self.mul
self.mul=self.mul*10
return self.reverseNumber
def run(self,numbers):
for i in range(0,101):
self.Reverse(numbers)
print numbers
print self.reverseNumber
print "------------"
if numbers==self.reverseNumber:
break
else:
numbers=numbers+self.Reverse(numbers)
return i, self.reverseNumber
class testPalindrome(unittest.TestCase):
def setUp(self):
self.exPalindrome=Palindrome()
def testReverse(self):
self.assertEquals(951,self.exPalindrome.Reverse(159))
self.assertEquals(265,self.exPalindrome.Reverse(562))
self.assertEquals(57,self.exPalindrome.Reverse(750))
def testRun(self):
self.assertEquals((4,9339),self.exPalindrome.run(195))
self.assertEquals((5,45254),self.exPalindrome.run(265))
self.assertEquals((3,6666),self.exPalindrome.run(750))
if __name__=='__main__':
unittest.main()