| 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 |