From 34e21127380407843a69de4a1dc864fba14cf3d7 Mon Sep 17 00:00:00 2001 From: Javis Sullivan Date: Tue, 24 Nov 2015 09:54:19 -0500 Subject: [PATCH] add python solution for array_rotate --- array_rotate/solutions/rotate.py | 9 +++++++++ test_rotate.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 array_rotate/solutions/rotate.py create mode 100644 test_rotate.py 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()