Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: ui/gfx/safe_integer_conversions_unittest.cc

Issue 11093031: Add gfx::ToRoundedInt safe conversion method from float to int. (Closed) Base URL: http://git.chromium.org/chromium/src.git@gfx-scale
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/gfx/safe_integer_conversions.cc ('k') | ui/gfx/size_conversions.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "ui/gfx/safe_integer_conversions.h"
6
7 #include <limits>
8
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace ui {
12
13 TEST(SafeIntegerConversions, ClampToInt) {
14 EXPECT_EQ(0, gfx::ClampToInt(std::numeric_limits<float>::quiet_NaN()));
15
16 float max = std::numeric_limits<int>::max();
17 float min = std::numeric_limits<int>::min();
18
19 EXPECT_EQ(max, gfx::ClampToInt(std::numeric_limits<float>::infinity()));
20 EXPECT_EQ(max, gfx::ClampToInt(max));
21 EXPECT_EQ(max, gfx::ClampToInt(max + 1));
22 EXPECT_EQ(max - 1, gfx::ClampToInt(max - 1));
23
24 EXPECT_EQ(-100, gfx::ClampToInt(-100.5f));
25 EXPECT_EQ(0, gfx::ClampToInt(0));
26 EXPECT_EQ(100, gfx::ClampToInt(100.5f));
27
28 EXPECT_EQ(min, gfx::ClampToInt(-std::numeric_limits<float>::infinity()));
29 EXPECT_EQ(min, gfx::ClampToInt(min));
30 EXPECT_EQ(min, gfx::ClampToInt(min - 1));
31 EXPECT_EQ(min + 1, gfx::ClampToInt(min + 1));
32 }
33
34 TEST(SafeIntegerConversions, ToFlooredInt) {
35 EXPECT_EQ(0, gfx::ToFlooredInt(std::numeric_limits<float>::quiet_NaN()));
36
37 float max = std::numeric_limits<int>::max();
38 float min = std::numeric_limits<int>::min();
39
40 EXPECT_EQ(max, gfx::ToFlooredInt(std::numeric_limits<float>::infinity()));
41 EXPECT_EQ(max, gfx::ToFlooredInt(max));
42 EXPECT_EQ(max, gfx::ToFlooredInt(max + 0.5f));
43 EXPECT_EQ(max - 1, gfx::ToFlooredInt(max - 0.5f));
44
45 EXPECT_EQ(-101, gfx::ToFlooredInt(-100.5f));
46 EXPECT_EQ(0, gfx::ToFlooredInt(0));
47 EXPECT_EQ(100, gfx::ToFlooredInt(100.5f));
48
49 EXPECT_EQ(min, gfx::ToFlooredInt(-std::numeric_limits<float>::infinity()));
50 EXPECT_EQ(min, gfx::ToFlooredInt(min));
51 EXPECT_EQ(min, gfx::ToFlooredInt(min - 0.5f));
52 EXPECT_EQ(min, gfx::ToFlooredInt(min + 0.5f));
53 }
54
55 TEST(SafeIntegerConversions, ToCeiledInt) {
56 EXPECT_EQ(0, gfx::ToCeiledInt(std::numeric_limits<float>::quiet_NaN()));
57
58 float max = std::numeric_limits<int>::max();
59 float min = std::numeric_limits<int>::min();
60
61 EXPECT_EQ(max, gfx::ToCeiledInt(std::numeric_limits<float>::infinity()));
62 EXPECT_EQ(max, gfx::ToCeiledInt(max));
63 EXPECT_EQ(max, gfx::ToCeiledInt(max + 0.5f));
64 EXPECT_EQ(max, gfx::ToCeiledInt(max - 0.5f));
65
66 EXPECT_EQ(-100, gfx::ToCeiledInt(-100.5f));
67 EXPECT_EQ(0, gfx::ToCeiledInt(0));
68 EXPECT_EQ(101, gfx::ToCeiledInt(100.5f));
69
70 EXPECT_EQ(min, gfx::ToCeiledInt(-std::numeric_limits<float>::infinity()));
71 EXPECT_EQ(min, gfx::ToCeiledInt(min));
72 EXPECT_EQ(min, gfx::ToCeiledInt(min - 0.5f));
73 EXPECT_EQ(min + 1, gfx::ToCeiledInt(min + 0.5f));
74 }
75
76 TEST(SafeIntegerConversions, ToRoundedInt) {
77 EXPECT_EQ(0, gfx::ToRoundedInt(std::numeric_limits<float>::quiet_NaN()));
78
79 float max = std::numeric_limits<int>::max();
80 float min = std::numeric_limits<int>::min();
81
82 EXPECT_EQ(max, gfx::ToRoundedInt(std::numeric_limits<float>::infinity()));
83 EXPECT_EQ(max, gfx::ToRoundedInt(max));
84 EXPECT_EQ(max, gfx::ToRoundedInt(max + 0.1f));
85 EXPECT_EQ(max, gfx::ToRoundedInt(max + 0.5f));
86 EXPECT_EQ(max, gfx::ToRoundedInt(max + 0.9f));
87 EXPECT_EQ(max, gfx::ToRoundedInt(max - 0.1f));
88 EXPECT_EQ(max, gfx::ToRoundedInt(max - 0.5f));
89 EXPECT_EQ(max - 1, gfx::ToRoundedInt(max - 0.9f));
90
91 EXPECT_EQ(-100, gfx::ToRoundedInt(-100.1f));
92 EXPECT_EQ(-101, gfx::ToRoundedInt(-100.5f));
93 EXPECT_EQ(-101, gfx::ToRoundedInt(-100.9f));
94 EXPECT_EQ(0, gfx::ToRoundedInt(0));
95 EXPECT_EQ(100, gfx::ToRoundedInt(100.1f));
96 EXPECT_EQ(101, gfx::ToRoundedInt(100.5f));
97 EXPECT_EQ(101, gfx::ToRoundedInt(100.9f));
98
99 EXPECT_EQ(min, gfx::ToRoundedInt(-std::numeric_limits<float>::infinity()));
100 EXPECT_EQ(min, gfx::ToRoundedInt(min));
101 EXPECT_EQ(min, gfx::ToRoundedInt(min - 0.1f));
102 EXPECT_EQ(min, gfx::ToRoundedInt(min - 0.5f));
103 EXPECT_EQ(min, gfx::ToRoundedInt(min - 0.9f));
104 EXPECT_EQ(min, gfx::ToRoundedInt(min + 0.1f));
105 EXPECT_EQ(min + 1, gfx::ToRoundedInt(min + 0.5f));
106 EXPECT_EQ(min + 1, gfx::ToRoundedInt(min + 0.9f));
107 }
108
109 } // namespace ui
OLDNEW
« no previous file with comments | « ui/gfx/safe_integer_conversions.cc ('k') | ui/gfx/size_conversions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698