Example #1
0
  def test_add_has_key_or_in(self):
    tree = stringtree.Tree()

    tree['one'] = 4
    tree['two'] = 5
    tree['three'] = 6

    self.assertEqual(tree.root.char, 'o')
    self.assertEqual(tree.root.down.down.value, 4)

    self.assertTrue(tree.has_key('one'))
    self.assertTrue(tree.has_key('two'))
    self.assertTrue(tree.has_key('three'))

    self.assertTrue('one' in tree)
    self.assertTrue('two' in tree)
    self.assertTrue('three' in tree)

    self.assertFalse(tree.has_key('o'))
    self.assertFalse(tree.has_key('on'))
    self.assertFalse(tree.has_key('onex'))
    self.assertFalse(tree.has_key('t'))

    self.assertFalse('o' in tree)
    self.assertFalse('on' in tree)
    self.assertFalse('onex' in tree)
    self.assertFalse('t' in tree)
Example #2
0
  def test_del(self):
    tree = stringtree.Tree()

    tree['one'] = 4
    tree['two'] = 5
    tree['three'] = 6

    del tree['two']

    self.assertTrue(tree.has_key('one'))
    self.assertFalse(tree.has_key('two'))
    self.assertTrue(tree.has_key('three'))
Example #3
0
  def test_count(self):
    tree = stringtree.Tree()

    self.assertEqual(len(tree), 0)

    tree['one'] = 4
    self.assertEqual(len(tree), 1)
    tree['two'] = 5
    self.assertEqual(len(tree), 2)
    tree['three'] = 6
    self.assertEqual(len(tree), 3)
    del tree['two']
    self.assertEqual(len(tree), 2)
Example #4
0
  def test_clear(self):
    tree = stringtree.Tree()

    tree['one'] = 4
    tree['two'] = 5
    tree['three'] = 6

    tree.clear()

    self.assertEqual(tree.root, None)

    self.assertFalse(tree.has_key('one'))
    self.assertFalse(tree.has_key('two'))
    self.assertFalse(tree.has_key('three'))
Example #5
0
  def test_partials(self):
    tree = stringtree.Tree()
    strs = (i for i in [
      'abortively', 'aboulia', 'abound', 'about', 'above', 'aboveboard', 
      'abracadabra', 'abrade', 'abrader', 'Abraham', 'abrasion'
    ])

    for s in strs:
      tree[s] = s

    # Tests

    gen = tree.partials('ab')
    self.assertTrue(isinstance(gen, types.GeneratorType))

    strs = (i for i in [
      'abortively', 'aboulia', 'abound', 'about', 'above', 'aboveboard', 
      'abracadabra', 'abrade', 'abrader', 'abrasion'
    ])

    for s in strs:
      self.assertEqual(s,gen.next())

    gen = tree.partials('abo')
    self.assertTrue(isinstance(gen, types.GeneratorType))

    strs = (i for i in [
      'abortively', 'aboulia', 'abound', 'about', 'above', 'aboveboard'
    ])

    for s in strs:
      x = gen.next()
      self.assertEqual(s,x)

    gen = tree.partials('abr')
    self.assertTrue(isinstance(gen, types.GeneratorType))

    strs = (i for i in [
      'abracadabra', 'abrade', 'abrader', 'abrasion'
    ])

    for s in strs:
      x = gen.next()
      self.assertEqual(s,x)

    gen = tree.partials('asckas')
    self.assertEqual(sum(1 for i in gen),0)
Example #6
0
import inspect, os, sys
import stringtree

print "StringTree Python Demo"
print "----------------------"

dr = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))

dictionary = stringtree.Tree()

print "Loading Dictionary..."

f = open(dr + '/dictionary.txt', 'r')
c = 0
for ln in f:
    dictionary.add(ln.strip(), c)
    c += 1
f.close()

print "Loaded " + str(c) + " words."

# Partial Matching
print "-Partial Matching -----------------"
print "-Type 'exit' to quit"
while True:
    x = raw_input("> ")
    if x == "exit":
        break
    for i in dictionary.partials(x):
        sys.stdout.write(i + " ")
    print
Example #7
0
 def test_init(self):
   tree = stringtree.Tree()
   self.assertEqual(tree.root, None)