def test_can_retrieve_proper_info_with_collisions2():
  ht = HashTable()
  collision_key = ht.find_collision_key('babies')
  ht.add('babies', 55)
  ht.add(collision_key, 10000000)
  collision_key2 = ht.find_collision_key('goats')
  ht.add('goats', 99)
  ht.add(collision_key2, 9887766554433231)
  assert (ht.get('babies') == 55) and (ht.get('goats') == 99) and (ht.get(collision_key) == 10000000)
  
def test_retrieving_based_on_a_key_returns_the_value_stored():
  hash_table = HashTable()
  hash_table.add('yahia','24')
  assert hash_table.get('yahia') == '24'
def test_adding_a_key_and_value_to_hashtable():
  hash_table = HashTable()
  hash_table.add('yahia','24')
  assert hash_table.get('yahia') == '24'
def test_retrieve_a_value_from_a_bucket_within_the_hashtable_that_has_a_collision():
  hash_table = HashTable()
  hash_table.add('yahia','24')
  hash_table.add('yaiha','30')
  assert hash_table.get('yahia') == '24'
  assert hash_table.get('yaiha') == '30'
def test_handle_a_collision_within_the_hashtable():
  hash_table = HashTable()
  hash_table.add('yahia','24')
  hash_table.add('yaiha','30')
  print(hash_table.contains('yahia'))
  print(hash_table.contains('yaiha'))
def test_can_retrieve_proper_info_with_collisions():
  ht = HashTable()
  collision_key = ht.find_collision_key('babies')
  ht.add('babies', 55)
  ht.add(collision_key, 10000000)
  assert ht.get('babies') == 55
def test_multiple_insertions_get():
  ht = HashTable()
  ht.add('babies', 25)
  ht.add('goats', 99)
  assert ht.get('goats') == 99
def test_get_value_works():
  ht = HashTable()
  ht.add('babies', 25)
  assert ht.get('babies') == 25
def test_add_actually_adds():
  ht = HashTable()
  ht.add('babies', 25)
  assert ht.contains('babies')