content: 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;
      }
  }
  