OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "testing/gtest/include/gtest/gtest.h" | 6 #include "testing/gtest/include/gtest/gtest.h" |
7 #include "ui/gfx/vector3d_f.h" | 7 #include "ui/gfx/vector3d_f.h" |
8 | 8 |
9 #include <cmath> | 9 #include <cmath> |
10 #include <limits> | 10 #include <limits> |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
84 }; | 84 }; |
85 | 85 |
86 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(triple_values); ++i) { | 86 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(triple_values); ++i) { |
87 gfx::Vector3dF v(triple_values[i][0], | 87 gfx::Vector3dF v(triple_values[i][0], |
88 triple_values[i][1], | 88 triple_values[i][1], |
89 triple_values[i][2]); | 89 triple_values[i][2]); |
90 v.Scale(triple_values[i][3], triple_values[i][4], triple_values[i][5]); | 90 v.Scale(triple_values[i][3], triple_values[i][4], triple_values[i][5]); |
91 EXPECT_EQ(v.x(), triple_values[i][0] * triple_values[i][3]); | 91 EXPECT_EQ(v.x(), triple_values[i][0] * triple_values[i][3]); |
92 EXPECT_EQ(v.y(), triple_values[i][1] * triple_values[i][4]); | 92 EXPECT_EQ(v.y(), triple_values[i][1] * triple_values[i][4]); |
93 EXPECT_EQ(v.z(), triple_values[i][2] * triple_values[i][5]); | 93 EXPECT_EQ(v.z(), triple_values[i][2] * triple_values[i][5]); |
94 | |
95 Vector3dF v2 = ScaleVector3d( | |
96 gfx::Vector3dF(triple_values[i][0], | |
97 triple_values[i][1], | |
98 triple_values[i][2]), | |
99 triple_values[i][3], triple_values[i][4], triple_values[i][5]); | |
100 EXPECT_EQ(v2.x(), triple_values[i][0] * triple_values[i][3]); | |
sky
2012/11/09 17:06:21
and order wrong here too.
danakj
2012/11/09 18:21:47
Done.
| |
101 EXPECT_EQ(v2.y(), triple_values[i][1] * triple_values[i][4]); | |
102 EXPECT_EQ(v2.z(), triple_values[i][2] * triple_values[i][5]); | |
94 } | 103 } |
95 | 104 |
96 float single_values[][4] = { | 105 float single_values[][4] = { |
97 { 4.5f, 1.2f, 1.8f, 3.3f }, | 106 { 4.5f, 1.2f, 1.8f, 3.3f }, |
98 { 4.5f, -1.2f, 1.8f, 3.3f }, | 107 { 4.5f, -1.2f, 1.8f, 3.3f }, |
99 { 4.5f, 1.2f, -1.8f, 3.3f }, | 108 { 4.5f, 1.2f, -1.8f, 3.3f }, |
100 { 4.5f, -1.2f, -1.8f, 3.3f }, | 109 { 4.5f, -1.2f, -1.8f, 3.3f }, |
101 { -4.5f, 1.2f, 3.3f }, | 110 { -4.5f, 1.2f, 3.3f }, |
102 { -4.5f, 1.2f, 0 }, | 111 { -4.5f, 1.2f, 0 }, |
103 { -4.5f, 1.2f, 1.8f, 3.3f }, | 112 { -4.5f, 1.2f, 1.8f, 3.3f }, |
104 { -4.5f, 1.2f, 1.8f, 0 }, | 113 { -4.5f, 1.2f, 1.8f, 0 }, |
105 { 4.5f, 0, 1.8f, 3.3f }, | 114 { 4.5f, 0, 1.8f, 3.3f }, |
106 { 0, 1.2f, 1.8f, 3.3f }, | 115 { 0, 1.2f, 1.8f, 3.3f }, |
107 { 4.5f, 0, 1.8f, 3.3f }, | 116 { 4.5f, 0, 1.8f, 3.3f }, |
108 { 0, 1.2f, 1.8f, 3.3f }, | 117 { 0, 1.2f, 1.8f, 3.3f }, |
109 { 4.5f, 1.2f, 0, 3.3f }, | 118 { 4.5f, 1.2f, 0, 3.3f }, |
110 { 4.5f, 1.2f, 0, 3.3f } | 119 { 4.5f, 1.2f, 0, 3.3f } |
111 }; | 120 }; |
112 | 121 |
113 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(single_values); ++i) { | 122 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(single_values); ++i) { |
114 gfx::Vector3dF v(single_values[i][0], | 123 gfx::Vector3dF v(single_values[i][0], |
115 single_values[i][1], | 124 single_values[i][1], |
116 single_values[i][2]); | 125 single_values[i][2]); |
117 v.Scale(single_values[i][3]); | 126 v.Scale(single_values[i][3]); |
118 EXPECT_EQ(v.x(), single_values[i][0] * single_values[i][3]); | 127 EXPECT_EQ(v.x(), single_values[i][0] * single_values[i][3]); |
119 EXPECT_EQ(v.y(), single_values[i][1] * single_values[i][3]); | 128 EXPECT_EQ(v.y(), single_values[i][1] * single_values[i][3]); |
120 EXPECT_EQ(v.z(), single_values[i][2] * single_values[i][3]); | 129 EXPECT_EQ(v.z(), single_values[i][2] * single_values[i][3]); |
130 | |
131 Vector3dF v2 = ScaleVector3d( | |
132 gfx::Vector3dF(single_values[i][0], | |
133 single_values[i][1], | |
134 single_values[i][2]), | |
135 single_values[i][3]); | |
136 EXPECT_EQ(v2.x(), single_values[i][0] * single_values[i][3]); | |
137 EXPECT_EQ(v2.y(), single_values[i][1] * single_values[i][3]); | |
138 EXPECT_EQ(v2.z(), single_values[i][2] * single_values[i][3]); | |
121 } | 139 } |
122 } | 140 } |
123 | 141 |
124 TEST(Vector3dTest, Length) { | 142 TEST(Vector3dTest, Length) { |
125 float float_values[][3] = { | 143 float float_values[][3] = { |
126 { 0, 0, 0 }, | 144 { 0, 0, 0 }, |
127 { 10.5f, 20.5f, 8.5f }, | 145 { 10.5f, 20.5f, 8.5f }, |
128 { 20.5f, 10.5f, 8.5f }, | 146 { 20.5f, 10.5f, 8.5f }, |
129 { 8.5f, 20.5f, 10.5f }, | 147 { 8.5f, 20.5f, 10.5f }, |
130 { 10.5f, 8.5f, 20.5f }, | 148 { 10.5f, 8.5f, 20.5f }, |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
206 }; | 224 }; |
207 | 225 |
208 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 226 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
209 Vector3dF actual = gfx::CrossProduct(tests[i].input1, tests[i].input2); | 227 Vector3dF actual = gfx::CrossProduct(tests[i].input1, tests[i].input2); |
210 EXPECT_EQ(tests[i].expected.ToString(), actual.ToString()); | 228 EXPECT_EQ(tests[i].expected.ToString(), actual.ToString()); |
211 } | 229 } |
212 | 230 |
213 } | 231 } |
214 | 232 |
215 } // namespace gfx | 233 } // namespace gfx |
OLD | NEW |