1ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// found in the LICENSE file.
4ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
5ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "base/basictypes.h"
6ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "testing/gtest/include/gtest/gtest.h"
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ui/gfx/geometry/box_f.h"
8ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
9ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochnamespace gfx {
10ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
11ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochTEST(BoxTest, Constructors) {
12ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).ToString(),
13ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            BoxF().ToString());
14ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, -3.f, -5.f, -7.f).ToString(),
15ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            BoxF().ToString());
16ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
17ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 3.f, 5.f, 7.f).ToString(),
18ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            BoxF(3.f, 5.f, 7.f).ToString());
19ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).ToString(),
20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            BoxF(-3.f, -5.f, -7.f).ToString());
21ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
22ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(2.f, 4.f, 6.f, 3.f, 5.f, 7.f).ToString(),
23ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            BoxF(Point3F(2.f, 4.f, 6.f), 3.f, 5.f, 7.f).ToString());
24ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(2.f, 4.f, 6.f, 0.f, 0.f, 0.f).ToString(),
25ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            BoxF(Point3F(2.f, 4.f, 6.f), -3.f, -5.f, -7.f).ToString());
26ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
27ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
28ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochTEST(BoxTest, IsEmpty) {
29ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).IsEmpty());
30ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 0.f, 0.f).IsEmpty());
31ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
32ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 2.f, 0.f, 0.f).IsEmpty());
33ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 2.f, 0.f, 0.f).IsEmpty());
34ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 2.f, 0.f).IsEmpty());
35ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 2.f, 0.f).IsEmpty());
36ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 2.f).IsEmpty());
37ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 0.f, 2.f).IsEmpty());
38ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
39ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 0.f, 2.f, 2.f).IsEmpty());
40ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 0.f, 2.f, 2.f).IsEmpty());
41ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 0.f, 2.f).IsEmpty());
42ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 0.f, 2.f).IsEmpty());
43ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 2.f, 0.f).IsEmpty());
44ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 2.f, 0.f).IsEmpty());
45ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
46ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 2.f, 2.f).IsEmpty());
47ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 2.f, 2.f).IsEmpty());
48ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
49ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
50ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochTEST(BoxTest, Union) {
51ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF empty_box;
52ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF box1(0.f, 0.f, 0.f, 1.f, 1.f, 1.f);
53ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF box2(0.f, 0.f, 0.f, 4.f, 6.f, 8.f);
54ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF box3(3.f, 4.f, 5.f, 6.f, 4.f, 0.f);
55ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
56ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(empty_box.ToString(), UnionBoxes(empty_box, empty_box).ToString());
57ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box1.ToString(), UnionBoxes(empty_box, box1).ToString());
58ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box1.ToString(), UnionBoxes(box1, empty_box).ToString());
59ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box2.ToString(), UnionBoxes(empty_box, box2).ToString());
60ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box2.ToString(), UnionBoxes(box2, empty_box).ToString());
61ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box3.ToString(), UnionBoxes(empty_box, box3).ToString());
62ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box3.ToString(), UnionBoxes(box3, empty_box).ToString());
63ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
64ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // box_1 is contained in box_2
65ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box2.ToString(), UnionBoxes(box1, box2).ToString());
66ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box2.ToString(), UnionBoxes(box2, box1).ToString());
67ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
68ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // box_1 and box_3 are disjoint
69ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 5.f).ToString(),
70ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            UnionBoxes(box1, box3).ToString());
71ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 5.f).ToString(),
72ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            UnionBoxes(box3, box1).ToString());
73ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
74ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // box_2 and box_3 intersect, but neither contains the other
75ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 8.f).ToString(),
76ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            UnionBoxes(box2, box3).ToString());
77ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 8.f).ToString(),
78ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            UnionBoxes(box3, box2).ToString());
79ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
80ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)TEST(BoxTest, ExpandTo) {
824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF box1;
834e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF box2(0.f, 0.f, 0.f, 1.f, 1.f, 1.f);
844e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF box3(1.f, 1.f, 1.f, 0.f, 0.f, 0.f);
854e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
864e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  Point3F point1(0.5f, 0.5f, 0.5f);
874e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  Point3F point2(-0.5f, -0.5f, -0.5f);
884e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
894e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF expected1_1(0.f, 0.f, 0.f, 0.5f, 0.5f, 0.5f);
904e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF expected1_2(-0.5f, -0.5f, -0.5f, 1.f, 1.f, 1.f);
914e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
924e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF expected2_1 = box2;
934e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF expected2_2(-0.5f, -0.5f, -0.5f, 1.5f, 1.5f, 1.5f);
944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
954e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF expected3_1(0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f);
964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  BoxF expected3_2(-0.5f, -0.5f, -0.5f, 1.5f, 1.5f, 1.5f);
974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  box1.ExpandTo(point1);
994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_EQ(expected1_1.ToString(), box1.ToString());
1004e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  box1.ExpandTo(point2);
1014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_EQ(expected1_2.ToString(), box1.ToString());
1024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
1034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  box2.ExpandTo(point1);
1044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_EQ(expected2_1.ToString(), box2.ToString());
1054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  box2.ExpandTo(point2);
1064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_EQ(expected2_2.ToString(), box2.ToString());
1074e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
1084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  box3.ExpandTo(point1);
1094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_EQ(expected3_1.ToString(), box3.ToString());
1104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  box3.ExpandTo(point2);
1114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_EQ(expected3_2.ToString(), box3.ToString());
1124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
1134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
114ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochTEST(BoxTest, Scale) {
115ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF box1(2.f, 3.f, 4.f, 5.f, 6.f, 7.f);
116ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
117ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF().ToString(), ScaleBox(box1, 0.f).ToString());
118ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box1.ToString(), ScaleBox(box1, 1.f).ToString());
119ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(4.f, 12.f, 24.f, 10.f, 24.f, 42.f).ToString(),
120ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            ScaleBox(box1, 2.f, 4.f, 6.f).ToString());
121ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
122ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF box2 = box1;
123ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  box2.Scale(0.f);
124ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF().ToString(), box2.ToString());
125ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
126ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  box2 = box1;
127ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  box2.Scale(1.f);
128ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box1.ToString(), box2.ToString());
129ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
130ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  box2.Scale(2.f, 4.f, 6.f);
131ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(4.f, 12.f, 24.f, 10.f, 24.f, 42.f).ToString(),
132ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            box2.ToString());
133ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
134ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
135ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochTEST(BoxTest, Equals) {
136ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF() == BoxF());
137ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f) ==
138ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch              BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f));
139ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 1.f));
140ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 0.f, 1.f, 0.f));
141ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 1.f, 0.f, 0.f));
142ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 1.f, 0.f, 0.f, 0.f));
143ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF() == BoxF(0.f, 1.f, 0.f, 0.f, 0.f, 0.f));
144ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF() == BoxF(1.f, 0.f, 0.f, 0.f, 0.f, 0.f));
145ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
146ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
147ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochTEST(BoxTest, NotEquals) {
148ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF() != BoxF());
149ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_FALSE(BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f) !=
150ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch               BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f));
151ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 1.f));
152ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 0.f, 1.f, 0.f));
153ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 1.f, 0.f, 0.f));
154ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 1.f, 0.f, 0.f, 0.f));
155ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF() != BoxF(0.f, 1.f, 0.f, 0.f, 0.f, 0.f));
156ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_TRUE(BoxF() != BoxF(1.f, 0.f, 0.f, 0.f, 0.f, 0.f));
157ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
158ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
159ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
160ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochTEST(BoxTest, Offset) {
161ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF box1(2.f, 3.f, 4.f, 5.f, 6.f, 7.f);
162ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
163ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box1.ToString(), (box1 + Vector3dF(0.f, 0.f, 0.f)).ToString());
164ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(3.f, 1.f, 0.f, 5.f, 6.f, 7.f).ToString(),
165ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            (box1 + Vector3dF(1.f, -2.f, -4.f)).ToString());
166ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
167ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  BoxF box2 = box1;
168ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  box2 += Vector3dF(0.f, 0.f, 0.f);
169ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(box1.ToString(), box2.ToString());
170ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
171ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  box2 += Vector3dF(1.f, -2.f, -4.f);
172ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  EXPECT_EQ(BoxF(3.f, 1.f, 0.f, 5.f, 6.f, 7.f).ToString(),
173ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch            box2.ToString());
174ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}
175ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
176ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}  // namespace gfx
177