Backed out 3 changesets (bug 1790375) for causing wd failures on fetch_error.py....
[gecko.git] / third_party / aom / test / blockd_test.cc
blobab624007ce3d0de9a7933d2eac7b97dbb84162c7
1 /*
2 * Copyright (c) 2018, Alliance for Open Media. All rights reserved
4 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
12 #include "av1/common/blockd.h"
13 #include "third_party/googletest/src/googletest/include/gtest/gtest.h"
15 // Verify the optimized implementation of get_partition_subsize() produces the
16 // same results as the Partition_Subsize lookup table in the spec.
17 TEST(BlockdTest, GetPartitionSubsize) {
18 // The Partition_Subsize table in the spec (Section 9.3. Conversion tables).
19 /* clang-format off */
20 static const BLOCK_SIZE kPartitionSubsize[10][BLOCK_SIZES_ALL] = {
22 BLOCK_4X4,
23 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X8,
24 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X16,
25 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X32,
26 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X64,
27 BLOCK_INVALID, BLOCK_INVALID, BLOCK_128X128,
28 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
29 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
30 }, {
31 BLOCK_INVALID,
32 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X4,
33 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X8,
34 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X16,
35 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X32,
36 BLOCK_INVALID, BLOCK_INVALID, BLOCK_128X64,
37 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
38 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
39 }, {
40 BLOCK_INVALID,
41 BLOCK_INVALID, BLOCK_INVALID, BLOCK_4X8,
42 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X16,
43 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X32,
44 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X64,
45 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X128,
46 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
47 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
48 }, {
49 BLOCK_INVALID,
50 BLOCK_INVALID, BLOCK_INVALID, BLOCK_4X4,
51 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X8,
52 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X16,
53 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X32,
54 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X64,
55 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
56 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
57 }, {
58 BLOCK_INVALID,
59 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X4,
60 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X8,
61 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X16,
62 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X32,
63 BLOCK_INVALID, BLOCK_INVALID, BLOCK_128X64,
64 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
65 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
66 }, {
67 BLOCK_INVALID,
68 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X4,
69 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X8,
70 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X16,
71 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X32,
72 BLOCK_INVALID, BLOCK_INVALID, BLOCK_128X64,
73 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
74 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
75 }, {
76 BLOCK_INVALID,
77 BLOCK_INVALID, BLOCK_INVALID, BLOCK_4X8,
78 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X16,
79 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X32,
80 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X64,
81 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X128,
82 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
83 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
84 }, {
85 BLOCK_INVALID,
86 BLOCK_INVALID, BLOCK_INVALID, BLOCK_4X8,
87 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X16,
88 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X32,
89 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X64,
90 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X128,
91 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
92 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
93 }, {
94 BLOCK_INVALID,
95 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
96 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X4,
97 BLOCK_INVALID, BLOCK_INVALID, BLOCK_32X8,
98 BLOCK_INVALID, BLOCK_INVALID, BLOCK_64X16,
99 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
100 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
101 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
102 }, {
103 BLOCK_INVALID,
104 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
105 BLOCK_INVALID, BLOCK_INVALID, BLOCK_4X16,
106 BLOCK_INVALID, BLOCK_INVALID, BLOCK_8X32,
107 BLOCK_INVALID, BLOCK_INVALID, BLOCK_16X64,
108 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
109 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID,
110 BLOCK_INVALID, BLOCK_INVALID, BLOCK_INVALID
113 /* clang-format on */
115 for (int partition = 0; partition < 10; partition++) {
116 for (int bsize = BLOCK_4X4; bsize < BLOCK_SIZES_ALL; bsize++) {
117 EXPECT_EQ(kPartitionSubsize[partition][bsize],
118 get_partition_subsize(static_cast<BLOCK_SIZE>(bsize),
119 static_cast<PARTITION_TYPE>(partition)));