OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/base/rtree.h" | 5 #include "cc/base/rtree.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
11 namespace cc { | 11 namespace cc { |
12 | 12 |
| 13 TEST(RTreeTest, ReserveNodesDoesntDcheck) { |
| 14 // Make sure that anywhere between 0 and 1000 rects, our reserve math in rtree |
| 15 // is correct. (This test would DCHECK if broken either in |
| 16 // RTree::AllocateNodeAtLevel, indicating that the capacity calculation was |
| 17 // too small or in RTree::Build, indicating the capacity was too large). |
| 18 for (int i = 0; i < 1000; ++i) { |
| 19 std::vector<gfx::Rect> rects; |
| 20 for (int j = 0; j < i; ++j) |
| 21 rects.push_back(gfx::Rect(j, i, 1, 1)); |
| 22 RTree rtree; |
| 23 rtree.Build(rects); |
| 24 } |
| 25 } |
| 26 |
13 TEST(RTreeTest, NoOverlap) { | 27 TEST(RTreeTest, NoOverlap) { |
14 std::vector<gfx::Rect> rects; | 28 std::vector<gfx::Rect> rects; |
15 for (int y = 0; y < 50; ++y) { | 29 for (int y = 0; y < 50; ++y) { |
16 for (int x = 0; x < 50; ++x) { | 30 for (int x = 0; x < 50; ++x) { |
17 rects.push_back(gfx::Rect(x, y, 1, 1)); | 31 rects.push_back(gfx::Rect(x, y, 1, 1)); |
18 } | 32 } |
19 } | 33 } |
20 | 34 |
21 RTree rtree; | 35 RTree rtree; |
22 rtree.Build(rects); | 36 rtree.Build(rects); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 rects.push_back(gfx::Rect(0, 0, 10, 10)); | 102 rects.push_back(gfx::Rect(0, 0, 10, 10)); |
89 rects.push_back(gfx::Rect(5, 5, 5, 5)); | 103 rects.push_back(gfx::Rect(5, 5, 5, 5)); |
90 | 104 |
91 RTree rtree; | 105 RTree rtree; |
92 rtree.Build(rects); | 106 rtree.Build(rects); |
93 | 107 |
94 ASSERT_EQ(gfx::Rect(0, 0, 10, 10), rtree.GetBounds()); | 108 ASSERT_EQ(gfx::Rect(0, 0, 10, 10), rtree.GetBounds()); |
95 } | 109 } |
96 | 110 |
97 } // namespace cc | 111 } // namespace cc |
OLD | NEW |