Home | History | Annotate | Download | only in cts
      1 /*
      2  * Copyright (C) 2008 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.graphics.cts;
     18 
     19 import static org.junit.Assert.assertEquals;
     20 import static org.junit.Assert.assertFalse;
     21 import static org.junit.Assert.assertNotNull;
     22 import static org.junit.Assert.assertTrue;
     23 
     24 import android.graphics.Rect;
     25 import android.graphics.RectF;
     26 import android.os.Parcel;
     27 
     28 import androidx.test.filters.SmallTest;
     29 import androidx.test.runner.AndroidJUnit4;
     30 
     31 import org.junit.Test;
     32 import org.junit.runner.RunWith;
     33 
     34 @SmallTest
     35 @RunWith(AndroidJUnit4.class)
     36 public class RectFTest {
     37     private RectF mRectF;
     38 
     39     @Test
     40     public void testConstructor() {
     41         mRectF = new RectF();
     42         mRectF = new RectF(1.5f, 2.5f, 20.3f, 40.9f);
     43 
     44         RectF rectF = new RectF(1.5f, 2.5f, 20.3f, 40.9f);
     45         mRectF = new RectF(rectF);
     46 
     47         Rect rect = new Rect(0, 0, 10, 10);
     48         mRectF = new RectF(rect);
     49     }
     50 
     51     @Test
     52     public void testSort() {
     53         mRectF = new RectF(10, 10, 5, 5);
     54         assertEquals(10.0f, mRectF.left, 0.0f);
     55         assertEquals(10.0f, mRectF.top, 0.0f);
     56         assertEquals(5.0f, mRectF.right, 0.0f);
     57         assertEquals(5.0f, mRectF.bottom, 0.0f);
     58 
     59         mRectF.sort();
     60         assertEquals(5.0f, mRectF.left, 0.0f);
     61         assertEquals(5.0f, mRectF.top, 0.0f);
     62         assertEquals(10.0f, mRectF.right, 0.0f);
     63         assertEquals(10.0f, mRectF.bottom, 0.0f);
     64     }
     65 
     66     @Test
     67     public void testSet1() {
     68         mRectF = new RectF();
     69         mRectF.set(1.0f, 2.0f, 3.0f, 4.0f);
     70         assertEquals(1.0f, mRectF.left, 0.0f);
     71         assertEquals(2.0f, mRectF.top, 0.0f);
     72         assertEquals(3.0f, mRectF.right, 0.0f);
     73         assertEquals(4.0f, mRectF.bottom, 0.0f);
     74     }
     75 
     76     @Test
     77     public void testSet2() {
     78         RectF rectF = new RectF(1.0f, 2.0f, 3.0f, 4.0f);
     79         mRectF = new RectF();
     80         mRectF.set(rectF);
     81         assertEquals(1.0f, mRectF.left, 0.0f);
     82         assertEquals(2.0f, mRectF.top, 0.0f);
     83         assertEquals(3.0f, mRectF.right, 0.0f);
     84         assertEquals(4.0f, mRectF.bottom, 0.0f);
     85     }
     86 
     87     @Test
     88     public void testSet3() {
     89         Rect rect = new Rect(1, 2, 3, 4);
     90         mRectF = new RectF();
     91         mRectF.set(rect);
     92         assertEquals(1.0f, mRectF.left, 0.0f);
     93         assertEquals(2.0f, mRectF.top, 0.0f);
     94         assertEquals(3.0f, mRectF.right, 0.0f);
     95         assertEquals(4.0f, mRectF.bottom, 0.0f);
     96     }
     97 
     98     @Test
     99     public void testIntersects1() {
    100         mRectF = new RectF(0, 0, 10, 10);
    101         assertTrue(mRectF.intersects(5, 5, 15, 15));
    102         assertEquals(0.0f, mRectF.left, 0.0f);
    103         assertEquals(0.0f, mRectF.top, 0.0f);
    104         assertEquals(10.0f, mRectF.right, 0.0f);
    105         assertEquals(10.0f, mRectF.bottom, 0.0f);
    106 
    107         mRectF = new RectF(0, 0, 10, 10);
    108         assertFalse(mRectF.intersects(15, 15, 25, 25));
    109         assertEquals(0.0f, mRectF.left, 0.0f);
    110         assertEquals(0.0f, mRectF.top, 0.0f);
    111         assertEquals(10.0f, mRectF.right, 0.0f);
    112         assertEquals(10.0f, mRectF.bottom, 0.0f);
    113     }
    114 
    115     @Test
    116     public void testIntersects2() {
    117         RectF rectF1;
    118         RectF rectF2;
    119 
    120         rectF1 = new RectF(0, 0, 10, 10);
    121         rectF2 = new RectF(5, 5, 15, 15);
    122         assertTrue(RectF.intersects(rectF1, rectF2));
    123 
    124         rectF1 = new RectF(0, 0, 10, 10);
    125         rectF2 = new RectF(15, 15, 25, 25);
    126         assertFalse(RectF.intersects(rectF1, rectF2));
    127     }
    128 
    129     @Test
    130     public void testIntersect1() {
    131         mRectF = new RectF(0, 0, 10, 10);
    132         assertTrue(mRectF.intersect(5, 5, 15, 15));
    133         assertEquals(5.0f, mRectF.left, 0.0f);
    134         assertEquals(5.0f, mRectF.top, 0.0f);
    135         assertEquals(10.0f, mRectF.right, 0.0f);
    136         assertEquals(10.0f, mRectF.bottom, 0.0f);
    137 
    138         mRectF = new RectF(0, 0, 10, 10);
    139         assertFalse(mRectF.intersect(15, 15, 25, 25));
    140         assertEquals(0.0f, mRectF.left, 0.0f);
    141         assertEquals(0.0f, mRectF.top, 0.0f);
    142         assertEquals(10.0f, mRectF.right, 0.0f);
    143         assertEquals(10.0f, mRectF.bottom, 0.0f);
    144     }
    145 
    146     @Test
    147     public void testIntersect2() {
    148         RectF rectF;
    149 
    150         mRectF = new RectF(0, 0, 10, 10);
    151         rectF= new RectF(5, 5, 15, 15);
    152         assertTrue(mRectF.intersect(rectF));
    153         assertEquals(5.0f, mRectF.left, 0.0f);
    154         assertEquals(5.0f, mRectF.top, 0.0f);
    155         assertEquals(10.0f, mRectF.right, 0.0f);
    156         assertEquals(10.0f, mRectF.bottom, 0.0f);
    157 
    158         mRectF = new RectF(0, 0, 10, 10);
    159         rectF= new RectF(15, 15, 25, 25);
    160         assertFalse(mRectF.intersect(rectF));
    161         assertEquals(0.0f, mRectF.left, 0.0f);
    162         assertEquals(0.0f, mRectF.top, 0.0f);
    163         assertEquals(10.0f, mRectF.right, 0.0f);
    164         assertEquals(10.0f, mRectF.bottom, 0.0f);
    165     }
    166 
    167     @Test
    168     public void testUnion1() {
    169         // Both rect1 and rect2 are not empty.
    170         // 1. left < right, top < bottom
    171         // this.left < this.right, this.top < this.bottom
    172         mRectF = new RectF(0.0f, 0.0f, 1.0f, 1.0f);
    173         mRectF.union(1.0f, 1.0f, 2.0f, 2.0f);
    174         assertEquals(0.0f, mRectF.top, 0.0f);
    175         assertEquals(0.0f, mRectF.left, 0.0f);
    176         assertEquals(2.0f, mRectF.right, 0.0f);
    177         assertEquals(2.0f, mRectF.bottom, 0.0f);
    178 
    179         // 2. left < right, top < bottom
    180         // this.left > this.right, this.top > this.bottom
    181         // New rectangle will be set to the new arguments
    182         mRectF = new RectF(1.0f, 1.0f, 0.0f, 0.0f);
    183         mRectF.union(1.0f, 1.0f, 2.0f, 2.0f);
    184         assertEquals(1.0f, mRectF.top, 0.0f);
    185         assertEquals(1.0f, mRectF.left, 0.0f);
    186         assertEquals(2.0f, mRectF.right, 0.0f);
    187         assertEquals(2.0f, mRectF.bottom, 0.0f);
    188 
    189         // 3. left > right, top > bottom
    190         // this.left < this.right, this.top < this.bottom
    191         // Nothing will be done.
    192         mRectF = new RectF(0.0f, 0.0f, 1.0f, 1.0f);
    193         mRectF.union(2.0f, 2.0f, 1.5f, 1.5f);
    194         assertEquals(0.0f, mRectF.top, 0.0f);
    195         assertEquals(0.0f, mRectF.left, 0.0f);
    196         assertEquals(1.0f, mRectF.right, 0.0f);
    197         assertEquals(1.0f, mRectF.bottom, 0.0f);
    198 
    199         // rect1 is empty, update to rect2.
    200         mRectF = new RectF();
    201         mRectF.union(1.0f, 1.0f, 2.0f, 2.0f);
    202         assertEquals(1.0f, mRectF.top, 0.0f);
    203         assertEquals(1.0f, mRectF.left, 0.0f);
    204         assertEquals(2.0f, mRectF.right, 0.0f);
    205         assertEquals(2.0f, mRectF.bottom, 0.0f);
    206 
    207         // rect2 is empty, nothing changed.
    208         mRectF = new RectF(0.0f, 0.0f, 1.0f, 1.0f);
    209         mRectF.union(2.0f, 2.0f, 2.0f, 2.0f);
    210         assertEquals(0.0f, mRectF.top, 0.0f);
    211         assertEquals(0.0f, mRectF.left, 0.0f);
    212         assertEquals(1.0f, mRectF.right, 0.0f);
    213         assertEquals(1.0f, mRectF.bottom, 0.0f);
    214     }
    215 
    216     @Test
    217     public void testUnion2() {
    218         RectF rectF;
    219 
    220         // Both rect1 and rect2 are not empty.
    221         // 1. left < right, top < bottom
    222         // this.left < this.right, this.top < this.bottom
    223         mRectF = new RectF(0.0f, 0.0f, 1.0f, 1.0f);
    224         rectF = new RectF(1.0f, 1.0f, 2.0f, 2.0f);
    225         mRectF.union(rectF);
    226         assertEquals(0.0f, mRectF.top, 0.0f);
    227         assertEquals(0.0f, mRectF.left, 0.0f);
    228         assertEquals(2.0f, mRectF.right, 0.0f);
    229         assertEquals(2.0f, mRectF.bottom, 0.0f);
    230 
    231         // 2. left < right, top < bottom
    232         // this.left > this.right, this.top > this.bottom
    233         // New rectangle will be set to the new arguments
    234         mRectF = new RectF(1.0f, 1.0f, 0.0f, 0.0f);
    235         rectF = new RectF(1.0f, 1.0f, 2.0f, 2.0f);
    236         mRectF.union(rectF);
    237         assertEquals(1.0f, mRectF.top, 0.0f);
    238         assertEquals(1.0f, mRectF.left, 0.0f);
    239         assertEquals(2.0f, mRectF.right, 0.0f);
    240         assertEquals(2.0f, mRectF.bottom, 0.0f);
    241 
    242         // 3. left > right, top > bottom
    243         // this.left < this.right, this.top < this.bottom
    244         // Nothing will be done.
    245         mRectF = new RectF(0.0f, 0.0f, 1.0f, 1.0f);
    246         rectF = new RectF(2.0f, 2.0f, 1.5f, 1.5f);
    247         mRectF.union(rectF);
    248         assertEquals(0.0f, mRectF.top, 0.0f);
    249         assertEquals(0.0f, mRectF.left, 0.0f);
    250         assertEquals(1.0f, mRectF.right, 0.0f);
    251         assertEquals(1.0f, mRectF.bottom, 0.0f);
    252 
    253         // rect1 is empty, update to rect2.
    254         mRectF = new RectF(0.0f, 0.0f, 0.0f, 0.0f);
    255         rectF = new RectF(1.0f, 1.0f, 2.0f, 2.0f);
    256         mRectF.union(rectF);
    257         assertEquals(1.0f, mRectF.top, 0.0f);
    258         assertEquals(1.0f, mRectF.left, 0.0f);
    259         assertEquals(2.0f, mRectF.right, 0.0f);
    260         assertEquals(2.0f, mRectF.bottom, 0.0f);
    261 
    262         // rect2 is empty, nothing changed.
    263         mRectF = new RectF(0.0f, 0.0f, 1.0f, 1.0f);
    264         rectF = new RectF(2.0f, 2.0f, 2.0f, 2.0f);
    265         mRectF.union(rectF);
    266         assertEquals(0.0f, mRectF.top, 0.0f);
    267         assertEquals(0.0f, mRectF.left, 0.0f);
    268         assertEquals(1.0f, mRectF.right, 0.0f);
    269         assertEquals(1.0f, mRectF.bottom, 0.0f);
    270     }
    271 
    272     @Test
    273     public void testUnion3() {
    274         // rect1 is not empty (x > right, y > bottom).
    275         mRectF = new RectF(0.0f, 0.0f, 1.0f, 1.0f);
    276         mRectF.union(2.0f, 2.0f);
    277         assertEquals(0.0f, mRectF.top, 0.0f);
    278         assertEquals(0.0f, mRectF.left, 0.0f);
    279         assertEquals(2.0f, mRectF.right, 0.0f);
    280         assertEquals(2.0f, mRectF.bottom, 0.0f);
    281 
    282         // rect1 is not empty (x < left, y < top).
    283         mRectF = new RectF(1.0f, 1.0f, 2.0f, 2.0f);
    284         mRectF.union(0.0f, 0.0f);
    285         assertEquals(0.0f, mRectF.top, 0.0f);
    286         assertEquals(0.0f, mRectF.left, 0.0f);
    287         assertEquals(2.0f, mRectF.right, 0.0f);
    288         assertEquals(2.0f, mRectF.bottom, 0.0f);
    289 
    290         // rect1 is not empty(point is inside of the rectangle).
    291         mRectF = new RectF(1.0f, 1.0f, 2.0f, 2.0f);
    292         mRectF.union(1.5f, 1.5f);
    293         assertEquals(1.0f, mRectF.top, 0.0f);
    294         assertEquals(1.0f, mRectF.left, 0.0f);
    295         assertEquals(2.0f, mRectF.right, 0.0f);
    296         assertEquals(2.0f, mRectF.bottom, 0.0f);
    297 
    298         // rect1 is empty.
    299         mRectF = new RectF();
    300         mRectF.union(2.0f, 2.0f);
    301         assertEquals(0.0f, mRectF.top, 0.0f);
    302         assertEquals(0.0f, mRectF.left, 0.0f);
    303         assertEquals(2.0f, mRectF.right, 0.0f);
    304         assertEquals(2.0f, mRectF.bottom, 0.0f);
    305     }
    306 
    307     @Test
    308     public void testContains1() {
    309         mRectF = new RectF(1.0f, 1.0f, 20.0f, 20.0f);
    310         assertFalse(mRectF.contains(0.9f, 0.9f));
    311         assertTrue(mRectF.contains(1.0f, 1.0f));
    312         assertTrue(mRectF.contains(19.9f, 19.9f));
    313         assertFalse(mRectF.contains(20.0f, 20.0f));
    314     }
    315 
    316     @Test
    317     public void testContains2() {
    318         mRectF = new RectF(1.0f, 1.0f, 20.0f, 20.0f);
    319         assertTrue(mRectF.contains(1.0f, 1.0f, 20.0f, 20.0f));
    320         assertTrue(mRectF.contains(2.0f, 2.0f, 19.0f, 19.0f));
    321         assertFalse(mRectF.contains(21.0f, 21.0f, 22.0f, 22.0f));
    322         assertFalse(mRectF.contains(0.0f, 0.0f, 19.0f, 19.0f));
    323     }
    324 
    325     @Test
    326     public void testContains3() {
    327         RectF rectF;
    328         mRectF = new RectF(1.0f, 1.0f, 20.0f, 20.0f);
    329         rectF = new RectF(1.0f, 1.0f, 20.0f, 20.0f);
    330         assertTrue(mRectF.contains(rectF));
    331         rectF = new RectF(2.0f, 2.0f, 19.0f, 19.0f);
    332         assertTrue(mRectF.contains(rectF));
    333         rectF = new RectF(21.0f, 21.0f, 22.0f, 22.0f);
    334         assertFalse(mRectF.contains(rectF));
    335         rectF = new RectF(0.0f, 0.0f, 19.0f, 19.0f);
    336         assertFalse(mRectF.contains(rectF));
    337     }
    338 
    339     @Test
    340     public void testOffset() {
    341        mRectF = new RectF(5, 5, 10, 10);
    342        mRectF.offset(1.0f, 1.0f);
    343        assertEquals(6.0f, mRectF.left, 0.0f);
    344        assertEquals(6.0f, mRectF.top, 0.0f);
    345        assertEquals(11.0f, mRectF.right, 0.0f);
    346        assertEquals(11.0f, mRectF.bottom, 0.0f);
    347     }
    348 
    349     @Test
    350     public void testInset() {
    351         mRectF = new RectF(5.0f, 5.0f, 10.0f, 10.0f);
    352         mRectF.inset(1.0f, 1.0f);
    353         assertEquals(6.0f, mRectF.left, 0.0f);
    354         assertEquals(6.0f, mRectF.top, 0.0f);
    355         assertEquals(9.0f, mRectF.right, 0.0f);
    356         assertEquals(9.0f, mRectF.bottom, 0.0f);
    357 
    358         mRectF = new RectF(5.0f, 5.0f, 10.0f, 10.0f);
    359         mRectF.inset(-1.0f, -1.0f);
    360         assertEquals(4.0f, mRectF.left, 0.0f);
    361         assertEquals(4.0f, mRectF.top, 0.0f);
    362         assertEquals(11.0f, mRectF.right, 0.0f);
    363         assertEquals(11.0f, mRectF.bottom, 0.0f);
    364     }
    365 
    366     @Test
    367     public void testHeight() {
    368         mRectF = new RectF(1.0f, 1.0f, 20.5f, 20.5f);
    369         assertEquals(19.5f, mRectF.height(), 0.0f);
    370     }
    371 
    372     @Test
    373     public void testWidth() {
    374         mRectF = new RectF(1.0f, 1.0f, 20.5f, 20.5f);
    375         assertEquals(19.5f, mRectF.width(), 0.0f);
    376     }
    377 
    378     @Test
    379     public void testOffsetTo() {
    380         mRectF = new RectF(5, 5, 10, 10);
    381         mRectF.offsetTo(1.0f, 1.0f);
    382         assertEquals(1.0f, mRectF.left, 0.0f);
    383         assertEquals(1.0f, mRectF.top, 0.0f);
    384         assertEquals(6.0f, mRectF.right, 0.0f);
    385         assertEquals(6.0f, mRectF.bottom, 0.0f);
    386     }
    387 
    388     @Test
    389     public void testSetEmpty() {
    390         // Before setEmpty()
    391         mRectF = new RectF(1, 2, 3, 4);
    392         assertEquals(1.0f, mRectF.left, 0.0f);
    393         assertEquals(2.0f, mRectF.top, 0.0f);
    394         assertEquals(3.0f, mRectF.right, 0.0f);
    395         assertEquals(4.0f, mRectF.bottom, 0.0f);
    396 
    397         // After setEmpty()
    398         mRectF.setEmpty();
    399         assertEquals(0.0f, mRectF.left, 0.0f);
    400         assertEquals(0.0f, mRectF.top, 0.0f);
    401         assertEquals(0.0f, mRectF.right, 0.0f);
    402         assertEquals(0.0f, mRectF.bottom, 0.0f);
    403     }
    404 
    405     @Test
    406     public void testIsEmpty() {
    407         mRectF = new RectF();
    408         assertTrue(mRectF.isEmpty());
    409         mRectF = new RectF(1.0f, 1.0f, 1.0f, 1.0f);
    410         assertTrue(mRectF.isEmpty());
    411         mRectF = new RectF(0.0f, 1.0f, 2.0f, 1.0f);
    412         assertTrue(mRectF.isEmpty());
    413         mRectF = new RectF(1.0f, 1.0f, 20.0f, 20.0f);
    414         assertFalse(mRectF.isEmpty());
    415     }
    416 
    417     @Test
    418     public void testCenterX() {
    419         mRectF = new RectF(10.0f, 10.0f, 20.0f, 20.0f);
    420         assertEquals(15.0f, mRectF.centerX(), 0.0f);
    421         mRectF = new RectF(10.5f, 10.0f, 20.0f, 20.0f);
    422         assertEquals(15.25f, mRectF.centerX(), 0.0f);
    423         mRectF = new RectF(10.4f, 10.0f, 20.0f, 20.0f);
    424         assertEquals(15.2f, mRectF.centerX(), 0.0f);
    425     }
    426 
    427     @Test
    428     public void testCenterY() {
    429         mRectF = new RectF(10.0f, 10.0f, 20.0f, 20.0f);
    430         assertEquals(15.0f, mRectF.centerY(), 0.0f);
    431         mRectF = new RectF(10.0f, 10.5f, 20.0f, 20.0f);
    432         assertEquals(15.25f, mRectF.centerY(), 0.0f);
    433         mRectF = new RectF(10.0f, 10.4f, 20.0f, 20.0f);
    434         assertEquals(15.2f, mRectF.centerY(), 0.0f);
    435     }
    436 
    437     @Test
    438     public void testToString() {
    439         mRectF = new RectF(10.0f, 20.0f, 30.0f, 40.0f);
    440         assertEquals("RectF(10.0, 20.0, 30.0, 40.0)", mRectF.toString());
    441     }
    442 
    443     @Test
    444     public void testToShortString() {
    445         mRectF = new RectF(10.0f, 20.0f, 30.0f, 40.0f);
    446         assertEquals("[10.0,20.0][30.0,40.0]", mRectF.toShortString());
    447     }
    448 
    449     @Test
    450     public void testSetIntersect() {
    451         RectF rectF1 = new RectF(0, 0, 10, 10);
    452         RectF rectF2 = new RectF(5, 5, 15, 15);
    453 
    454         // Empty RectF
    455         mRectF = new RectF();
    456         assertTrue(mRectF.setIntersect(rectF1, rectF2));
    457         assertEquals(5.0f, mRectF.left, 0.0f);
    458         assertEquals(5.0f, mRectF.top, 0.0f);
    459         assertEquals(10.0f, mRectF.right, 0.0f);
    460         assertEquals(10.0f, mRectF.bottom, 0.0f);
    461 
    462         // Not Empty RectF
    463         mRectF = new RectF(0, 0, 15, 15);
    464         assertTrue(mRectF.setIntersect(rectF1, rectF2));
    465         assertEquals(5.0f, mRectF.left, 0.0f);
    466         assertEquals(5.0f, mRectF.top, 0.0f);
    467         assertEquals(10.0f, mRectF.right, 0.0f);
    468         assertEquals(10.0f, mRectF.bottom, 0.0f);
    469     }
    470 
    471     @Test
    472     public void testRoundOut() {
    473         Rect rect = new Rect();
    474         mRectF = new RectF(1.2f, 1.8f, 5.2f, 5.8f);
    475         mRectF.roundOut(rect);
    476         assertEquals(1, rect.left, 0.0f);
    477         assertEquals(1, rect.top, 0.0f);
    478         assertEquals(6, rect.right, 0.0f);
    479         assertEquals(6, rect.bottom, 0.0f);
    480     }
    481 
    482     @Test
    483     public void testRound() {
    484         Rect rect = new Rect();
    485         mRectF = new RectF(1.2f, 1.8f, 5.2f, 5.8f);
    486         mRectF.round(rect);
    487         assertEquals(1, rect.left, 0.0f);
    488         assertEquals(2, rect.top, 0.0f);
    489         assertEquals(5, rect.right, 0.0f);
    490         assertEquals(6, rect.bottom, 0.0f);
    491     }
    492 
    493     @Test
    494     public void testWriteReadParcel() {
    495         RectF rectOut = new RectF(0.0f,0.0f,10.0f,10.0f);
    496         Parcel out = Parcel.obtain();
    497         rectOut.writeToParcel(out, 0);
    498         out.setDataPosition(0);
    499         RectF rectIn = new RectF(1.0f,1.0f,1.0f,1.0f);
    500         rectIn.readFromParcel(out);
    501         assertEquals(rectOut.left, rectIn.left, 0.0f);
    502         assertEquals(rectOut.bottom, rectIn.bottom, 0.0f);
    503         assertEquals(rectOut.right, rectIn.right, 0.0f);
    504         assertEquals(rectOut.top, rectIn.top, 0.0f);
    505         assertNotNull(rectIn.toString());
    506 
    507         assertEquals(0, rectIn.describeContents());
    508 
    509         out.recycle();
    510     }
    511 }
    512