Chromium Code Reviews| Index: ui/gfx/test/transform_test_common.h |
| diff --git a/ui/gfx/test/transform_test_common.h b/ui/gfx/test/transform_test_common.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a03196394d9f1d123121f715617514a8ec0c2cb7 |
| --- /dev/null |
| +++ b/ui/gfx/test/transform_test_common.h |
| @@ -0,0 +1,67 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef UI_GFX_TEST_TRANSFORM_TEST_COMMON_H_ |
| +#define UI_GFX_TEST_TRANSFORM_TEST_COMMON_H_ |
| + |
| +#include "ui/gfx/transform.h" |
|
danakj
2013/01/07 23:22:35
sort
shawnsingh
2013/01/07 23:59:53
I wonder why this did not get caught by presubmit
|
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace gfx { |
| + |
| +// NOTE: the following macros are redundant with those from |
| +// web_transformation_matrix_unittests, but for now they are |
|
danakj
2013/01/07 23:22:35
does this comment make sense anymore?
shawnsingh
2013/01/07 23:59:53
It's not out-dated or wrong, but maybe it's value
|
| +// different enough to be appropriate here. |
| + |
| +#define EXPECT_ROW1_EQ(a, b, c, d, transform) \ |
| + EXPECT_FLOAT_EQ((a), (transform).matrix().get(0, 0)); \ |
| + EXPECT_FLOAT_EQ((b), (transform).matrix().get(0, 1)); \ |
| + EXPECT_FLOAT_EQ((c), (transform).matrix().get(0, 2)); \ |
| + EXPECT_FLOAT_EQ((d), (transform).matrix().get(0, 3)); |
| + |
| +#define EXPECT_ROW2_EQ(a, b, c, d, transform) \ |
| + EXPECT_FLOAT_EQ((a), (transform).matrix().get(1, 0)); \ |
| + EXPECT_FLOAT_EQ((b), (transform).matrix().get(1, 1)); \ |
| + EXPECT_FLOAT_EQ((c), (transform).matrix().get(1, 2)); \ |
| + EXPECT_FLOAT_EQ((d), (transform).matrix().get(1, 3)); |
| + |
| +#define EXPECT_ROW3_EQ(a, b, c, d, transform) \ |
| + EXPECT_FLOAT_EQ((a), (transform).matrix().get(2, 0)); \ |
| + EXPECT_FLOAT_EQ((b), (transform).matrix().get(2, 1)); \ |
| + EXPECT_FLOAT_EQ((c), (transform).matrix().get(2, 2)); \ |
| + EXPECT_FLOAT_EQ((d), (transform).matrix().get(2, 3)); |
| + |
| +#define EXPECT_ROW4_EQ(a, b, c, d, transform) \ |
| + EXPECT_FLOAT_EQ((a), (transform).matrix().get(3, 0)); \ |
| + EXPECT_FLOAT_EQ((b), (transform).matrix().get(3, 1)); \ |
| + EXPECT_FLOAT_EQ((c), (transform).matrix().get(3, 2)); \ |
| + EXPECT_FLOAT_EQ((d), (transform).matrix().get(3, 3)); \ |
| + |
| +// Checking float values for equality close to zero is not robust using |
| +// EXPECT_FLOAT_EQ (see gtest documentation). So, to verify rotation matrices, |
| +// we must use a looser absolute error threshold in some places. |
| +#define EXPECT_ROW1_NEAR(a, b, c, d, transform, errorThreshold) \ |
| + EXPECT_NEAR((a), (transform).matrix().get(0, 0), (errorThreshold)); \ |
| + EXPECT_NEAR((b), (transform).matrix().get(0, 1), (errorThreshold)); \ |
| + EXPECT_NEAR((c), (transform).matrix().get(0, 2), (errorThreshold)); \ |
| + EXPECT_NEAR((d), (transform).matrix().get(0, 3), (errorThreshold)); |
| + |
| +#define EXPECT_ROW2_NEAR(a, b, c, d, transform, errorThreshold) \ |
| + EXPECT_NEAR((a), (transform).matrix().get(1, 0), (errorThreshold)); \ |
| + EXPECT_NEAR((b), (transform).matrix().get(1, 1), (errorThreshold)); \ |
| + EXPECT_NEAR((c), (transform).matrix().get(1, 2), (errorThreshold)); \ |
| + EXPECT_NEAR((d), (transform).matrix().get(1, 3), (errorThreshold)); |
| + |
| +#define EXPECT_ROW3_NEAR(a, b, c, d, transform, errorThreshold) \ |
| + EXPECT_NEAR((a), (transform).matrix().get(2, 0), (errorThreshold)); \ |
| + EXPECT_NEAR((b), (transform).matrix().get(2, 1), (errorThreshold)); \ |
| + EXPECT_NEAR((c), (transform).matrix().get(2, 2), (errorThreshold)); \ |
| + EXPECT_NEAR((d), (transform).matrix().get(2, 3), (errorThreshold)); |
| + |
| +void InitializeTestMatrix(Transform* transform); |
| +void InitializeTestMatrix2(Transform* transform); |
| + |
| +} |
|
danakj
2013/01/07 23:22:35
} // namespace gfx
|
| + |
| +#endif // UI_GFX_TEST_TRANSFORM_TEST_COMMON_H_ |