OLD | NEW |
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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/logging.h" | 5 #include "base/logging.h" |
6 #include "testing/gtest/include/gtest/gtest.h" | 6 #include "testing/gtest/include/gtest/gtest.h" |
7 #include "ui/gfx/color_space.h" | 7 #include "ui/gfx/color_space.h" |
8 #include "ui/gfx/color_transform.h" | 8 #include "ui/gfx/color_transform.h" |
9 #include "ui/gfx/icc_profile.h" | 9 #include "ui/gfx/icc_profile.h" |
10 #include "ui/gfx/test/icc_profiles.h" | 10 #include "ui/gfx/test/icc_profiles.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 tmp = ColorTransform::TriStim(128.0f / 255.0f, 240.0f / 255.0f, 0.5f); | 110 tmp = ColorTransform::TriStim(128.0f / 255.0f, 240.0f / 255.0f, 0.5f); |
111 t->transform(&tmp, 1); | 111 t->transform(&tmp, 1); |
112 EXPECT_GT(tmp.z(), tmp.x()); | 112 EXPECT_GT(tmp.z(), tmp.x()); |
113 EXPECT_GT(tmp.z(), tmp.y()); | 113 EXPECT_GT(tmp.z(), tmp.y()); |
114 } | 114 } |
115 | 115 |
116 TEST(SimpleColorSpace, GetColorSpace) { | 116 TEST(SimpleColorSpace, GetColorSpace) { |
117 ICCProfile srgb_icc = ICCProfileForTestingSRGB(); | 117 ICCProfile srgb_icc = ICCProfileForTestingSRGB(); |
118 ColorSpace sRGB = srgb_icc.GetColorSpace(); | 118 ColorSpace sRGB = srgb_icc.GetColorSpace(); |
119 ColorSpace sRGB2 = sRGB; | 119 ColorSpace sRGB2 = sRGB; |
| 120 const float kEpsilon = 0.0012f; |
120 | 121 |
121 // Prevent sRGB2 from using a cached ICC profile. | 122 // Prevent sRGB2 from using a cached ICC profile. |
122 sRGB2.icc_profile_id_ = 0; | 123 sRGB2.icc_profile_id_ = 0; |
123 | 124 |
124 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( | 125 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( |
125 sRGB, sRGB2, ColorTransform::Intent::INTENT_ABSOLUTE)); | 126 sRGB, sRGB2, ColorTransform::Intent::INTENT_ABSOLUTE)); |
126 | 127 |
127 ColorTransform::TriStim tmp(1.0f, 1.0f, 1.0f); | 128 ColorTransform::TriStim tmp(1.0f, 1.0f, 1.0f); |
128 t->transform(&tmp, 1); | 129 t->transform(&tmp, 1); |
129 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f); | 130 EXPECT_NEAR(tmp.x(), 1.0f, kEpsilon); |
130 EXPECT_NEAR(tmp.y(), 1.0f, 0.001f); | 131 EXPECT_NEAR(tmp.y(), 1.0f, kEpsilon); |
131 EXPECT_NEAR(tmp.z(), 1.0f, 0.001f); | 132 EXPECT_NEAR(tmp.z(), 1.0f, kEpsilon); |
132 | 133 |
133 tmp = ColorTransform::TriStim(1.0f, 0.0f, 0.0f); | 134 tmp = ColorTransform::TriStim(1.0f, 0.0f, 0.0f); |
134 t->transform(&tmp, 1); | 135 t->transform(&tmp, 1); |
135 EXPECT_NEAR(tmp.x(), 1.0f, 0.001f); | 136 EXPECT_NEAR(tmp.x(), 1.0f, kEpsilon); |
136 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f); | 137 EXPECT_NEAR(tmp.y(), 0.0f, kEpsilon); |
137 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f); | 138 EXPECT_NEAR(tmp.z(), 0.0f, kEpsilon); |
138 | 139 |
139 tmp = ColorTransform::TriStim(0.0f, 1.0f, 0.0f); | 140 tmp = ColorTransform::TriStim(0.0f, 1.0f, 0.0f); |
140 t->transform(&tmp, 1); | 141 t->transform(&tmp, 1); |
141 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f); | 142 EXPECT_NEAR(tmp.x(), 0.0f, kEpsilon); |
142 EXPECT_NEAR(tmp.y(), 1.0f, 0.001f); | 143 EXPECT_NEAR(tmp.y(), 1.0f, kEpsilon); |
143 EXPECT_NEAR(tmp.z(), 0.0f, 0.001f); | 144 EXPECT_NEAR(tmp.z(), 0.0f, kEpsilon); |
144 | 145 |
145 tmp = ColorTransform::TriStim(0.0f, 0.0f, 1.0f); | 146 tmp = ColorTransform::TriStim(0.0f, 0.0f, 1.0f); |
146 t->transform(&tmp, 1); | 147 t->transform(&tmp, 1); |
147 EXPECT_NEAR(tmp.x(), 0.0f, 0.001f); | 148 EXPECT_NEAR(tmp.x(), 0.0f, kEpsilon); |
148 EXPECT_NEAR(tmp.y(), 0.0f, 0.001f); | 149 EXPECT_NEAR(tmp.y(), 0.0f, kEpsilon); |
149 EXPECT_NEAR(tmp.z(), 1.0f, 0.001f); | 150 EXPECT_NEAR(tmp.z(), 1.0f, kEpsilon); |
150 } | 151 } |
151 | 152 |
152 TEST(SimpleColorSpace, UnknownToSRGB) { | 153 TEST(SimpleColorSpace, UnknownToSRGB) { |
153 ColorSpace unknown; | 154 ColorSpace unknown; |
154 ColorSpace sRGB = ColorSpace::CreateSRGB(); | 155 ColorSpace sRGB = ColorSpace::CreateSRGB(); |
155 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( | 156 std::unique_ptr<ColorTransform> t(ColorTransform::NewColorTransform( |
156 unknown, sRGB, ColorTransform::Intent::INTENT_PERCEPTUAL)); | 157 unknown, sRGB, ColorTransform::Intent::INTENT_PERCEPTUAL)); |
157 | 158 |
158 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f); | 159 ColorTransform::TriStim tmp(16.0f / 255.0f, 0.5f, 0.5f); |
159 t->transform(&tmp, 1); | 160 t->transform(&tmp, 1); |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 | 277 |
277 INSTANTIATE_TEST_CASE_P( | 278 INSTANTIATE_TEST_CASE_P( |
278 C, | 279 C, |
279 ColorSpaceTest, | 280 ColorSpaceTest, |
280 testing::Combine(testing::ValuesIn(all_primaries), | 281 testing::Combine(testing::ValuesIn(all_primaries), |
281 testing::Values(ColorSpace::TransferID::BT709), | 282 testing::Values(ColorSpace::TransferID::BT709), |
282 testing::ValuesIn(all_matrices), | 283 testing::ValuesIn(all_matrices), |
283 testing::ValuesIn(all_ranges), | 284 testing::ValuesIn(all_ranges), |
284 testing::ValuesIn(intents))); | 285 testing::ValuesIn(intents))); |
285 } // namespace | 286 } // namespace |
OLD | NEW |