@@ -78,6 +78,72 @@ TEST(RectTest, Height)
7878 ASSERT_EQ (rect.height (), 35.272 );
7979}
8080
81+ TEST (RectTest, Clamp)
82+ {
83+ {
84+ Rect rect (-50 , 25 , 150 , -75 );
85+ rect.clamp (-40 , 30 , 160 , -80 );
86+ ASSERT_EQ (rect.left (), -40 );
87+ ASSERT_EQ (rect.top (), 25 );
88+ ASSERT_EQ (rect.right (), 150 );
89+ ASSERT_EQ (rect.bottom (), -75 );
90+ }
91+
92+ {
93+ Rect rect (-50 , 25 , 150 , -75 );
94+ rect.clamp (-50 , 24 , 160 , -75 );
95+ ASSERT_EQ (rect.left (), -50 );
96+ ASSERT_EQ (rect.top (), 24 );
97+ ASSERT_EQ (rect.right (), 150 );
98+ ASSERT_EQ (rect.bottom (), -75 );
99+ }
100+
101+ {
102+ Rect rect (-50 , 25 , 150 , -75 );
103+ rect.clamp (-50 , 25 , 145 , -75 );
104+ ASSERT_EQ (rect.left (), -50 );
105+ ASSERT_EQ (rect.top (), 25 );
106+ ASSERT_EQ (rect.right (), 145 );
107+ ASSERT_EQ (rect.bottom (), -75 );
108+ }
109+
110+ {
111+ Rect rect (-50 , 25 , 150 , -75 );
112+ rect.clamp (-50 , 25 , 150 , -68 );
113+ ASSERT_EQ (rect.left (), -50 );
114+ ASSERT_EQ (rect.top (), 25 );
115+ ASSERT_EQ (rect.right (), 150 );
116+ ASSERT_EQ (rect.bottom (), -68 );
117+ }
118+
119+ {
120+ Rect rect (-50 , 25 , 150 , -75 );
121+ rect.clamp (-100 , 10 , 50 , -120 );
122+ ASSERT_EQ (rect.left (), -50 );
123+ ASSERT_EQ (rect.top (), 10 );
124+ ASSERT_EQ (rect.right (), 50 );
125+ ASSERT_EQ (rect.bottom (), -75 );
126+ }
127+
128+ {
129+ Rect rect (-50 , 25 , 150 , -75 );
130+ rect.clamp (-100 , 30 , 160 , -120 );
131+ ASSERT_EQ (rect.left (), -50 );
132+ ASSERT_EQ (rect.top (), 25 );
133+ ASSERT_EQ (rect.right (), 150 );
134+ ASSERT_EQ (rect.bottom (), -75 );
135+ }
136+
137+ {
138+ Rect rect (-50 , 25 , 150 , -75 );
139+ rect.clamp (-50 , 25 , 150 , -75 );
140+ ASSERT_EQ (rect.left (), -50 );
141+ ASSERT_EQ (rect.top (), 25 );
142+ ASSERT_EQ (rect.right (), 150 );
143+ ASSERT_EQ (rect.bottom (), -75 );
144+ }
145+ }
146+
81147TEST (RectTest, SnapToInt)
82148{
83149 {
0 commit comments