42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
import unittest
|
|
from collections import Counter
|
|
|
|
def rotate_matrix(s1, s2):
|
|
|
|
if len(s1) != len(s2) or Counter(s1) != Counter(s2):
|
|
return 0
|
|
if len(s1) < 3 or s1 == s2:
|
|
return 1
|
|
|
|
indexes = [i for i, e in enumerate(s2) if e == s1[0]]
|
|
for idx in indexes:
|
|
offset = len(s1) - idx
|
|
if s2[idx:] == s1[:offset] and s2[:idx] == s1[offset:]:
|
|
return 1
|
|
return 0
|
|
|
|
|
|
class Test(unittest.TestCase):
|
|
'''Test Cases'''
|
|
dataT = [('', ''),
|
|
('a', 'a'),
|
|
('ab', 'ba'),
|
|
('waterbottle', 'waterbottle'),
|
|
('erbottlewat', 'waterbottle'),
|
|
('qwerqwer', 'erqwerqw')]
|
|
|
|
dataF = [('', 'a'),
|
|
('a', 'b'),
|
|
('qwerq', 'wreqq')]
|
|
|
|
def test_rotate_matrix(self):
|
|
for test in self.dataT:
|
|
res = rotate_matrix(*test)
|
|
self.assertTrue(res)
|
|
|
|
for test in self.dataF:
|
|
res = rotate_matrix(*test)
|
|
self.assertFalse(res)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main() |