diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java | 914 |
1 files changed, 0 insertions, 914 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java deleted file mode 100644 index 72c929618..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/draw9patch/graphics/NinePatchedImageTest.java +++ /dev/null @@ -1,914 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics; - -import java.util.ArrayList; -import java.util.List; - -import junit.framework.TestCase; - -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; - -import com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics.NinePatchedImage.Chunk; -import com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics.NinePatchedImage.Projection; -import com.android.ide.eclipse.adt.internal.editors.draw9patch.graphics.NinePatchedImage.Tick; - -public class NinePatchedImageTest extends TestCase { - - private static final String DIR = "/com/android/ide/eclipse/testdata/draw9patch/"; - - public void testReadNoPatchedImage() throws Exception { - String fileName = DIR + "no-patched.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - ImageData data = image.getImageData(); - int width = data.width; - int height = data.height; - - assertEquals(72, width); - assertEquals(50, height); - - assertFalse(image.hasNinePatchExtension()); - } - - public void testReadNoPatchedInteraceImage() throws Exception { - String fileName = DIR + "no-patched-interlace.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - ImageData data = image.getImageData(); - int width = data.width; - int height = data.height; - - assertEquals(72, width); - assertEquals(50, height); - - assertFalse(image.hasNinePatchExtension()); - } - - public void testConvert9PatchedImage() throws Exception { - String fileName = DIR + "no-patched.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - ImageData data = image.getImageData(); - int width = data.width; - int height = data.height; - - assertEquals(72, width); - assertEquals(50, height); - - assertFalse(image.hasNinePatchExtension()); - - image.convertToNinePatch(); - - data = image.getImageData(); - width = data.width; - height = data.height; - - // increased patch size - assertEquals(72 + 2, width); - assertEquals(50 + 2, height); - - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.isDirty()); - - // initialized patches - List<Tick> horizontalPatches = image.getHorizontalPatches(); - List<Tick> verticalPatches = image.getVerticalPatches(); - assertEquals(1, horizontalPatches.size()); - assertEquals(1, verticalPatches.size()); - - // initialized contents area - List<Tick> horizontalContentsArea = image.getHorizontalContents(); - List<Tick> verticalContentsArea = image.getVerticalContents(); - assertEquals(1, horizontalContentsArea.size()); - assertEquals(1, verticalContentsArea.size()); - - // content area rectangle - Rectangle contentsArea = image.getContentArea(); - assertEquals(new Rectangle(1, 1, width - 2, height - 2), contentsArea); - } - - public void testReadInvalidPatchedImageCorners() throws Exception { - - // top-left - String fileName = DIR + "invalid-patched1.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - - // top-right - fileName = DIR + "invalid-patched2.9.png"; - image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - - // bottom-left - fileName = DIR + "invalid-patched3.9.png"; - image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - - // bottom-right - fileName = DIR + "invalid-patched4.9.png"; - image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - } - - public void testReadInvalidPatchedImageLine() throws Exception { - - // top - String fileName = DIR + "invalid-patched5.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - - // right - fileName = DIR + "invalid-patched6.9.png"; - image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - - // bottom - fileName = DIR + "invalid-patched7.9.png"; - image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - - // left - fileName = DIR + "invalid-patched8.9.png"; - image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - } - - public void testEnsure9PatchIgnoreInvalidPixels() throws Exception { - // top - String fileName = DIR + "invalid-patched5.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - // invalid pixel - int invalidPixel = image.getImageData().getPixel(33, 0); - assertTrue(0x0 != invalidPixel); - - assertTrue(image.hasNinePatchExtension()); - assertFalse(image.ensure9Patch()); - - // ensure9path() ignored invalid pixels - int invalidPixelAlpha = image.getImageData().getAlpha(33, 0); - assertEquals(0x00, invalidPixelAlpha); - } - - public void test9Patch1() throws Exception { - String fileName = DIR + "patched1.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - - // patches - List<Tick> horizontalPatches = image.getHorizontalPatches(); - List<Tick> verticalPatches = image.getVerticalPatches(); - assertEquals(3, horizontalPatches.size()); - assertEquals(3, verticalPatches.size()); - - Chunk[][] chunks = null; - chunks = image.getChunks(chunks); - - // vertical chunk size - assertEquals(3, chunks.length); - - // horizontal chunk size - for (int i = 0; i < chunks.length; i++) { - assertEquals(3, chunks[i].length); - } - - Chunk c = null; - Rectangle rect = null; - - // Row 1 - c = chunks[0][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(1, rect.x); - assertEquals(1, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - c = chunks[0][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(2, rect.x); - assertEquals(1, rect.y); - assertEquals(70, rect.width); - assertEquals(1, rect.height); - - c = chunks[0][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(72, rect.x); - assertEquals(1, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - // Row 2 - c = chunks[1][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(1, rect.x); - assertEquals(2, rect.y); - assertEquals(1, rect.width); - assertEquals(48, rect.height); - - c = chunks[1][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_FIXED, c.type); - assertEquals(2, rect.x); - assertEquals(2, rect.y); - assertEquals(70, rect.width); - assertEquals(48, rect.height); - - c = chunks[1][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(72, rect.x); - assertEquals(2, rect.y); - assertEquals(1, rect.width); - assertEquals(48, rect.height); - - // Row 3 - c = chunks[2][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(1, rect.x); - assertEquals(50, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - c = chunks[2][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(2, rect.x); - assertEquals(50, rect.y); - assertEquals(70, rect.width); - assertEquals(1, rect.height); - - c = chunks[2][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(72, rect.x); - assertEquals(50, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - } - - public void test9Patch2() throws Exception { - String fileName = DIR + "patched2.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - - // patches - List<Tick> horizontalPatches = image.getHorizontalPatches(); - List<Tick> verticalPatches = image.getVerticalPatches(); - assertEquals(5, horizontalPatches.size()); - assertEquals(7, verticalPatches.size()); - - NinePatchedImage.Chunk[][] chunks = null; - chunks = image.getChunks(chunks); - - // vertical chunk size - assertEquals(7, chunks.length); - - // horizontal chunk size - for (int i = 0; i < chunks.length; i++) { - assertEquals(5, chunks[i].length); - } - - NinePatchedImage.Chunk c = null; - Rectangle rect = null; - - // Row 1 - c = chunks[0][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(1, rect.x); - assertEquals(1, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - c = chunks[0][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(2, rect.x); - assertEquals(1, rect.y); - assertEquals(34, rect.width); - assertEquals(1, rect.height); - - c = chunks[0][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(36, rect.x); - assertEquals(1, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - c = chunks[0][3]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(37, rect.x); - assertEquals(1, rect.y); - assertEquals(35, rect.width); - assertEquals(1, rect.height); - - c = chunks[0][4]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(72, rect.x); - assertEquals(1, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - // Row 2 - c = chunks[1][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(1, rect.x); - assertEquals(2, rect.y); - assertEquals(1, rect.width); - assertEquals(7, rect.height); - - c = chunks[1][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_FIXED, c.type); - assertEquals(2, rect.x); - assertEquals(2, rect.y); - assertEquals(34, rect.width); - assertEquals(7, rect.height); - - c = chunks[1][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(36, rect.x); - assertEquals(2, rect.y); - assertEquals(1, rect.width); - assertEquals(7, rect.height); - - c = chunks[1][3]; - rect = c.rect; - assertEquals(Chunk.TYPE_FIXED, c.type); - assertEquals(37, rect.x); - assertEquals(2, rect.y); - assertEquals(35, rect.width); - assertEquals(7, rect.height); - - c = chunks[1][4]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(72, rect.x); - assertEquals(2, rect.y); - assertEquals(1, rect.width); - assertEquals(7, rect.height); - - // Row 3 - c = chunks[2][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(1, rect.x); - assertEquals(9, rect.y); - assertEquals(1, rect.width); - assertEquals(4, rect.height); - - c = chunks[2][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(2, rect.x); - assertEquals(9, rect.y); - assertEquals(34, rect.width); - assertEquals(4, rect.height); - - c = chunks[2][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(36, rect.x); - assertEquals(9, rect.y); - assertEquals(1, rect.width); - assertEquals(4, rect.height); - - c = chunks[2][3]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(37, rect.x); - assertEquals(9, rect.y); - assertEquals(35, rect.width); - assertEquals(4, rect.height); - - c = chunks[2][4]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(72, rect.x); - assertEquals(9, rect.y); - assertEquals(1, rect.width); - assertEquals(4, rect.height); - - // Row 4 - c = chunks[3][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(1, rect.x); - assertEquals(13, rect.y); - assertEquals(1, rect.width); - assertEquals(13, rect.height); - - c = chunks[3][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_FIXED, c.type); - assertEquals(2, rect.x); - assertEquals(13, rect.y); - assertEquals(34, rect.width); - assertEquals(13, rect.height); - - c = chunks[3][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(36, rect.x); - assertEquals(13, rect.y); - assertEquals(1, rect.width); - assertEquals(13, rect.height); - - c = chunks[3][3]; - rect = c.rect; - assertEquals(Chunk.TYPE_FIXED, c.type); - assertEquals(37, rect.x); - assertEquals(13, rect.y); - assertEquals(35, rect.width); - assertEquals(13, rect.height); - - c = chunks[3][4]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(72, rect.x); - assertEquals(13, rect.y); - assertEquals(1, rect.width); - assertEquals(13, rect.height); - - // Row 5 - c = chunks[4][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(1, rect.x); - assertEquals(26, rect.y); - assertEquals(1, rect.width); - assertEquals(12, rect.height); - - c = chunks[4][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(2, rect.x); - assertEquals(26, rect.y); - assertEquals(34, rect.width); - assertEquals(12, rect.height); - - c = chunks[4][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(36, rect.x); - assertEquals(26, rect.y); - assertEquals(1, rect.width); - assertEquals(12, rect.height); - - c = chunks[4][3]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(37, rect.x); - assertEquals(26, rect.y); - assertEquals(35, rect.width); - assertEquals(12, rect.height); - - c = chunks[4][4]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(72, rect.x); - assertEquals(26, rect.y); - assertEquals(1, rect.width); - assertEquals(12, rect.height); - - // Row 6 - c = chunks[5][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(1, rect.x); - assertEquals(38, rect.y); - assertEquals(1, rect.width); - assertEquals(12, rect.height); - - c = chunks[5][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_FIXED, c.type); - assertEquals(2, rect.x); - assertEquals(38, rect.y); - assertEquals(34, rect.width); - assertEquals(12, rect.height); - - c = chunks[5][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(36, rect.x); - assertEquals(38, rect.y); - assertEquals(1, rect.width); - assertEquals(12, rect.height); - - c = chunks[5][3]; - rect = c.rect; - assertEquals(Chunk.TYPE_FIXED, c.type); - assertEquals(37, rect.x); - assertEquals(38, rect.y); - assertEquals(35, rect.width); - assertEquals(12, rect.height); - - c = chunks[5][4]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL, c.type); - assertEquals(72, rect.x); - assertEquals(38, rect.y); - assertEquals(1, rect.width); - assertEquals(12, rect.height); - - // Row 7 - c = chunks[6][0]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(1, rect.x); - assertEquals(50, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - c = chunks[6][1]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(2, rect.x); - assertEquals(50, rect.y); - assertEquals(34, rect.width); - assertEquals(1, rect.height); - - c = chunks[6][2]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(36, rect.x); - assertEquals(50, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - - c = chunks[6][3]; - rect = c.rect; - assertEquals(Chunk.TYPE_VERTICAL, c.type); - assertEquals(37, rect.x); - assertEquals(50, rect.y); - assertEquals(35, rect.width); - assertEquals(1, rect.height); - - c = chunks[6][4]; - rect = c.rect; - assertEquals(Chunk.TYPE_HORIZONTAL | Chunk.TYPE_VERTICAL, c.type); - assertEquals(72, rect.x); - assertEquals(50, rect.y); - assertEquals(1, rect.width); - assertEquals(1, rect.height); - } - - public void testContentArea() throws Exception { - String fileName = DIR + "content-area.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - - // contents area - List<Tick> horizontalContentsArea = image.getHorizontalContents(); - List<Tick> verticalContentsArea = image.getVerticalContents(); - assertEquals(3, horizontalContentsArea.size()); - assertEquals(3, verticalContentsArea.size()); - - // content area rectangle - Rectangle contentsArea = image.getContentArea(); - assertEquals(new Rectangle(19, 13, 35, 25), contentsArea); - } - - public void testContentAreaOneDot() throws Exception { - String fileName = DIR + "content-area-one-dot.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - - // contents area - List<Tick> horizontalContentsArea = image.getHorizontalContents(); - List<Tick> verticalContentsArea = image.getVerticalContents(); - assertEquals(3, horizontalContentsArea.size()); - assertEquals(3, verticalContentsArea.size()); - - // content area rectangle - Rectangle contentsArea = image.getContentArea(); - assertEquals(new Rectangle(19, 13, 1, 1), contentsArea); - } - - public void testContentAreaTwoDots() throws Exception { - String fileName = DIR + "content-area-two-dots.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - - // contents area - List<Tick> horizontalContentsArea = image.getHorizontalContents(); - List<Tick> verticalContentsArea = image.getVerticalContents(); - assertEquals(5, horizontalContentsArea.size()); - assertEquals(5, verticalContentsArea.size()); - - // content area rectangle - Rectangle contentsArea = image.getContentArea(); - assertEquals(new Rectangle(19, 13, 35, 25), contentsArea); - - String fileName2 = DIR + "content-area.9.png"; - NinePatchedImage image2 = new NinePatchedImage(getClass() - .getResourceAsStream(fileName2), fileName2); - assertNotNull(image2); - - assertTrue(image2.hasNinePatchExtension()); - assertTrue(image2.ensure9Patch()); - - // content area rectangle - Rectangle contentsArea2 = image2.getContentArea(); - assertEquals(contentsArea2, contentsArea); - } - - public void testBadPatches() throws Exception { - String fileName = DIR + "patched-with-badpatches.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - - Chunk[][] chunks = null; - chunks = image.getChunks(chunks); - - // vertical chunk size - assertEquals(5, chunks.length); - - // horizontal chunk size - for (int i = 0; i < chunks.length; i++) { - assertEquals(7, chunks[i].length); - } - - chunks = image.getCorruptedChunks(chunks); - - Chunk c = null; - - // collect bad patches - List<Point> badPatches = new ArrayList<Point>(5 * 7); - for (int y = 0; y < chunks.length; y++) { - for (int x = 0; x < chunks[0].length; x++) { - c = chunks[y][x]; - if ((c.type & Chunk.TYPE_CORRUPT) != 0x0) { - badPatches.add(new Point(y, x)); - } - } - } - - assertEquals(15, badPatches.size()); - - assertTrue(badPatches.contains(new Point(0, 3))); - - assertTrue(badPatches.contains(new Point(1, 1))); - assertTrue(badPatches.contains(new Point(1, 2))); - assertTrue(badPatches.contains(new Point(1, 3))); - assertTrue(badPatches.contains(new Point(1, 4))); - assertTrue(badPatches.contains(new Point(1, 5))); - - assertTrue(badPatches.contains(new Point(2, 1))); - assertTrue(badPatches.contains(new Point(2, 5))); - - assertTrue(badPatches.contains(new Point(3, 0))); - assertTrue(badPatches.contains(new Point(3, 1))); - assertTrue(badPatches.contains(new Point(3, 5))); - assertTrue(badPatches.contains(new Point(3, 6))); - - assertTrue(badPatches.contains(new Point(4, 1))); - assertTrue(badPatches.contains(new Point(4, 3))); - assertTrue(badPatches.contains(new Point(4, 5))); - } - - public void testProjection() throws Exception { - // top - String fileName = DIR + "patched3.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - - ImageData data = image.getImageData(); - assertEquals(72 + 2, data.width); - assertEquals(50 + 2, data.height); - - int width = 72 * 2; - int height = 50 * 2; - - Chunk[][] chunks = null; - chunks = image.getChunks(chunks); - - Projection[][] projections = null; - projections = image.getProjections(width, height, projections); - - assertEquals(chunks.length, projections.length); - for (int i = 0; i < chunks.length; i++) { - assertEquals(chunks[i].length, projections[i].length); - } - - for (int y = 0; y < projections.length; y++) { - for (int x = 0; x < projections[y].length; x++) { - assertEquals(projections[y][x].src, chunks[y][x].rect); - - // If chunk type is FIXED. Same projection size as original - // chunk. - if (projections[y][x].chunk.type == Chunk.TYPE_FIXED) { - assertEquals(projections[y][x].dest.width, chunks[y][x].rect.width); - assertEquals(projections[y][x].dest.height, chunks[y][x].rect.height); - } - } - } - - Projection p = null; - Rectangle rect = null; - - // Check start position - p = projections[0][0]; - - // src position start from 1, 9-patch row and column included. - assertEquals(1, p.src.x); - assertEquals(1, p.src.y); - - // dest position start from 0, 9-patch row and column ignored. - assertEquals(0, p.dest.x); - assertEquals(0, p.dest.y); - - // row 1 - p = projections[0][0]; - rect = p.dest; - assertEquals(0, rect.x); - assertEquals(0, rect.y); - assertEquals(74, rect.width); - assertEquals(5, rect.height); - - p = projections[0][1]; - rect = p.dest; - assertEquals(74, rect.x); - assertEquals(0, rect.y); - assertEquals(62, rect.width); - assertEquals(5, rect.height); - - p = projections[0][2]; - rect = p.dest; - assertEquals(136, rect.x); - assertEquals(0, rect.y); - assertEquals(8, rect.width); - assertEquals(5, rect.height); - - // row 2 - p = projections[1][0]; - rect = p.dest; - assertEquals(0, rect.x); - assertEquals(5, rect.y); - assertEquals(74, rect.width); - assertEquals(24, rect.height); - - p = projections[1][1]; - rect = p.dest; - assertEquals(74, rect.x); - assertEquals(5, rect.y); - assertEquals(62, rect.width); - assertEquals(24, rect.height); - - p = projections[1][2]; - rect = p.dest; - assertEquals(136, rect.x); - assertEquals(5, rect.y); - assertEquals(8, rect.width); - assertEquals(24, rect.height); - - // row 3 - p = projections[2][0]; - rect = p.dest; - assertEquals(0, rect.x); - assertEquals(29, rect.y); - assertEquals(74, rect.width); - assertEquals(58, rect.height); - - p = projections[2][1]; - rect = p.dest; - assertEquals(74, rect.x); - assertEquals(29, rect.y); - assertEquals(62, rect.width); - assertEquals(58, rect.height); - - p = projections[2][2]; - rect = p.dest; - assertEquals(136, rect.x); - assertEquals(29, rect.y); - assertEquals(8, rect.width); - assertEquals(58, rect.height); - - // row 4 - p = projections[3][0]; - rect = p.dest; - assertEquals(0, rect.x); - assertEquals(87, rect.y); - assertEquals(74, rect.width); - assertEquals(13, rect.height); - - p = projections[3][1]; - rect = p.dest; - assertEquals(74, rect.x); - assertEquals(87, rect.y); - assertEquals(62, rect.width); - assertEquals(13, rect.height); - - p = projections[3][2]; - rect = p.dest; - assertEquals(136, rect.x); - assertEquals(87, rect.y); - assertEquals(8, rect.width); - assertEquals(13, rect.height); - } - - public void testReadLayoutBoundsOnlyImage() throws Exception { - String fileName = DIR + "layout-bounds-only.9.png"; - NinePatchedImage image = new NinePatchedImage(getClass() - .getResourceAsStream(fileName), fileName); - assertNotNull(image); - - ImageData data = image.getImageData(); - int width = data.width; - int height = data.height; - - assertEquals(74, width); - assertEquals(52, height); - - assertTrue(image.hasNinePatchExtension()); - assertTrue(image.ensure9Patch()); - } -} |