blob: c2718e823bc7301f92a2d794e380c0a8b5f1fde2 [file] [log] [blame]
Javi Merino67958b12014-04-10 16:22:13 +01001#!/usr/bin/python
2
3import os, sys
4import tempfile
Javi Merinob78ff492014-04-14 15:22:12 +01005import pandas as pd
Javi Merino67958b12014-04-10 16:22:13 +01006
7import utils_tests
8sys.path.append(os.path.join(utils_tests.TESTS_DIRECTORY, "..", "cr2"))
9import results
10
11class TestResults(utils_tests.SetupDirectory):
12 def __init__(self, *args, **kwargs):
13 super(TestResults, self).__init__(
14 ["results.csv"],
15 *args, **kwargs)
16
17 def test_get_results(self):
18 results_frame = results.get_results()
19
20 self.assertEquals(type(results_frame), results.CR2)
21 self.assertEquals(len(results_frame.columns), 3)
22 self.assertEquals(results_frame["antutu"][0], 2)
23 self.assertEquals(results_frame["antutu"][1], 6)
24 self.assertEquals(results_frame["antutu"][2], 3)
25 self.assertEquals(results_frame["glbench_trex"][0], 740)
26 self.assertEquals(results_frame["geekbench"][0], 3)
27 self.assertEquals(results_frame["geekbench"][1], 4)
28
29 def test_get_results_path(self):
30 """results.get_results() can be given a directory for the results.csv"""
31
32 other_random_dir = tempfile.mkdtemp()
33 os.chdir(other_random_dir)
34
35 results_frame = results.get_results(self.out_dir)
36
37 self.assertEquals(len(results_frame.columns), 3)
38
39 def test_combine_results(self):
40 res1 = results.get_results()
41 res2 = results.get_results()
42
43 res2["antutu"][0] = 42
44 combined = results.combine_results([res1, res2], keys=["power_allocator", "ipa"])
45
46 self.assertEquals(type(combined), results.CR2)
47 self.assertEquals(combined["antutu"]["power_allocator"][0], 2)
48 self.assertEquals(combined["antutu"]["ipa"][0], 42)
49 self.assertEquals(combined["geekbench"]["power_allocator"][1], 4)
50 self.assertEquals(combined["glbench_trex"]["ipa"][2], 920)
51
52 def test_plot_results_benchmark(self):
53 """Test CR2.plot_results_benchmark()
54
55 Can't test it, so just check that it doens't bomb
56 """
Javi Merinob78ff492014-04-14 15:22:12 +010057 from matplotlib import pyplot as plt
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
68 (_, _, y_min, y_max) = plt.axis()
69
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 Merino67958b12014-04-10 16:22:13 +010077
78 def test_get_run_number(self):
79 self.assertEquals(results.get_run_number("score_2"), (True, 2))
80 self.assertEquals(results.get_run_number("score"), (True, 0))
81 self.assertEquals(results.get_run_number("score 3"), (True, 3))
82 self.assertEquals(results.get_run_number("FPS_1"), (True, 1))
83 self.assertEquals(results.get_run_number("Memory_score")[0], False)
84
85 def test_plot_results(self):
86 """Test CR2.plot_results()
87
88 Can't test it, so just check that it doens't bomb
89 """
90
91 r1 = results.get_results()
92 r2 = results.get_results()
93 combined = results.combine_results([r1, r2], ["r1", "r2"])
94
95 combined.plot_results()
Javi Merinob78ff492014-04-14 15:22:12 +010096
97 def test_init_fig(self):
98 r1 = results.get_results()
99 r1.init_fig()