def test_calculate_entries_without_registered_calculations(self):
        cols = ['braz', 'uiae', 'dummy_calc', 'nrtd']
        cc = ColumnCalculator(cols)
        entries = ('braz', 'uiae', 1, 'nrtd', )

        result = cc.add_entries(list(entries))
        self.assertEqual(tuple(result), entries)

        result = cc.calculate_entries(list(entries))
        self.assertEqual(result, entries)
Exemple #2
0
    def get_latest(cls, session, columns):
        cc = ColumnCalculator(columns)
        menu_entries = cls.map_names_to_attributes(columns)
        menu_entries = cc.add_entries(menu_entries)

        query = session.query(*menu_entries)
        query = query.order_by(cls.id.desc())
        entry = query.first()

        return cc.calculate_entries(entry)
    def test_add_entries(self):
        class DummyCalculation(object):
            name = 'dummy_calc'
            needed_columns = ['foo', 'bar']

        ColumnCalculator.register_calculation(DummyCalculation)

        cols = ['braz', 'uiae', 'dummy_calc', 'nrtd']
        cc = ColumnCalculator(cols)
        expected = ['braz', 'uiae', 'foo', 'bar', 'nrtd']
        result = cc.add_entries(cols)
        self.assertEqual(result, expected)
    def test_calculate_entries(self):
        class DummyCalculation(object):
            name = 'dummy_calc'
            needed_columns = ['foo', 'bar']
            @staticmethod
            def calc(val1, val2):
                return val1 - val2
        
        ColumnCalculator.register_calculation(DummyCalculation)

        cols = ['braz', 'uiae', 'dummy_calc', 'nrtd']
        cc = ColumnCalculator(cols)
        entries = ['braz', 'uiae', 1, 5, 'nrtd']
        result = cc.calculate_entries(entries)
        expected = ('braz', 'uiae', -4, 'nrtd', )
        self.assertEqual(result, expected)
Exemple #5
0
    def get_values_in_timespan_wo_avg(cls, session, columns, span_with_resolution):
                                      
        cc = ColumnCalculator(columns)
        menu_entries = cls.map_names_to_attributes(columns)
        menu_entries = cc.add_entries(menu_entries)

        tsp_start = span_with_resolution.start_as_timestamp()
        tsp_end = span_with_resolution.end_as_timestamp()

        query = session.query(*menu_entries)
        query = query.filter(cls.tsp.between(tsp_start, tsp_end))

        result = query.all()

        if len(result) != 0:
            result = tuple(cc.calculate_entries(r) for r in result)
        return result
Exemple #6
0
    def get_values_in_timespan_with_avg(cls, session, columns, span_with_resolution):

        cc = ColumnCalculator(columns)
        menu_entries = cls.map_names_to_attributes(columns)
        menu_entries = cc.add_entries(menu_entries)

        avg_columns = map(func.avg, menu_entries)

        ret = []

        for avg_start, avg_end in span_with_resolution:
            query = session.query(*avg_columns)
            query = query.filter(cls.tsp.between(avg_start,
                                                 avg_end))
            result = query.all()[0]

            if result[0] is not None:
                ret.append(cc.calculate_entries(result))
        return tuple(ret)