blob: 1a088e5cb039569e11795c1c2dee5e57905c7193 [file] [log] [blame]
Javi Merino67958b12014-04-10 16:22:13 +01001#!/usr/bin/python
2
3import os, sys
4import tempfile
Javi Merino39452692014-06-21 19:01:13 +01005import matplotlib
Javi Merinob78ff492014-04-14 15:22:12 +01006import pandas as pd
Javi Merino67958b12014-04-10 16:22:13 +01007
8import utils_tests
9sys.path.append(os.path.join(utils_tests.TESTS_DIRECTORY, "..", "cr2"))
10import results
11
12class TestResults(utils_tests.SetupDirectory):
13 def __init__(self, *args, **kwargs):
14 super(TestResults, self).__init__(
15 ["results.csv"],
16 *args, **kwargs)
17
18 def test_get_results(self):
19 results_frame = results.get_results()
20
21 self.assertEquals(type(results_frame), results.CR2)
22 self.assertEquals(len(results_frame.columns), 3)
23 self.assertEquals(results_frame["antutu"][0], 2)
24 self.assertEquals(results_frame["antutu"][1], 6)
25 self.assertEquals(results_frame["antutu"][2], 3)
26 self.assertEquals(results_frame["glbench_trex"][0], 740)
27 self.assertEquals(results_frame["geekbench"][0], 3)
28 self.assertEquals(results_frame["geekbench"][1], 4)
29
30 def test_get_results_path(self):
31 """results.get_results() can be given a directory for the results.csv"""
32
33 other_random_dir = tempfile.mkdtemp()
34 os.chdir(other_random_dir)
35
36 results_frame = results.get_results(self.out_dir)
37
38 self.assertEquals(len(results_frame.columns), 3)
39
40 def test_combine_results(self):
41 res1 = results.get_results()
42 res2 = results.get_results()
43
44 res2["antutu"][0] = 42
45 combined = results.combine_results([res1, res2], keys=["power_allocator", "ipa"])
46
47 self.assertEquals(type(combined), results.CR2)
48 self.assertEquals(combined["antutu"]["power_allocator"][0], 2)
49 self.assertEquals(combined["antutu"]["ipa"][0], 42)
50 self.assertEquals(combined["geekbench"]["power_allocator"][1], 4)
51 self.assertEquals(combined["glbench_trex"]["ipa"][2], 920)
52
53 def test_plot_results_benchmark(self):
54 """Test CR2.plot_results_benchmark()
55
56 Can't test it, so just check that it doens't bomb
57 """
Javi Merino67958b12014-04-10 16:22:13 +010058
Javi Merinob78ff492014-04-14 15:22:12 +010059 r1 = results.get_results()
60 r2 = results.get_results()
61 r2["glbench_trex"].loc[1] = 28
62 r2["glbench_trex"].loc[2] = 28
63 combined = results.combine_results([r1, r2], ["r1", "r2"])
64
65 combined.plot_results_benchmark("antutu")
66 combined.plot_results_benchmark("glbench_trex", title="Glbench TRex")
67
Javi Merino39452692014-06-21 19:01:13 +010068 (_, _, y_min, y_max) = matplotlib.pyplot.axis()
Javi Merinob78ff492014-04-14 15:22:12 +010069
70 concat_data = pd.concat(combined["glbench_trex"][s] for s in combined["glbench_trex"])
71 data_min = min(concat_data)
72 data_max = max(concat_data)
73
74 # Fail if the axes are within the limits of the data.
75 self.assertTrue(data_min > y_min)
76 self.assertTrue(data_max < y_max)
Javi Merino39452692014-06-21 19:01:13 +010077 matplotlib.pyplot.close('all')
Javi Merino67958b12014-04-10 16:22:13 +010078
79 def test_get_run_number(self):
80 self.assertEquals(results.get_run_number("score_2"), (True, 2))
81 self.assertEquals(results.get_run_number("score"), (True, 0))
82 self.assertEquals(results.get_run_number("score 3"), (True, 3))
83 self.assertEquals(results.get_run_number("FPS_1"), (True, 1))
84 self.assertEquals(results.get_run_number("Memory_score")[0], False)
85
86 def test_plot_results(self):
87 """Test CR2.plot_results()
88
89 Can't test it, so just check that it doens't bomb
90 """
91
92 r1 = results.get_results()
93 r2 = results.get_results()
94 combined = results.combine_results([r1, r2], ["r1", "r2"])
95
96 combined.plot_results()
Javi Merino39452692014-06-21 19:01:13 +010097 matplotlib.pyplot.close('all')
Javi Merinob78ff492014-04-14 15:22:12 +010098
99 def test_init_fig(self):
100 r1 = results.get_results()
101 r1.init_fig()