12345678910111213141516171819202122232425262728293031323334353637383940 |
- #!/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'
|