Exemple #1
0
 def test_tree_deep_copy(self):
     t = Tree()
     s = t.plow('abcd')
     s.replace('X')
     u = t.copy()
     self.assertEqual(t._tree, u._tree)
     s = t.traverse('abc')
     s.replace('Y')
     self.assertNotEqual(t._tree, u._tree)
Exemple #2
0
	def test_tree_deep_copy(self):
		t = Tree()
		s = t.plow('abcd')
		s.replace('X')
		u = t.copy()
		self.assertEqual(t._tree, u._tree)
		s = t.traverse('abc')
		s.replace('Y')
		self.assertNotEqual(t._tree, u._tree)
Exemple #3
0
 def merge(self, other):
     assert hasattr(other, 'directions'), 'Merging with wrong type?'
     Tree.merge(self, other)
     Tree.merge(self.directions, other.directions)
Exemple #4
0
 def __init__(self, *args, **keywords):
     Tree.__init__(self, *args, **keywords)
     self.directions = KeyMap()
Exemple #5
0
 def makeTreeB():
     u = Tree()
     u.set('aaaX', 0)
     u.set('bbbC', 'Yes')
     u.set('bbbD', None)
     u.set('bbbE', 15)
     u.set('bbbF', 16)
     u.set('bQ', 22)
     u.set('bR', 23)
     u.set('ffff', 1337)
     return u
Exemple #6
0
 def makeTreeA():
     t = Tree()
     t.set('aaaX', 1)
     t.set('aaaY', 2)
     t.set('aaaZ', 3)
     t.set('bbbA', 11)
     t.set('bbbB', 12)
     t.set('bbbC', 13)
     t.set('bbbD', 14)
     t.set('bP', 21)
     t.set('bQ', 22)
     return t
Exemple #7
0
    def test_merge_trees(self):
        def makeTreeA():
            t = Tree()
            t.set('aaaX', 1)
            t.set('aaaY', 2)
            t.set('aaaZ', 3)
            t.set('bbbA', 11)
            t.set('bbbB', 12)
            t.set('bbbC', 13)
            t.set('bbbD', 14)
            t.set('bP', 21)
            t.set('bQ', 22)
            return t

        def makeTreeB():
            u = Tree()
            u.set('aaaX', 0)
            u.set('bbbC', 'Yes')
            u.set('bbbD', None)
            u.set('bbbE', 15)
            u.set('bbbF', 16)
            u.set('bQ', 22)
            u.set('bR', 23)
            u.set('ffff', 1337)
            return u

        # test 1
        t = Tree('a')
        u = Tree('b')
        merged = t.merge(u, copy=True)
        self.assertEqual('b', merged._tree)

        # test 2
        t = Tree('a')
        u = makeTreeA()
        merged = t.merge(u, copy=True)
        self.assertEqual(u._tree, merged._tree)

        # test 3
        t = makeTreeA()
        u = makeTreeB()
        v = t.merge(u, copy=True)

        self.assertEqual(0, v['aaaX'])
        self.assertEqual(2, v['aaaY'])
        self.assertEqual(3, v['aaaZ'])
        self.assertEqual(11, v['bbbA'])
        self.assertEqual('Yes', v['bbbC'])
        self.assertEqual(None, v['bbbD'])
        self.assertEqual(15, v['bbbE'])
        self.assertEqual(16, v['bbbF'])
        self.assertRaises(KeyError, t.__getitem__, 'bbbG')
        self.assertEqual(21, v['bP'])
        self.assertEqual(22, v['bQ'])
        self.assertEqual(23, v['bR'])
        self.assertEqual(1337, v['ffff'])

        # merge shouldn't be destructive
        self.assertEqual(makeTreeA()._tree, t._tree)
        self.assertEqual(makeTreeB()._tree, u._tree)

        v['fff'].replace('Lolz')
        self.assertEqual('Lolz', v['fff'])

        v['aaa'].replace('Very bad')
        v.plow('qqqqqqq').replace('eww.')

        self.assertEqual(makeTreeA()._tree, t._tree)
        self.assertEqual(makeTreeB()._tree, u._tree)
Exemple #8
0
    def test_tree(self):
        t = Tree()
        t.set('abcd', "Yes")
        self.assertEqual("Yes", t.traverse('abcd'))
        self.assertRaises(KeyError, t.traverse, 'abcde')
        self.assertRaises(KeyError, t.traverse, 'xyz')
        self.assert_(isinstance(t.traverse('abc'), Tree))

        t2 = Tree()
        self.assertRaises(KeyError, t2.set, 'axy', "Lol", force=False)
        t2.set('axx', 'ololol')
        t2.set('axyy', "Lol")
        self.assertEqual("Yes", t.traverse('abcd'))
        self.assertRaises(KeyError, t2.traverse, 'abcd')
        self.assertEqual("Lol", t2.traverse('axyy'))
        self.assertEqual("ololol", t2.traverse('axx'))

        t2.unset('axyy')
        self.assertEqual("ololol", t2.traverse('axx'))
        self.assertRaises(KeyError, t2.traverse, 'axyy')
        self.assertRaises(KeyError, t2.traverse, 'axy')

        t2.unset('a')
        self.assertRaises(KeyError, t2.traverse, 'abcd')
        self.assertRaises(KeyError, t2.traverse, 'a')
        self.assert_(t2.empty())
