Example #1
0
    def test_aggregators_with_das(self):
        """test aggregators with das record"""
        rows = []
        data = {
            'block': {
                'name': 'AAA',
                'replica': [{
                    'name': 'a',
                    'size': 1
                }, {
                    'name': 'b',
                    'size': 10
                }]
            }
        }
        data.update({'_id': 1})
        rows.append(data)
        data = {
            'block': {
                'name': 'AAA',
                'replica': [{
                    'name': 'a',
                    'size': 2
                }, {
                    'name': 'b',
                    'size': 20
                }]
            }
        }
        data.update({'_id': 2})
        rows.append(data)

        expect = {'result': 20, '_id': 2}
        robj = das_func('max', 'block.replica.size', rows)
        self.assertEqual(expect, dict(result=robj.result, _id=robj.obj_id))
Example #2
0
    def test_aggregators(self):
        """test aggregators dict records"""
        rows = []
        data = {
            'block': {
                'name': 'AAA',
                'replica': [{
                    'name': 'a',
                    'size': 1
                }, {
                    'name': 'b',
                    'size': 10
                }]
            }
        }
        rows.append(data)
        data = {
            'block': {
                'name': 'AAA',
                'replica': [{
                    'name': 'a',
                    'size': 2
                }, {
                    'name': 'b',
                    'size': 20
                }]
            }
        }
        rows.append(data)

        expect = 33
        robj = das_func('sum', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = 4
        robj = das_func('count', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = 1
        robj = das_func('min', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = 20
        robj = das_func('max', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = (1 + 10 + 2 + 20) / 4.
        robj = das_func('avg', 'block.replica.size', rows)
        self.assertEqual(expect, float(robj.result) / robj.rec_count)

        expect = (10 + 2) // 2
        robj = das_func('median', 'block.replica.size', rows)
        val = (robj.result[len(robj.result)//2-1] + \
                                robj.result[len(robj.result)//2] )//2
        self.assertEqual(expect, val)

        expect = 20
        drows = [DotDict(row) for row in rows]
        robj = das_func('max', 'block.replica.size', drows)
        self.assertEqual(expect, robj.result)
Example #3
0
    def test_aggregators_with_das(self):
        """test aggregators with das record"""
        rows = []
        data = {"block": {"name": "AAA", "replica": [{"name": "a", "size": 1}, {"name": "b", "size": 10}]}}
        data.update({"_id": 1})
        rows.append(data)
        data = {"block": {"name": "AAA", "replica": [{"name": "a", "size": 2}, {"name": "b", "size": 20}]}}
        data.update({"_id": 2})
        rows.append(data)

        expect = {"result": 20, "_id": 2}
        robj = das_func("max", "block.replica.size", rows)
        self.assertEqual(expect, dict(result=robj.result, _id=robj.obj_id))
Example #4
0
    def test_aggregators_with_das(self):
        """test aggregators with das record"""
        rows = []
        data = {'block': {'name':'AAA', 'replica': [{'name':'a', 'size':1}, {'name':'b', 'size':10}] }}
        data.update({'_id' : 1})
        rows.append(data)
        data = {'block': {'name':'AAA', 'replica': [{'name':'a', 'size':2}, {'name':'b', 'size':20}] }}
        data.update({'_id' : 2})
        rows.append(data)

        expect = {'result': 20, '_id': 2}
        robj = das_func('max', 'block.replica.size', rows)
        self.assertEqual(expect, dict(result=robj.result, _id=robj.obj_id))
Example #5
0
    def test_aggregators(self):
        """test aggregators dict records"""
        rows = []
        data = {'block': {'name':'AAA', 'replica': [{'name':'a', 'size':1}, {'name':'b', 'size':10}] }}
        rows.append(data)
        data = {'block': {'name':'AAA', 'replica': [{'name':'a', 'size':2}, {'name':'b', 'size':20}] }}
        rows.append(data)

        expect = 33
        robj = das_func('sum', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = 4
        robj = das_func('count', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = 1
        robj = das_func('min', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = 20
        robj = das_func('max', 'block.replica.size', rows)
        self.assertEqual(expect, robj.result)

        expect = (1+10+2+20)/4.
        robj = das_func('avg', 'block.replica.size', rows)
        self.assertEqual(expect, float(robj.result)/robj.rec_count)

        expect = (10+2)/2
        robj = das_func('median', 'block.replica.size', rows)
        val = (robj.result[len(robj.result)/2-1] + \
                                robj.result[len(robj.result)/2] )/2
        self.assertEqual(expect, val)

        expect = 20
        drows  = [DotDict(row) for row in rows]
        robj = das_func('max', 'block.replica.size', drows)
        self.assertEqual(expect, robj.result)
Example #6
0
    def test_aggregators(self):
        """test aggregators dict records"""
        rows = []
        data = {"block": {"name": "AAA", "replica": [{"name": "a", "size": 1}, {"name": "b", "size": 10}]}}
        rows.append(data)
        data = {"block": {"name": "AAA", "replica": [{"name": "a", "size": 2}, {"name": "b", "size": 20}]}}
        rows.append(data)

        expect = 33
        robj = das_func("sum", "block.replica.size", rows)
        self.assertEqual(expect, robj.result)

        expect = 4
        robj = das_func("count", "block.replica.size", rows)
        self.assertEqual(expect, robj.result)

        expect = 1
        robj = das_func("min", "block.replica.size", rows)
        self.assertEqual(expect, robj.result)

        expect = 20
        robj = das_func("max", "block.replica.size", rows)
        self.assertEqual(expect, robj.result)

        expect = (1 + 10 + 2 + 20) / 4.0
        robj = das_func("avg", "block.replica.size", rows)
        self.assertEqual(expect, float(robj.result) / robj.rec_count)

        expect = (10 + 2) / 2
        robj = das_func("median", "block.replica.size", rows)
        val = (robj.result[len(robj.result) / 2 - 1] + robj.result[len(robj.result) / 2]) / 2
        self.assertEqual(expect, val)

        expect = 20
        drows = [DotDict(row) for row in rows]
        robj = das_func("max", "block.replica.size", drows)
        self.assertEqual(expect, robj.result)