=== HASH TABLE =================================================================

  1. Calling the hash-function with the same input, should always return the
     same output.
  2. Hash output should be unique.
  3. Computing a hash should be fast, the whole point of a hash table is fast
     lookup time.
  4. Hash output should be "random".