|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /proc/self/root/usr/lib/python2.4/site-packages/mx/BeeBase/mxBeeBase/ |
Upload File : |
import sys, whrandom, os
from mx.BeeBase.BeeIndex import *
### Settings
testfile = 'beebase.idx'
count = 1000
### Tests
print 'Building integer index without duplicates...',
idx = BeeIntegerIndex(testfile, dupkeys=0, filemode=2)
for i in xrange(count):
try:
idx[i] = i+1
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
print 'Checking integer index without duplicates...',
idx = BeeIntegerIndex(testfile, dupkeys=0, filemode=3)
for i in xrange(count):
try:
if idx[i] != i+1:
print ' key %i corrupt' % i
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
print 'Building string index without duplicates...',
idx = BeeStringIndex(testfile, keysize=10, dupkeys=0, filemode=2)
for i in xrange(count):
try:
idx[str(i)] = i+1
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
print 'Checking string index without duplicates...',
idx = BeeStringIndex(testfile, keysize=10, dupkeys=0, filemode=3)
for i in xrange(count):
try:
if idx[str(i)] != i+1:
print ' key %i corrupt' % i
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
###
print 'Building integer index with duplicates...',
idx = BeeIntegerIndex(testfile, dupkeys=0, filemode=2)
for i in xrange(count):
try:
idx[i] = i+1
idx[i] = i+2
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
print 'Checking integer index with duplicates...',
idx = BeeIntegerIndex(testfile, dupkeys=0, filemode=3)
for i in xrange(count):
try:
v = idx[i]
if v not in (i+1, i+2):
print ' key %i corrupt' % i
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
print 'Building string index with duplicates...',
idx = BeeStringIndex(testfile, keysize=10, dupkeys=0, filemode=2)
for i in xrange(count):
try:
idx[str(i)] = i+1
idx[str(i)] = i+2
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
print 'Checking string index with duplicates...',
idx = BeeStringIndex(testfile, keysize=10, dupkeys=0, filemode=3)
for i in xrange(count):
try:
v = idx[str(i)]
if v not in (i+1, i+2):
print ' key %i corrupt' % i
except:
print ' Problem for key %i: %s' % (i, sys.exc_info()[1])
idx.flush()
idx.close()
print 'done.'
###
idx = BeeStringIndex(testfile, 10)
# Insert some data
for i in range(1000):
key = str(whrandom.random())[:10]
idx[key] = i
idx.close()
# Reopen read-only
idx = BeeStringIndex(testfile, 10, filemode=1)
# Walk the idx with a cursor
up = idx.cursor(FirstKey)
down = idx.cursor(LastKey)
i = 0
while 1:
if i % 100 == 0:
print '%5i: up %10s:%5s -- down %10s:%5s' % \
(i, up.key, up.value, down.key, down.value)
i = i + 1
if not up.next():
break
if not down.prev():
break
print '%5i: up %10s:%5s -- down %10s:%5s' % \
(i, up.key, up.value, down.key, down.value)
print 'Found %i keys' % i
idx.close()
###
os.remove(testfile)