| OLD | NEW |
| (Empty) |
| 1 // Copyright 2013 The Chromium 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 | |
| 5 #include "base/basictypes.h" | |
| 6 #include "testing/gtest/include/gtest/gtest.h" | |
| 7 #include "ui/gfx/box_f.h" | |
| 8 | |
| 9 namespace gfx { | |
| 10 | |
| 11 TEST(BoxTest, Constructors) { | |
| 12 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).ToString(), | |
| 13 BoxF().ToString()); | |
| 14 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, -3.f, -5.f, -7.f).ToString(), | |
| 15 BoxF().ToString()); | |
| 16 | |
| 17 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 3.f, 5.f, 7.f).ToString(), | |
| 18 BoxF(3.f, 5.f, 7.f).ToString()); | |
| 19 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).ToString(), | |
| 20 BoxF(-3.f, -5.f, -7.f).ToString()); | |
| 21 | |
| 22 EXPECT_EQ(BoxF(2.f, 4.f, 6.f, 3.f, 5.f, 7.f).ToString(), | |
| 23 BoxF(Point3F(2.f, 4.f, 6.f), 3.f, 5.f, 7.f).ToString()); | |
| 24 EXPECT_EQ(BoxF(2.f, 4.f, 6.f, 0.f, 0.f, 0.f).ToString(), | |
| 25 BoxF(Point3F(2.f, 4.f, 6.f), -3.f, -5.f, -7.f).ToString()); | |
| 26 } | |
| 27 | |
| 28 TEST(BoxTest, IsEmpty) { | |
| 29 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).IsEmpty()); | |
| 30 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 0.f, 0.f).IsEmpty()); | |
| 31 | |
| 32 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 2.f, 0.f, 0.f).IsEmpty()); | |
| 33 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 2.f, 0.f, 0.f).IsEmpty()); | |
| 34 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 2.f, 0.f).IsEmpty()); | |
| 35 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 2.f, 0.f).IsEmpty()); | |
| 36 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 2.f).IsEmpty()); | |
| 37 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 0.f, 2.f).IsEmpty()); | |
| 38 | |
| 39 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 0.f, 2.f, 2.f).IsEmpty()); | |
| 40 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 0.f, 2.f, 2.f).IsEmpty()); | |
| 41 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 0.f, 2.f).IsEmpty()); | |
| 42 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 0.f, 2.f).IsEmpty()); | |
| 43 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 2.f, 0.f).IsEmpty()); | |
| 44 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 2.f, 0.f).IsEmpty()); | |
| 45 | |
| 46 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 2.f, 2.f).IsEmpty()); | |
| 47 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 2.f, 2.f).IsEmpty()); | |
| 48 } | |
| 49 | |
| 50 TEST(BoxTest, Union) { | |
| 51 BoxF empty_box; | |
| 52 BoxF box1(0.f, 0.f, 0.f, 1.f, 1.f, 1.f); | |
| 53 BoxF box2(0.f, 0.f, 0.f, 4.f, 6.f, 8.f); | |
| 54 BoxF box3(3.f, 4.f, 5.f, 6.f, 4.f, 0.f); | |
| 55 | |
| 56 EXPECT_EQ(empty_box.ToString(), UnionBoxes(empty_box, empty_box).ToString()); | |
| 57 EXPECT_EQ(box1.ToString(), UnionBoxes(empty_box, box1).ToString()); | |
| 58 EXPECT_EQ(box1.ToString(), UnionBoxes(box1, empty_box).ToString()); | |
| 59 EXPECT_EQ(box2.ToString(), UnionBoxes(empty_box, box2).ToString()); | |
| 60 EXPECT_EQ(box2.ToString(), UnionBoxes(box2, empty_box).ToString()); | |
| 61 EXPECT_EQ(box3.ToString(), UnionBoxes(empty_box, box3).ToString()); | |
| 62 EXPECT_EQ(box3.ToString(), UnionBoxes(box3, empty_box).ToString()); | |
| 63 | |
| 64 // box_1 is contained in box_2 | |
| 65 EXPECT_EQ(box2.ToString(), UnionBoxes(box1, box2).ToString()); | |
| 66 EXPECT_EQ(box2.ToString(), UnionBoxes(box2, box1).ToString()); | |
| 67 | |
| 68 // box_1 and box_3 are disjoint | |
| 69 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 5.f).ToString(), | |
| 70 UnionBoxes(box1, box3).ToString()); | |
| 71 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 5.f).ToString(), | |
| 72 UnionBoxes(box3, box1).ToString()); | |
| 73 | |
| 74 // box_2 and box_3 intersect, but neither contains the other | |
| 75 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 8.f).ToString(), | |
| 76 UnionBoxes(box2, box3).ToString()); | |
| 77 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 8.f).ToString(), | |
| 78 UnionBoxes(box3, box2).ToString()); | |
| 79 } | |
| 80 | |
| 81 TEST(BoxTest, ExpandTo) { | |
| 82 BoxF box1; | |
| 83 BoxF box2(0.f, 0.f, 0.f, 1.f, 1.f, 1.f); | |
| 84 BoxF box3(1.f, 1.f, 1.f, 0.f, 0.f, 0.f); | |
| 85 | |
| 86 Point3F point1(0.5f, 0.5f, 0.5f); | |
| 87 Point3F point2(-0.5f, -0.5f, -0.5f); | |
| 88 | |
| 89 BoxF expected1_1(0.f, 0.f, 0.f, 0.5f, 0.5f, 0.5f); | |
| 90 BoxF expected1_2(-0.5f, -0.5f, -0.5f, 1.f, 1.f, 1.f); | |
| 91 | |
| 92 BoxF expected2_1 = box2; | |
| 93 BoxF expected2_2(-0.5f, -0.5f, -0.5f, 1.5f, 1.5f, 1.5f); | |
| 94 | |
| 95 BoxF expected3_1(0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f); | |
| 96 BoxF expected3_2(-0.5f, -0.5f, -0.5f, 1.5f, 1.5f, 1.5f); | |
| 97 | |
| 98 box1.ExpandTo(point1); | |
| 99 EXPECT_EQ(expected1_1.ToString(), box1.ToString()); | |
| 100 box1.ExpandTo(point2); | |
| 101 EXPECT_EQ(expected1_2.ToString(), box1.ToString()); | |
| 102 | |
| 103 box2.ExpandTo(point1); | |
| 104 EXPECT_EQ(expected2_1.ToString(), box2.ToString()); | |
| 105 box2.ExpandTo(point2); | |
| 106 EXPECT_EQ(expected2_2.ToString(), box2.ToString()); | |
| 107 | |
| 108 box3.ExpandTo(point1); | |
| 109 EXPECT_EQ(expected3_1.ToString(), box3.ToString()); | |
| 110 box3.ExpandTo(point2); | |
| 111 EXPECT_EQ(expected3_2.ToString(), box3.ToString()); | |
| 112 } | |
| 113 | |
| 114 TEST(BoxTest, Scale) { | |
| 115 BoxF box1(2.f, 3.f, 4.f, 5.f, 6.f, 7.f); | |
| 116 | |
| 117 EXPECT_EQ(BoxF().ToString(), ScaleBox(box1, 0.f).ToString()); | |
| 118 EXPECT_EQ(box1.ToString(), ScaleBox(box1, 1.f).ToString()); | |
| 119 EXPECT_EQ(BoxF(4.f, 12.f, 24.f, 10.f, 24.f, 42.f).ToString(), | |
| 120 ScaleBox(box1, 2.f, 4.f, 6.f).ToString()); | |
| 121 | |
| 122 BoxF box2 = box1; | |
| 123 box2.Scale(0.f); | |
| 124 EXPECT_EQ(BoxF().ToString(), box2.ToString()); | |
| 125 | |
| 126 box2 = box1; | |
| 127 box2.Scale(1.f); | |
| 128 EXPECT_EQ(box1.ToString(), box2.ToString()); | |
| 129 | |
| 130 box2.Scale(2.f, 4.f, 6.f); | |
| 131 EXPECT_EQ(BoxF(4.f, 12.f, 24.f, 10.f, 24.f, 42.f).ToString(), | |
| 132 box2.ToString()); | |
| 133 } | |
| 134 | |
| 135 TEST(BoxTest, Equals) { | |
| 136 EXPECT_TRUE(BoxF() == BoxF()); | |
| 137 EXPECT_TRUE(BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f) == | |
| 138 BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f)); | |
| 139 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 1.f)); | |
| 140 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 0.f, 1.f, 0.f)); | |
| 141 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 1.f, 0.f, 0.f)); | |
| 142 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 1.f, 0.f, 0.f, 0.f)); | |
| 143 EXPECT_FALSE(BoxF() == BoxF(0.f, 1.f, 0.f, 0.f, 0.f, 0.f)); | |
| 144 EXPECT_FALSE(BoxF() == BoxF(1.f, 0.f, 0.f, 0.f, 0.f, 0.f)); | |
| 145 } | |
| 146 | |
| 147 TEST(BoxTest, NotEquals) { | |
| 148 EXPECT_FALSE(BoxF() != BoxF()); | |
| 149 EXPECT_FALSE(BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f) != | |
| 150 BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f)); | |
| 151 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 1.f)); | |
| 152 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 0.f, 1.f, 0.f)); | |
| 153 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 1.f, 0.f, 0.f)); | |
| 154 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 1.f, 0.f, 0.f, 0.f)); | |
| 155 EXPECT_TRUE(BoxF() != BoxF(0.f, 1.f, 0.f, 0.f, 0.f, 0.f)); | |
| 156 EXPECT_TRUE(BoxF() != BoxF(1.f, 0.f, 0.f, 0.f, 0.f, 0.f)); | |
| 157 } | |
| 158 | |
| 159 | |
| 160 TEST(BoxTest, Offset) { | |
| 161 BoxF box1(2.f, 3.f, 4.f, 5.f, 6.f, 7.f); | |
| 162 | |
| 163 EXPECT_EQ(box1.ToString(), (box1 + Vector3dF(0.f, 0.f, 0.f)).ToString()); | |
| 164 EXPECT_EQ(BoxF(3.f, 1.f, 0.f, 5.f, 6.f, 7.f).ToString(), | |
| 165 (box1 + Vector3dF(1.f, -2.f, -4.f)).ToString()); | |
| 166 | |
| 167 BoxF box2 = box1; | |
| 168 box2 += Vector3dF(0.f, 0.f, 0.f); | |
| 169 EXPECT_EQ(box1.ToString(), box2.ToString()); | |
| 170 | |
| 171 box2 += Vector3dF(1.f, -2.f, -4.f); | |
| 172 EXPECT_EQ(BoxF(3.f, 1.f, 0.f, 5.f, 6.f, 7.f).ToString(), | |
| 173 box2.ToString()); | |
| 174 } | |
| 175 | |
| 176 } // namespace gfx | |
| OLD | NEW |