def test_aggregate_always(self): data = AGGREGATE_ALWAYS_DATA aggregated, warnings = aggregate(data, 5) self.assertEqual(aggregated, data) self.assertEqual(warnings, []) aggregated, warnings = aggregate(data, 5, aggregate_always=True) self.assertEqual(len(aggregated), 2) self.assertEqual(aggregated[0]["number"], 1) self.assertEqual(aggregated[1]["number"], 3) self.assertEqual(warnings, [])
def test_aggregate_min(self): data = generate_test_data(51) aggregated, warnings = aggregate(data, 5, 'min') for i in range(1, 5): self.assertEqual(aggregated[i].get('timestamp'), _test_timestamp(i * 10)) num = 1 + 10 * i self.assertEqual(aggregated[i].get('number'), num) self.assertEqual(aggregated[i].get('number2'), num * 2)
def test_aggregate_empty_window(self): data = generate_test_data(5) aggregated, warnings = aggregate(data, 10, 'max', aggregate_always=True) for i in range(1, 5): self.assertNotEqual(aggregated[i].get('timestamp'), _test_timestamp(i)) self.assertEqual(aggregated[i].get('number'), i) self.assertEqual(aggregated[i].get('number2'), i * 2)
def test_run_data_tools_empty_data(self): topic_d = dict(id='test_id', name='Test name') data = [] def _check_results(results, warnings, topic_d=None): self.assertEqual(result, []) self.assertEqual(warnings[0], no_data(topic_d)) result, warnings = aggregate(data, 3) _check_results(result, warnings) result, warnings = run_data_tools(topic_d, data) _check_results(result, warnings, topic_d)
def test_aggregate_unknown_data_tool(self): data = generate_test_data(15) aggregated, warnings = aggregate(data, 10, 'horse') self.assertEqual(aggregated, []) self.assertEqual(warnings, [method_not_supported('horse')])