== ReverseAndAdd == {{{~cpp import unittest MAX_VALUE = 4294967295 MAX_COUNT = 1000 class ReverseAndAdd: def __init__(self): self.result = () def compute(self, n): count = 0 while n != int(str(n)[::-1]): n += int(str(n)[::-1]) count+= 1 if self.overBoundary(count, n): return -1, n if self.overBoundary(count, n): return -1, n return count, n def overBoundary(self, count, n): if count >= MAX_COUNT or n > MAX_VALUE: return True return False def printRepeatNum(self, num): for i in range(0,num*2,2): print self.result[i], self.result[i+1] class ReverseAndAddTestCase(unittest.TestCase): def test1(self): r = ReverseAndAdd() self.assertEquals((4,9339), r.compute(195)) self.assertEquals((5,45254), r.compute(265)) self.assertEquals((3,6666), r.compute(750)) self.assertEquals((0,111), r.compute(111)) def main(): r = ReverseAndAdd() num = input() for testcase in range(num): r.result += r.compute(input()) r.printRepeatNum(num) if __name__ == '__main__': #unittest.main() main() }}} == 쓰레드 == 결과 튜플을 ((4,9339), (5,45254), (3,6666)) 와 같이 중첩 튜플로 하려했으나 못하겠다. -- 재선 테스트가 프로그램의 최종 테스트 밖에 없구나. 바로 모든 소스를 만들지는 않았을테고... 테스트 보폭을 줄이는 게 좋을 듯. --재동 reverse 부분은 shell에서 약간의 테스트를 거쳤습니다. 그래서 따로 테스트 코드를 만들지 않았는데 그 결과 디자인이 나빠진 것 같습니다. 아직은 tdd에 익숙하지 않아서 모든 함수를 테스트 코드화하면서 보폭을 줄이는 훈련을 해야겠습니다. -- 재선 ---- ReverseAndAdd