def test_add(): hashtable = Hashtable() index = hashtable.hash("spam") assert hashtable.buckets[index] is None hashtable.add("spam", "eggs") bucket = hashtable.buckets[index] assert bucket
def test_unknown_key(): ht = Hashtable() ht.add("banana", 9) actual = ht.get("cucumber") expected = None assert actual == expected
def repeated_word(sentence): words = sentence.split() for w in range(len(words)): pattern = r'[^\w\s]' words[w] = re.sub(pattern,'', words[w]) hash = Hashtable() for word in words : if hash.contains(word.upper()): return word hash.add(word,word.upper())
def tree_intersection(tree_1, tree_2=0): arr = [] hashtable = Hashtable() top = tree_1.preOrder().top while top: if not hashtable.contains(top.value): hashtable.add(0, top.value) top = top.next top = tree_2.preOrder().top while top: if hashtable.contains(top.value): arr.append(int(top.value)) top = top.next return arr
def left_join(hash_1,hash_2): arr = [] for item in hash_1.get_data(): if item : arr.append(item.head.data) for item in arr: key = item[0] if hash_2.contains(key): item.append(hash_2.get(key)) else: item.append(None) return arr if __name__ =="__main__": hash_1 = Hashtable(4) hash_1.add('key1','word1') hash_1.add('key2','word2') hash_1.add('key3','word3') hash_1.add('key4','word4') hash_1.add('key5','word5') hash_2 = Hashtable(4) hash_2.add('key1','word11') hash_2.add('key2','word22') hash_2.add('key3','word33') hash_2.add('key6','word66') r = left_join(hash_1,hash_2) print(r)
def test_get_banana(): ht = Hashtable() ht.add("banana", 9) actual = ht.get("banana") expected = 9 assert actual == expected
def test_get_apple(): ht = Hashtable() ht.add("apple", 42) actual = ht.get("apple") expected = 42 assert actual == expected
def test_contains(): new_hashtable = Hashtable() new_hashtable.add('Soda', 'MtnDew') assert new_hashtable.contains('Soda') == True
def test_contains_false(): hashtable = Hashtable() hashtable.add('roger', 45) actual = hashtable.contains('roger') expected = False assert actual == expected
def test_get_one_key(): ht = Hashtable() ht.add('test', 'object') assert ht.get('test') == 'object'
def test_contains_false(): ht = Hashtable() ht.add('potato', 'object') assert ht.contains('test') is False
def test_contains_true(): ht = Hashtable() ht.add('test', 'object') assert ht.contains('test') is True
def test_add_two_to_same_index(): ht = Hashtable() ht.add('test', 'object') ht.add('test', 'array') assert ht._array[ht.hash('test')].head.data == ('test', 'array') assert ht._array[ht.hash('test')].head._next.data == ('test', 'object')
def test_add_one(): ht = Hashtable() ht.add('test', 'object') assert ht._array[ht.hash('test')].head.data == ('test', 'object')
def test_add(): ht = Hashtable() ht.size = 0 ht.add("test_key", "test_value") ht.size = 1 assert ht.buckets[ht.hash("test_key")].value == "test_value"
def test_single_hash_pass(): hashtable = Hashtable() hashtable.add('roger', 45) actual = hashtable.get('roger') expected = 45 assert actual == expected
def test_single_hash_fail(): hashtable = Hashtable() hashtable.add('roger', 45) actual = hashtable.get('roger') expected = 44 assert actual != expected
def test_get_three_of_same_key(): ht = Hashtable() ht.add('test', 'object') ht.add('test', 'thingy') ht.add('test', 'bobcat') assert ht.get('test') == 'object | thingy | bobcat'
def test_get_in_list(): new_hashtable = Hashtable() new_hashtable.add('Candy', 'Crunch') assert new_hashtable.get('Candy') == 'Crunch'
def test_get_three_of_same_key_integer_values(): ht = Hashtable() ht.add('test', 1) ht.add('test', 2) ht.add('test', 3) assert ht.get('test') == '1 | 2 | 3'
def test_add(): test_table = Hashtable() test_table.add('Home', 'Kansas City') assert test_table.get('Home') == 'Kansas City'
def test_add(): ht = Hashtable() actual = ht.add("apple", 42) expected = None assert actual == expected