blob: 523dac2960d8da5e0d2ca9f31288e6201a80b041 [file] [log] [blame]
Ben Murdochc5610432016-08-08 18:44:38 +01001# Copyright 2016 the V8 project authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import bytecode_dispatches_report as bdr
6import unittest
7
8
9class BytecodeDispatchesReportTest(unittest.TestCase):
10 def test_find_top_counters(self):
11 top_counters = bdr.find_top_bytecode_dispatch_pairs({
12 "a": {"a": 10, "b": 8, "c": 99},
13 "b": {"a": 1, "b": 4, "c": 1},
14 "c": {"a": 42, "b": 3, "c": 7}}, 5)
15 self.assertListEqual(top_counters, [
16 ('a', 'c', 99),
17 ('c', 'a', 42),
18 ('a', 'a', 10),
19 ('a', 'b', 8),
20 ('c', 'c', 7)])
21
22 def test_build_counters_matrix(self):
23 counters_matrix, xlabels, ylabels = bdr.build_counters_matrix({
24 "a": {"a": 10, "b": 8, "c": 7},
25 "b": {"a": 1, "c": 4},
26 "c": {"a": 42, "b": 12, "c": 99}})
27 self.assertTrue((counters_matrix == [[42, 12, 99],
28 [ 1, 0, 4],
29 [10, 8, 7]]).all())
30 self.assertListEqual(xlabels, ['a', 'b', 'c'])
31 self.assertListEqual(ylabels, ['c', 'b', 'a'])
32
33 def test_find_top_bytecodes(self):
34 top_dispatch_sources = bdr.find_top_bytecodes({
35 "a": {"a": 10, "b": 8, "c": 7},
36 "b": {"a": 1, "c": 4},
37 "c": {"a": 42, "b": 12, "c": 99}
38 })
39 self.assertListEqual(top_dispatch_sources, [
40 ('c', 153),
41 ('a', 25),
42 ('b', 5)
43 ])
44
45 def test_find_top_dispatch_sources(self):
46 top_dispatch_sources = bdr.find_top_dispatch_sources({
47 "a": {"a": 10, "b": 8, "c": 7},
48 "b": {"a": 1, "c": 4},
49 "c": {"a": 42, "b": 12, "c": 99}
50 }, "b", 10)
51 self.assertListEqual(top_dispatch_sources, [
52 ("c", 12),
53 ("a", 8)
54 ])