def testListTrips(self): self.assertEqual(0, LoopFun.listTrips([])) self.assertEqual(0, LoopFun.listTrips([5])) self.assertEqual(0, LoopFun.listTrips([5, 5])) self.assertEqual(1, LoopFun.listTrips([5, 5, 5])) self.assertEqual(2, LoopFun.listTrips([4, 4, 4, 4])) self.assertEqual(2, LoopFun.listTrips([5, 5, 5, -1, -1, -1])) self.assertEqual(4, LoopFun.listTrips([-5, -5, -5, -5, -5, -5])) self.assertEqual(5, LoopFun.listTrips([5, 5, 5, 5, 5, 5, 5]))
def testCharPairs(self): self.assertEqual(0, LoopFun.charPairs('')) self.assertEqual(0, LoopFun.charPairs('a')) self.assertEqual(1, LoopFun.charPairs('aa')) self.assertEqual(2, LoopFun.charPairs('aaa')) self.assertEqual(3, LoopFun.charPairs('aaaa')) self.assertEqual(2, LoopFun.charPairs('aabaa')) self.assertEqual(0, LoopFun.charPairs('aAaA')) self.assertEqual(5, LoopFun.charPairs('...x....'))
def testListRage(self): self.assertEqual(0, LoopFun.listRange([])) self.assertEqual(0, LoopFun.listRange([1])) self.assertEqual(0, LoopFun.listRange([1, 1, 1])) self.assertEqual(7, LoopFun.listRange([5, 9, 2, 6])) self.assertEqual(9, LoopFun.listRange([-10, -5, -3, -1])) self.assertEqual(100, LoopFun.listRange([100, 0])) self.assertEqual(100, LoopFun.listRange([0, 100]))
def testZipZap(self): self.assertEqual('zpXzp', LoopFun.zipZap('zipXzap')) self.assertEqual('zpzp', LoopFun.zipZap('zopzop')) self.assertEqual('zzzpzp', LoopFun.zipZap('zzzopzop')) self.assertEqual('zzz', LoopFun.zipZap('zzz')) self.assertEqual('ppp', LoopFun.zipZap('ppp')) self.assertEqual('zp', LoopFun.zipZap('zXp')) self.assertEqual('zp', LoopFun.zipZap('zp'))
def testStringSplosion(self): self.assertEqual('', LoopFun.stringSplosion('')) self.assertEqual('a', LoopFun.stringSplosion('a')) self.assertEqual('aab', LoopFun.stringSplosion('ab')) self.assertEqual('aababc', LoopFun.stringSplosion('abc')) self.assertEqual('CCoCodCode', LoopFun.stringSplosion('Code')) self.assertEqual('xxxxxx', LoopFun.stringSplosion('xxx'))
def testIsPalindromeWhenItIs(self): self.assertTrue(LoopFun.isPalindrome('1234321')) self.assertTrue(LoopFun.isPalindrome('racecar')) self.assertTrue(LoopFun.isPalindrome('amanaplanacanalpanama')) self.assertTrue(LoopFun.isPalindrome('abba')) self.assertTrue(LoopFun.isPalindrome('b')) self.assertTrue(LoopFun.isPalindrome(''))
def testSumFactorial(self): self.assertEqual(1, LoopFun.factorial(0)) self.assertEqual(1, LoopFun.factorial(1)) self.assertEqual(2, LoopFun.factorial(2)) self.assertEqual(6, LoopFun.factorial(3)) self.assertEqual(24, LoopFun.factorial(4)) self.assertEqual(120, LoopFun.factorial(5))
def testListSum(self): self.assertEqual(0, LoopFun.listSum([])) self.assertEqual(6, LoopFun.listSum([1, 2, 3])) self.assertEqual(-1, LoopFun.listSum([-1])) self.assertEqual(15, LoopFun.listSum([1, 2, 3, 4, 5, 0])) self.assertEqual(-5, LoopFun.listSum([-1, -2, 1, -3]))
def testIsPalindromeWhenItIsNot(self): self.assertFalse(LoopFun.isPalindrome('234321')) self.assertFalse(LoopFun.isPalindrome('race car')) self.assertFalse(LoopFun.isPalindrome('a man a plan a canal panama')) self.assertFalse(LoopFun.isPalindrome('not')) self.assertFalse(LoopFun.isPalindrome('12'))
def testReverseString(self): self.assertEqual('1', LoopFun.stringReverse('1')) self.assertEqual('', LoopFun.stringReverse('')) self.assertEqual('cb', LoopFun.stringReverse('bc')) self.assertEqual('xyz', LoopFun.stringReverse('zyx')) self.assertEqual('oiuyt', LoopFun.stringReverse('tyuio'))
def testSumFirstN(self): self.assertEqual(1, LoopFun.firstN(1)) self.assertEqual(3, LoopFun.firstN(2)) self.assertEqual(6, LoopFun.firstN(3)) self.assertEqual(10, LoopFun.firstN(4)) self.assertEqual(15, LoopFun.firstN(5))