Пример #1
0
 def merge(self, other):
     assert hasattr(other, 'directions'), 'Merging with wrong type?'
     Tree.merge(self, other)
     Tree.merge(self.directions, other.directions)
Пример #2
0
	def merge(self, other):
		assert hasattr(other, 'directions'), 'Merging with wrong type?'
		Tree.merge(self, other)
		Tree.merge(self.directions, other.directions)
Пример #3
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)
Пример #4
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)