diff --git a/array_rotate/solutions/rotate.py b/array_rotate/solutions/rotate.py new file mode 100644 index 0000000..7e18977 --- /dev/null +++ b/array_rotate/solutions/rotate.py @@ -0,0 +1,9 @@ +def rotate(array, n): + length = len(array) + if length == n or n == 0: + return array + else: + result = [0] * length + for i in xrange(length): + result[(i+n) % length] = array[i] + return result diff --git a/test_rotate.py b/test_rotate.py new file mode 100644 index 0000000..f7aef45 --- /dev/null +++ b/test_rotate.py @@ -0,0 +1,31 @@ +#!/bin/usr/env python +import unittest +from rotate import rotate as r + + +class RotateTestCase(unittest.TestCase): + def setUp(self): + test = [1, 2, 3] + self.test_cases = ( + (test, 3), + (test, 0), + (test, 4), + (test, 5), + (test, 1) + ) + self.test_answers = ( + test, test, + [3, 1, 2], [2, 3, 1], + [3, 1, 2] + ) + + def tearDown(self): + del self.test_cases + del self.test_answers + + def test_rotate_function(self): + for idx, test_case in enumerate(self.test_cases): + self.assertEqual(r(*test_case), self.test_answers[idx]) + +if __name__ == '__main__': + unittest.main()