|
11 | 11 | import datetime as dt |
12 | 12 | from typing import Sequence |
13 | 13 |
|
| 14 | +import pandas as pd |
14 | 15 | from typing_extensions import override |
15 | 16 |
|
16 | 17 | from crossbench.action_runner.default_action_runner import DefaultActionRunner |
17 | 18 | from crossbench.benchmarks.loadline import (LoadLine1PhoneBenchmark, |
18 | 19 | LoadLine1TabletBenchmark) |
| 20 | +from crossbench.benchmarks.loadline import loadline_1 |
19 | 21 | from crossbench.benchmarks.loadline.loadline import LoadLinePageFilter |
20 | 22 | from crossbench.benchmarks.loading.playback_controller import \ |
21 | 23 | PlaybackController |
22 | 24 | from crossbench.benchmarks.loading.tab_controller import TabController |
23 | 25 | from tests import test_helper |
24 | | -from tests.crossbench.base import BaseCliTestCase |
| 26 | +from tests.crossbench.base import BaseCliTestCase, BaseCrossbenchTestCase |
25 | 27 | from tests.crossbench.benchmarks.helper import SubStoryTestCase |
26 | 28 |
|
27 | 29 |
|
@@ -100,8 +102,49 @@ def test_run_default_tablet(self): |
100 | 102 | pass |
101 | 103 |
|
102 | 104 |
|
| 105 | +class TestLoadLine1Helpers(BaseCrossbenchTestCase): |
| 106 | + |
| 107 | + def test_process_scores(self): |
| 108 | + query_result = pd.DataFrame( |
| 109 | + columns=["score", "cb_browser", "cb_story", "cb_temperature", "cb_run"], |
| 110 | + data=[[4, "chrome", "story1", 0, 0], [6, "chrome", "story1", 0, 1], |
| 111 | + [19, "chrome", "story2", 0, 0], [21, "chrome", "story2", 0, 1]]) |
| 112 | + scores = loadline_1.process_scores(query_result) |
| 113 | + |
| 114 | + self.assertEqual(scores.shape, (1, 3)) |
| 115 | + self.assertAlmostEqual(scores["TOTAL_SCORE"][0], 10) |
| 116 | + self.assertAlmostEqual(scores["story1"][0], 5) |
| 117 | + self.assertAlmostEqual(scores["story2"][0], 20) |
| 118 | + |
| 119 | + def test_process_breakdown(self): |
| 120 | + query_result = pd.DataFrame( |
| 121 | + columns=[ |
| 122 | + "network", "process_launch", "renderer", "compositor", "gpu", |
| 123 | + "surfaceflinger", "cb_browser", "cb_story", "cb_temperature", |
| 124 | + "cb_run" |
| 125 | + ], |
| 126 | + data=[[5, 3, 9, 11, 10, 10, "chrome", "story1", 0, 0], |
| 127 | + [5, 3, 11, 9, 10, 10, "chrome", "story1", 0, 1], |
| 128 | + [7, 10, 19, 21, 20, 20, "chrome", "story2", 0, 0], |
| 129 | + [7, 10, 21, 19, 20, 20, "chrome", "story2", 0, 1]]) |
| 130 | + breakdown = loadline_1.process_breakdown(query_result) |
| 131 | + |
| 132 | + self.assertEqual(breakdown.shape, (2, 5)) |
| 133 | + self.assertAlmostEqual(breakdown["os"][0], 5) |
| 134 | + self.assertAlmostEqual(breakdown["os"][1], 10) |
| 135 | + self.assertAlmostEqual(breakdown["renderer"][0], 10) |
| 136 | + self.assertAlmostEqual(breakdown["renderer"][1], 20) |
| 137 | + self.assertAlmostEqual(breakdown["compositor"][0], 10) |
| 138 | + self.assertAlmostEqual(breakdown["compositor"][1], 20) |
| 139 | + self.assertAlmostEqual(breakdown["gpu"][0], 10) |
| 140 | + self.assertAlmostEqual(breakdown["gpu"][1], 20) |
| 141 | + self.assertAlmostEqual(breakdown["surfaceflinger"][0], 10) |
| 142 | + self.assertAlmostEqual(breakdown["surfaceflinger"][1], 20) |
| 143 | + |
| 144 | + |
103 | 145 | # Don't expose abstract base test cases. |
104 | 146 | del BaseLoadLineBenchmarkTestCase |
| 147 | +del BaseCrossbenchTestCase |
105 | 148 | del BaseCliTestCase |
106 | 149 | del SubStoryTestCase |
107 | 150 |
|
|
0 commit comments