1551ccae044b0ff658fe629dd67edd5ffe75d10e8Reid Spencer# Copyright 2014 The Chromium Authors. All rights reserved.
27a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell# Use of this source code is governed by a BSD-style license that can be
3d442d2846a00c0ac2f031deba06b7e0d003f14adEric Christopher# found in the LICENSE file.
4d442d2846a00c0ac2f031deba06b7e0d003f14adEric Christopher
5d442d2846a00c0ac2f031deba06b7e0d003f14adEric Christopherimport json
691e7ccd98bfa3db5f5c5d2ffa1ffb4061043af40Eric Christopherimport unittest
791e7ccd98bfa3db5f5c5d2ffa1ffb4061043af40Eric Christopher
891e7ccd98bfa3db5f5c5d2ffa1ffb4061043af40Eric Christopherfrom telemetry.core.platform.power_monitor import monsoon_power_monitor
96b241160eddc96ec098c74a041a327d545df6ff7Chandler Carruth
106b241160eddc96ec098c74a041a327d545df6ff7Chandler Carruth
116b241160eddc96ec098c74a041a327d545df6ff7Chandler Carruthclass MonsoonPowerMonitorTest(unittest.TestCase):
12420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola  def testEnergyComsumption(self):
13420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola    data = {
14420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola      'duration_s': 3600.0,
15420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola      'samples': [(1.0,1.0), (2.0,2.0), (3.0,3.0), (4.0,4.0)]
16420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola    }
17420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola    results = monsoon_power_monitor.MonsoonPowerMonitor.ParseSamplingOutput(
18420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola        json.dumps(data))
19420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola    self.assertEqual(results['power_samples_mw'], [1000, 4000, 9000, 16000])
20420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola    self.assertEqual(results['energy_consumption_mwh'], 7500)
21420d23c3d6c0fd0a5ec8f03acbbd222a377339daRafael Espindola