blob: 133402785c343ca5012506d064085679df22b058 [file] [log] [blame]
Javi Merinoe4c1d452014-04-01 17:00:47 +01001#!/usr/bin/python
2
Javi Merinofff33672014-06-18 16:56:34 +01003import pandas as pd
4
Javi Merino076277d2014-07-02 18:48:18 +01005from test_thermal import BaseTestThermal
Javi Merino62c56dc2014-05-07 17:41:12 +01006from cr2 import OutPower, InPower
Javi Merinofff33672014-06-18 16:56:34 +01007import power
Javi Merinoe4c1d452014-04-01 17:00:47 +01008
Javi Merino076277d2014-07-02 18:48:18 +01009class TestPower(BaseTestThermal):
Javi Merino34f9da12014-06-19 15:48:16 +010010 def __init__(self, *args, **kwargs):
11 super(TestPower, self).__init__(*args, **kwargs)
12 self.map_label = {"000000f0": "A15", "0000000f": "A7"}
13
Javi Merinofff33672014-06-18 16:56:34 +010014 def test_pivot_with_labels(self):
15 """Test pivot_with_labels()"""
Javi Merinoc68e3792014-07-02 18:14:33 +010016 map_label = {"000000f0": "A15", "0000000f": "A7"}
Javi Merinofff33672014-06-18 16:56:34 +010017 dfr_in = pd.DataFrame({'cpus': ["000000f0", "0000000f", "000000f0", "0000000f"],
18 'freq': [1, 3, 2, 6]})
Javi Merinofff33672014-06-18 16:56:34 +010019
Javi Merinoc68e3792014-07-02 18:14:33 +010020 dfr_out = power.pivot_with_labels(dfr_in, "freq", "cpus", map_label)
Javi Merinofff33672014-06-18 16:56:34 +010021
22 self.assertEquals(dfr_out["A15"].iloc[0], 1)
23 self.assertEquals(dfr_out["A15"].iloc[1], 1)
24 self.assertEquals(dfr_out["A15"].iloc[2], 2)
25 self.assertEquals(dfr_out["A7"].iloc[1], 3)
26
Javi Merino493f2762014-06-19 09:42:06 +010027 def test_get_all_freqs_data(self):
28 """Test get_all_freqs_data()"""
29
30 inp = InPower()
31 outp = OutPower()
32
33 allfreqs = power.get_all_freqs_data(inp, outp, self.map_label)
34
35 self.assertEquals(allfreqs["A7"]["A7_freq_out"].iloc[1], 1400)
Javi Merinoe8576cb2014-06-30 16:31:46 +010036 self.assertEquals(allfreqs["A7"]["A7_freq_in"].iloc[35], 1400)
Javi Merino493f2762014-06-19 09:42:06 +010037 self.assertEquals(allfreqs["A15"]["A15_freq_out"].iloc[0], 1900)
38
39 # Make sure there are no NaNs in the middle of the array
40 self.assertTrue(allfreqs["A15"]["A15_freq_out"].notnull().all())
41
Javi Merino2e920b52014-05-07 17:29:36 +010042 def test_outpower_get_dataframe(self):
43 """Test OutPower.get_data_frame()"""
44 df = OutPower().get_data_frame()
Javi Merinoe4c1d452014-04-01 17:00:47 +010045
Javi Merino2b65c0b2014-06-04 18:16:42 +010046 self.assertEquals(df["power"].iloc[0], 5036)
Javi Merinoe4c1d452014-04-01 17:00:47 +010047 self.assertTrue("cdev_state" in df.columns)
Javi Merino62c56dc2014-05-07 17:41:12 +010048
Javi Merino73234c12014-06-18 17:27:16 +010049 def test_outpower_get_all_freqs(self):
50 """Test OutPower.get_all_freqs()"""
Javi Merino34f9da12014-06-19 15:48:16 +010051 dfr = OutPower().get_all_freqs(self.map_label)
Javi Merino73234c12014-06-18 17:27:16 +010052
53 self.assertEquals(dfr["A15"].iloc[0], 1900)
54 self.assertEquals(dfr["A7"].iloc[1], 1400)
55
Javi Merino62c56dc2014-05-07 17:41:12 +010056 def test_inpower_get_dataframe(self):
57 """Test InPower.get_data_frame()"""
58 df = InPower().get_data_frame()
59
Javi Merino62c56dc2014-05-07 17:41:12 +010060 self.assertTrue("load0" in df.columns)
Javi Merinoe8576cb2014-06-30 16:31:46 +010061 self.assertEquals(df["load0"].iloc[0], 1)
Javi Merino8a79fb32014-05-07 17:56:23 +010062
Javi Merino73234c12014-06-18 17:27:16 +010063 def test_inpower_get_all_freqs(self):
64 """Test InPower.get_all_freqs()"""
Javi Merinocda0f992014-06-19 16:23:00 +010065 dfr = InPower().get_all_freqs(self.map_label)
Javi Merino73234c12014-06-18 17:27:16 +010066
67 self.assertEquals(dfr["A15"].iloc[0], 1900)
Javi Merinoe8576cb2014-06-30 16:31:46 +010068 self.assertEquals(dfr["A7"].iloc[1], 1400)
69 self.assertEquals(dfr["A15"].iloc[13], 1800)
Javi Merino73234c12014-06-18 17:27:16 +010070
Javi Merino9237a3c2014-06-18 12:18:51 +010071 def test_inpower_get_load_data(self):
72 """Test InPower.get_load_data()"""
Javi Merinocda0f992014-06-19 16:23:00 +010073 load_data = InPower().get_load_data(self.map_label)
Javi Merino9237a3c2014-06-18 12:18:51 +010074
Javi Merinoe8576cb2014-06-30 16:31:46 +010075 self.assertEquals(load_data["A15"].iloc[0], 1 + 2 + 1 + 1)
76 self.assertEquals(load_data["A7"].iloc[3], 100 + 100 + 100 + 100)
Javi Merino9237a3c2014-06-18 12:18:51 +010077 self.assertEquals(load_data["A15"].iloc[0], load_data["A15"].iloc[1])
78
Javi Merino9237a3c2014-06-18 12:18:51 +010079 def test_inpower_plot_load(self):
80 """Test that InPower.plot_load() doesn't explode"""
Javi Merinocda0f992014-06-19 16:23:00 +010081 InPower().plot_load(self.map_label, title="Util")