Beispiel #1
0
    def testTreeFunctioned(self):
        funcList = [lambda a: a.x, lambda a: a.y]

        ob1 = testTree.TestObj(0, 50, 0)
        ob2 = testTree.TestObj(100, 150, 1000)
        ob3 = testTree.TestObj(100, 250, 2000)
        ob4 = testTree.TestObj(100, 250, 3000)
        comparisonObj = testTree.TestObj(100, 150, 1000)

        treeController = DictTreeFunctioned(hashFuncList=funcList)
        dic = SpecialDict()

        treeController.addByFunction(dic, ob1)
        treeController.addByFunction(dic, ob2)
        treeController.addByFunction(dic, ob3)
        treeController.addByFunction(dic, ob4)

        result = treeController.getOriginalByFunction(dic,comparisonObj)
        assert result is ob2

        # We override the first hash function, it will look
        # only at the second hash function.
        ob5 = testTree.TestObj(100, 300, 4000)
        treeController.addByFunction(dic[0], ob5, depth=1)

        assert dic[0][50] is ob1
        assert len(dic[0]) == 2
        assert len(dic[100]) == 2
        assert len(dic) == 2
        assert dic[100][150] is ob2
        assert dic[100][250] is ob4
        assert dic[100][250] is ob4
        assert dic[0][300] is ob5

        Timestamped.prune(dic, 2100)

        assert len(dic) == 2
        assert len(dic[0]) == 1
        assert len(dic[100]) == 1
        assert dic[0][50] is not None
        assert dic[100][150] is not None
Beispiel #2
0
    def testTreeFunctioned(self):
        funcList = [lambda a: a.x, lambda a: a.y]

        ob1 = testTree.TestObj(0, 50, 0)
        ob2 = testTree.TestObj(100, 150, 1000)
        ob3 = testTree.TestObj(100, 250, 2000)
        ob4 = testTree.TestObj(100, 250, 3000)
        comparisonObj = testTree.TestObj(100, 150, 1000)

        treeController = DictTreeFunctioned(hashFuncList=funcList)
        dic = SpecialDict()

        treeController.addByFunction(dic, ob1)
        treeController.addByFunction(dic, ob2)
        treeController.addByFunction(dic, ob3)
        treeController.addByFunction(dic, ob4)

        result = treeController.getOriginalByFunction(dic, comparisonObj)
        assert result is ob2

        # We override the first hash function, it will look
        # only at the second hash function.
        ob5 = testTree.TestObj(100, 300, 4000)
        treeController.addByFunction(dic[0], ob5, depth=1)

        assert dic[0][50] is ob1
        assert len(dic[0]) == 2
        assert len(dic[100]) == 2
        assert len(dic) == 2
        assert dic[100][150] is ob2
        assert dic[100][250] is ob4
        assert dic[100][250] is ob4
        assert dic[0][300] is ob5

        Timestamped.prune(dic, 2100)

        assert len(dic) == 2
        assert len(dic[0]) == 1
        assert len(dic[100]) == 1
        assert dic[0][50] is not None
        assert dic[100][150] is not None