def test_perm_gen_lex_empty_string(self): """ Empty string should return [] & None argument raises ValueError """ self.assertEqual(perm_lex.perm_gen_lex(''),[]) with self.assertRaises(ValueError): perm_lex.perm_gen_lex()
def test_perm_gen_lex01(self): #tests 3 letter string self.assertEqual(perm_lex.perm_gen_lex('abc'), ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']) #same string but different order ---> same permutations but different order self.assertEqual(perm_lex.perm_gen_lex('cba'), ['cba', 'cab', 'bca', 'bac', 'acb', 'abc'])
def test_perm_gen_lex_multiple_letters(self): '''Tests a list with more than one of the same letter''' self.assertEqual(perm_lex.perm_gen_lex('aab'), ['aab', 'aba', 'baa']) self.assertEqual(perm_lex.perm_gen_lex('aaab'), ['aaab', 'aaba', 'abaa', 'baaa']) self.assertEqual(perm_lex.perm_gen_lex('aabc'), [ 'aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'baac', 'baca', 'bcaa', 'caab', 'caba', 'cbaa' ])
def test_perm_gen_lex(self): self.assertEqual( perm_lex.perm_gen_lex('abc'), ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']) #regular testcase self.assertEqual(perm_lex.perm_gen_lex('ab'), ['ab', 'ba']) self.assertEqual(perm_lex.perm_gen_lex('a'), ['a']) #testcase where len(a) is equal to one self.assertEqual(perm_lex.perm_gen_lex(''), []) #testcase where len(a) equals zero
def test_perm_gen_lex(self): #test an empty string self.assertEqual(perm_lex.perm_gen_lex(''), ['']) # test one single character self.assertEqual(perm_lex.perm_gen_lex('a'), ['a']) #test ab string self.assertEqual(perm_lex.perm_gen_lex('ab'),['ab','ba']) #test abc string self.assertEqual(perm_lex.perm_gen_lex('abc'),['abc', 'acb', 'bac', 'bca', 'cab', 'cba'])
def test_perm_gen_lex_big(self): '''more complicated permutation test''' self.assertEqual(perm_lex.perm_gen_lex('abcd'), [ 'abcd', 'abdc', 'acbd', 'acdb', 'adbc', 'adcb', 'bacd', 'badc', 'bcad', 'bcda', 'bdac', 'bdca', 'cabd', 'cadb', 'cbad', 'cbda', 'cdab', 'cdba', 'dabc', 'dacb', 'dbac', 'dbca', 'dcab', 'dcba' ])
def test_perm_gen_lex04(self): #tests 4 letter string ---> 4*3*2*1==24 permutations self.assertEqual(perm_lex.perm_gen_lex('abcd'), [ 'abcd', 'abdc', 'acbd', 'acdb', 'adbc', 'adcb', 'bacd', 'badc', 'bcad', 'bcda', 'bdac', 'bdca', 'cabd', 'cadb', 'cbad', 'cbda', 'cdab', 'cdba', 'dabc', 'dacb', 'dbac', 'dbca', 'dcab', 'dcba' ])
def test_perm_gen_lex(self): self.assertEqual(perm_lex.perm_gen_lex('a'), ['a']) self.assertEqual(perm_lex.perm_gen_lex(''), []) self.assertEqual(perm_lex.perm_gen_lex('abc'), ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']) self.assertEqual(perm_lex.perm_gen_lex('ab'), ['ab', 'ba']) self.assertEqual(perm_lex.perm_gen_lex('aa'), ['aa']) self.assertEqual(perm_lex.perm_gen_lex('aab'), ['aab', 'aba', 'baa']) self.assertEqual(perm_lex.perm_gen_lex('aab'), ['aab', 'aba', 'baa'])
def makeDummies(num): alpha = "abcdefghijklmnopqrstuvwxyz" names = perm_gen_lex(alpha[:rev_factorial(num)]) with open("Desktop/jsondummies.json", 'w') as f: ids = list(map(lambda x: str(x), list(range(514, 515 + num)))) totalStr = '' for i, id in enumerate(ids): totalStr += makeUser(514, id, ids, names) + "\n\n" #print(totalStr) f.write(totalStr) f.write("Hello") print('Done')
def makeDummyUsers(num): alpha = "abcdefghijklmnopqrstuvwxyz" names = perm_gen_lex(alpha[:rev_factorial(num)]) with open("jsondummies_users.json", 'w') as f: ids = list(map(lambda x: str(x), list(range(514, 515 + num)))) totalStr = "{\n\"Users\":[\n" for i, id in enumerate(ids): gotBack = makeUser(514, id, ids, names) totalStr += gotBack[0] + ",\n\n" totalStr = totalStr[:len(totalStr) - 3] + "\n\n" totalStr += "]\n}" f.write(totalStr) #print(totalStr) print('Done Users')
def test_perm_lex(self): self.assertEqual(perm_lex.perm_gen_lex('c'), ['c'])
def test_perm_lex3(self): with self.assertRaises(ValueError): perm_lex.perm_gen_lex('')
def test_perm_gen_lex3(self): self.assertEqual(perm_lex.perm_gen_lex('a'), ['a'])
def test_perm_gen_lex_2(self): """ Testing defaults from prompt """ self.assertEqual(perm_lex.perm_gen_lex('a'),['a'])
def test_perm_gen_lex7(self): self.assertEqual(perm_lex.perm_gen_lex("abcd"), [])
def test_perm_gen_lex_one_char(self): """string of one character""" self.assertEqual(perm_lex.perm_gen_lex('a'),['a'])
def test_perm_gen_lex02(self): #tests string of length 0 self.assertEqual(perm_lex.perm_gen_lex(''), [])
def test_perm_gen_lex_4(self): self.assertEqual(perm_lex.perm_gen_lex('wxyz'), [ 'wxyz', 'wxzy', 'wyxz', 'wyzx', 'wzxy', 'wzyx', 'xwyz', 'xwzy', 'xywz', 'xyzw', 'xzwy', 'xzyw', 'ywxz', 'ywzx', 'yxwz', 'yxzw', 'yzwx', 'yzxw', 'zwxy', 'zwyx', 'zxwy', 'zxyw', 'zywx', 'zyxw' ])
def test_perm_gen_lex2(self): """string of four characters""" self.assertEqual(perm_lex.perm_gen_lex('abcd'),['abcd', 'abdc', 'acbd', 'acdb', 'adbc', 'adcb', 'bacd', 'badc', 'bcad', 'bcda', 'bdac', 'bdca', 'cabd', 'cadb', 'cbad', 'cbda', 'cdab', 'cdba', 'dabc', 'dacb', 'dbac', 'dbca', 'dcab', 'dcba'])
def test_perm_gen_double_letter(self): """the same letter is used in a string""" self.assertEqual(perm_lex.perm_gen_lex('abb'),['abb','abb', 'bab', 'bba', 'bab', 'bba'])
def test_perm_gen_lex(self): """string of two characters""" self.assertEqual(perm_lex.perm_gen_lex('ab'),['ab','ba'])
def test_perm_gen_lex_nine(self): """tests a string of 9 character""" perm_lex.perm_gen_lex('abcdefghi')
def test_perm_gen_lex_three_char(self): """three character string""" self.assertEqual(perm_lex.perm_gen_lex('abc'), ['abc', 'acb', 'bac', 'bca', 'cab', 'cba'])
def test_perm_gen_lex(self): self.assertEqual(perm_lex.perm_gen_lex('ab'), ['ab', 'ba'])
def test_perm_gen_lex_1(self): self.assertEqual(perm_lex.perm_gen_lex('efg'), ['efg', 'egf', 'feg', 'fge', 'gef', 'gfe'])
def test_perm_gen_lex6(self): self.assertEqual(perm_lex.perm_gen_lex(''), [])
def test_perm_gen_lex03(self): #tests string of length 1 self.assertEqual(perm_lex.perm_gen_lex('a'), ['a'])
def test_perm_gen_lex_empty(self): """empty string""" self.assertEqual(perm_lex.perm_gen_lex(''),[])
def test_perm_gen_lex(self): #tests simple 2 letter string self.assertEqual(perm_lex.perm_gen_lex('ab'), ['ab', 'ba'])
def test_perm_gen_lex_3(self): self.assertEqual(perm_lex.perm_gen_lex('123'), ['123', '132', '213', '231', '312', '321'])