def test_hashtable_collision():
    hashtable = Hashtable()
    hashtable.add("key", "value1")
    hashtable.add("yek", "value2")
    assert hashtable._hash("key") == hashtable._hash("yek")
    assert hashtable.get("key") == "value1"
    assert hashtable.get("yek") == "value2"
def test_hashtable_predictable_hash():
    hashtable = Hashtable()
    initial = hashtable._hash("spam")
    secondary = hashtable._hash("spam")
    assert initial == secondary
def test_hashtable_same_hash():
    hashtable = Hashtable()
    initial = hashtable._hash("listen")
    secondary = hashtable._hash("silent")
    assert initial == secondary
def test_hashtable_different_hash():
    hashtable = Hashtable()
    initial = hashtable._hash("glisten")
    secondary = hashtable._hash("silent")
    assert initial != secondary
def test_hashtable_in_range_hash():
    hashtable = Hashtable()
    actual = hashtable._hash("spam")
    assert 0 <= actual < hashtable.size