41 lines
900 B
Python
41 lines
900 B
Python
#!/usr/bin/env python
|
|
"""
|
|
This example shows how to use the class PerfHash.
|
|
|
|
This class is designed for creating perfect hash tables at run time,
|
|
which should be avoided, in particulat inserting new keys is
|
|
prohibitively expensive since a new perfect hash table needs to be
|
|
constructed. However, this class can be usefull for testing.
|
|
|
|
For practical programming purposes in Python the class PerfHash
|
|
should never be used because Python's built-in dictionary is very
|
|
efficient and always faster than PerfHash.
|
|
"""
|
|
|
|
import sys
|
|
|
|
sys.path.append('..')
|
|
from perfect_hash import PerfHash
|
|
|
|
|
|
month = dict(zip('jan feb mar apr may jun jul aug sep oct mov dec'.split(),
|
|
range(1, 13)))
|
|
|
|
d = PerfHash(month)
|
|
|
|
|
|
for m in month:
|
|
assert month[m] == d[m]
|
|
|
|
d[True] = False
|
|
|
|
assert d[True] == False
|
|
|
|
for i in xrange(10): # very expensive
|
|
d[i] = 2*i*i + 3*i -7
|
|
|
|
assert d[4] == 37
|
|
|
|
|
|
print 'OK'
|