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