package com.android.launcher3.util; import android.test.suitebuilder.annotation.SmallTest; import junit.framework.TestCase; /** * Unit tests for {@link GridOccupancy} */ @SmallTest public class GridOccupancyTest extends TestCase { public void testFindVacantCell() { GridOccupancy grid = initGrid(4, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 ); int[] vacant = new int[2]; assertTrue(grid.findVacantCell(vacant, 2, 2)); assertEquals(vacant[0], 0); assertEquals(vacant[1], 1); assertTrue(grid.findVacantCell(vacant, 3, 2)); assertEquals(vacant[0], 2); assertEquals(vacant[1], 2); assertFalse(grid.findVacantCell(vacant, 3, 3)); } public void testIsRegionVacant() { GridOccupancy grid = initGrid(4, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 ); assertTrue(grid.isRegionVacant(4, 0, 1, 4)); assertTrue(grid.isRegionVacant(0, 1, 2, 2)); assertTrue(grid.isRegionVacant(2, 2, 3, 2)); assertFalse(grid.isRegionVacant(3, 0, 2, 4)); assertFalse(grid.isRegionVacant(0, 0, 2, 1)); } private GridOccupancy initGrid(int rows, int... cells) { int cols = cells.length / rows; int i = 0; GridOccupancy grid = new GridOccupancy(cols, rows); for (int y = 0; y < rows; y++) { for (int x = 0; x < cols; x++) { grid.cells[x][y] = cells[i] != 0; i++; } } return grid; } }