Exemple #9
0
	def merge(self, other):
		assert hasattr(other, 'directions'), 'Merging with wrong type?'
		Tree.merge(self, other)
		Tree.merge(self.directions, other.directions)
Exemple #10
0
	def __init__(self, *args, **keywords):
		Tree.__init__(self, *args, **keywords)
		self.directions = KeyMap()
Exemple #11
0
		def makeTreeB():
			u = Tree()
			u.set('aaaX', 0)
			u.set('bbbC', 'Yes')
			u.set('bbbD', None)
			u.set('bbbE', 15)
			u.set('bbbF', 16)
			u.set('bQ', 22)
			u.set('bR', 23)
			u.set('ffff', 1337)
			return u
Exemple #12
0
		def makeTreeA():
			t = Tree()
			t.set('aaaX', 1)
			t.set('aaaY', 2)
			t.set('aaaZ', 3)
			t.set('bbbA', 11)
			t.set('bbbB', 12)
			t.set('bbbC', 13)
			t.set('bbbD', 14)
			t.set('bP', 21)
			t.set('bQ', 22)
			return t
Exemple #13
0
	def test_merge_trees(self):
		def makeTreeA():
			t = Tree()
			t.set('aaaX', 1)
			t.set('aaaY', 2)
			t.set('aaaZ', 3)
			t.set('bbbA', 11)
			t.set('bbbB', 12)
			t.set('bbbC', 13)
			t.set('bbbD', 14)
			t.set('bP', 21)
			t.set('bQ', 22)
			return t

		def makeTreeB():
			u = Tree()
			u.set('aaaX', 0)
			u.set('bbbC', 'Yes')
			u.set('bbbD', None)
			u.set('bbbE', 15)
			u.set('bbbF', 16)
			u.set('bQ', 22)
			u.set('bR', 23)
			u.set('ffff', 1337)
			return u

		# test 1
		t = Tree('a')
		u = Tree('b')
		merged = t.merge(u, copy=True)
		self.assertEqual('b', merged._tree)

		# test 2
		t = Tree('a')
		u = makeTreeA()
		merged = t.merge(u, copy=True)
		self.assertEqual(u._tree, merged._tree)

		# test 3
		t = makeTreeA()
		u = makeTreeB()
		v = t.merge(u, copy=True)

		self.assertEqual(0, v['aaaX'])
		self.assertEqual(2, v['aaaY'])
		self.assertEqual(3, v['aaaZ'])
		self.assertEqual(11, v['bbbA'])
		self.assertEqual('Yes', v['bbbC'])
		self.assertEqual(None, v['bbbD'])
		self.assertEqual(15, v['bbbE'])
		self.assertEqual(16, v['bbbF'])
		self.assertRaises(KeyError, t.__getitem__, 'bbbG')
		self.assertEqual(21, v['bP'])
		self.assertEqual(22, v['bQ'])
		self.assertEqual(23, v['bR'])
		self.assertEqual(1337, v['ffff'])

		# merge shouldn't be destructive
		self.assertEqual(makeTreeA()._tree, t._tree)
		self.assertEqual(makeTreeB()._tree, u._tree)

		v['fff'].replace('Lolz')
		self.assertEqual('Lolz', v['fff'])

		v['aaa'].replace('Very bad')
		v.plow('qqqqqqq').replace('eww.')

		self.assertEqual(makeTreeA()._tree, t._tree)
		self.assertEqual(makeTreeB()._tree, u._tree)
Exemple #14
0
	def test_tree(self):
		t = Tree()
		t.set('abcd', "Yes")
		self.assertEqual("Yes", t.traverse('abcd'))
		self.assertRaises(KeyError, t.traverse, 'abcde')
		self.assertRaises(KeyError, t.traverse, 'xyz')
		self.assert_(isinstance(t.traverse('abc'), Tree))

		t2 = Tree()
		self.assertRaises(KeyError, t2.set, 'axy', "Lol", force=False)
		t2.set('axx', 'ololol')
		t2.set('axyy', "Lol")
		self.assertEqual("Yes", t.traverse('abcd'))
		self.assertRaises(KeyError, t2.traverse, 'abcd')
		self.assertEqual("Lol", t2.traverse('axyy'))
		self.assertEqual("ololol", t2.traverse('axx'))

		t2.unset('axyy')
		self.assertEqual("ololol", t2.traverse('axx'))
		self.assertRaises(KeyError, t2.traverse, 'axyy')
		self.assertRaises(KeyError, t2.traverse, 'axy')

		t2.unset('a')
		self.assertRaises(KeyError, t2.traverse, 'abcd')
		self.assertRaises(KeyError, t2.traverse, 'a')
		self.assert_(t2.empty())