| 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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 | 81 |
| 82 { 0, 1.2f, 0, 3.3f, 5.6f, 4.2f }, | 82 { 0, 1.2f, 0, 3.3f, 5.6f, 4.2f }, |
| 83 { 0, 1.2f, 1.8f, 3.3f, 5.6f, 4.2f } | 83 { 0, 1.2f, 1.8f, 3.3f, 5.6f, 4.2f } |
| 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(triple_values[i][0] * triple_values[i][3], v.x()); |
| 92 EXPECT_EQ(v.y(), triple_values[i][1] * triple_values[i][4]); | 92 EXPECT_EQ(triple_values[i][1] * triple_values[i][4], v.y()); |
| 93 EXPECT_EQ(v.z(), triple_values[i][2] * triple_values[i][5]); | 93 EXPECT_EQ(triple_values[i][2] * triple_values[i][5], v.z()); |
| 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(triple_values[i][0] * triple_values[i][3], v2.x()); |
| 101 EXPECT_EQ(triple_values[i][1] * triple_values[i][4], v2.y()); |
| 102 EXPECT_EQ(triple_values[i][2] * triple_values[i][5], v2.z()); |
| 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(single_values[i][0] * single_values[i][3], v.x()); |
| 119 EXPECT_EQ(v.y(), single_values[i][1] * single_values[i][3]); | 128 EXPECT_EQ(single_values[i][1] * single_values[i][3], v.y()); |
| 120 EXPECT_EQ(v.z(), single_values[i][2] * single_values[i][3]); | 129 EXPECT_EQ(single_values[i][2] * single_values[i][3], v.z()); |
| 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(single_values[i][0] * single_values[i][3], v2.x()); |
| 137 EXPECT_EQ(single_values[i][1] * single_values[i][3], v2.y()); |
| 138 EXPECT_EQ(single_values[i][2] * single_values[i][3], v2.z()); |
| 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 |