aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/src/com/android/tv/util/ScaledBitmapInfoTest.java
blob: 2714e2e9fea1cb4066da69d9a1751b70e1aa0c46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.android.tv.util;

import static org.junit.Assert.assertEquals;

import android.graphics.Bitmap;
import android.support.test.filters.SmallTest;

import com.android.tv.util.BitmapUtils.ScaledBitmapInfo;

import org.junit.Test;

/**
 * Tests for {@link ScaledBitmapInfo}.
 */
@SmallTest
public class ScaledBitmapInfoTest {
    private static final Bitmap B80x100 = Bitmap.createBitmap(80, 100, Bitmap.Config.RGB_565);
    private static final Bitmap B960x1440 = Bitmap.createBitmap(960, 1440, Bitmap.Config.RGB_565);

    @Test
    public void testSize_B100x100to50x50() {
        ScaledBitmapInfo actual = BitmapUtils.createScaledBitmapInfo("B80x100", B80x100, 50, 50);
        assertScaledBitmapSize(2, 40, 50, actual);
    }

    @Test
    public void testNeedsToReload_B100x100to50x50() {
        ScaledBitmapInfo actual = BitmapUtils.createScaledBitmapInfo("B80x100", B80x100, 50, 50);
        assertNeedsToReload(false, actual, 25, 25);
        assertNeedsToReload(false, actual, 50, 50);
        assertNeedsToReload(false, actual, 99, 99);
        assertNeedsToReload(true, actual, 100, 100);
        assertNeedsToReload(true, actual, 101, 101);
    }

    /**
     * Reproduces <a href="http://b/20488453">b/20488453</a>.
     */
    @Test
    public void testBug20488453() {
        ScaledBitmapInfo actual = BitmapUtils
                .createScaledBitmapInfo("B960x1440", B960x1440, 284, 160);
        assertScaledBitmapSize(8, 107, 160, actual);
        assertNeedsToReload(false, actual, 284, 160);
    }

    private static void assertNeedsToReload(boolean expected, ScaledBitmapInfo scaledBitmap,
            int reqWidth, int reqHeight) {
        assertEquals(scaledBitmap.id + " needToReload(" + reqWidth + "," + reqHeight + ")",
                expected, scaledBitmap.needToReload(reqWidth, reqHeight));
    }

    private static void assertScaledBitmapSize(int expectedInSampleSize, int expectedWidth,
            int expectedHeight, ScaledBitmapInfo actual) {
        assertEquals(actual.id + " inSampleSize", expectedInSampleSize, actual.inSampleSize);
        assertEquals(actual.id + " width", expectedWidth, actual.bitmap.getWidth());
        assertEquals(actual.id + " height", expectedHeight, actual.bitmap.getHeight());
    }
}