Parsing test boards from text files to be able to add more and bigger tests

It also adds an assets folder inside of Launcher3 tests.

It also fixes a bug in fullReorder.

Test: atest ReorderWidgets
Flag: none
Bug: 229292911
Change-Id: I7dadd42a3057d353326691163bb7db71a2e9dcc4
diff --git a/tests/Android.bp b/tests/Android.bp
index 81853d1..f9d6f04 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -69,6 +69,7 @@
 android_library {
     name: "Launcher3TestLib",
     srcs: [ ],
+    asset_dirs: ["assets"],
     resource_dirs: ["res"],
     static_libs: [
         "launcher-aosp-tapl",
diff --git a/tests/assets/ReorderWidgets/full_reorder_case b/tests/assets/ReorderWidgets/full_reorder_case
new file mode 100644
index 0000000..33ebaae
--- /dev/null
+++ b/tests/assets/ReorderWidgets/full_reorder_case
@@ -0,0 +1,28 @@
+###################################################################################################
+# This file contains test case composed of the following tags:
+#     * # (coments): Lines starting with this character would be ignored.
+#     * arguments: is set of words separated by spaces that can later be parsed
+#     * board: represent a workspace, the first line is the dimensions of the board width x height (wxh)
+# There are different characters on the board that represent different things:
+#     * x: The x character represents spaces that would be ignored, for example it can be used in
+#          the first row if we don't know how wide the smartspace is.
+#     * i: Represents an icon on the workspace, none in particular just an icon
+#     * [a-z]: Represents a widget and it can be any number or character
+#          except any other already in use. The whole continuos are of the same character is the
+#          area of the widget.
+#     * [A-Z]: Represents a folder and number of icons in the folder is represented by the order of
+#          letter in the alphabet, A=2, B=3, C=4 ... etc.
+# Test are parsed by CellLayoutTestCaseReader.java and boards are parsed by CellLayoutBoard.java
+###################################################################################################
+# Test 4x4
+board: 4x4
+xxxx
+bbmm
+iimm
+iiaa
+arguments: 0 3
+board: 4x4
+xxxx
+bbii
+mmii
+mmaa
\ No newline at end of file
diff --git a/tests/assets/ReorderWidgets/move_out_reorder_case b/tests/assets/ReorderWidgets/move_out_reorder_case
new file mode 100644
index 0000000..db0a91d
--- /dev/null
+++ b/tests/assets/ReorderWidgets/move_out_reorder_case
@@ -0,0 +1,44 @@
+###################################################################################################
+# This file contains test case composed of the following tags:
+#     * # (coments): Lines starting with this character would be ignored.
+#     * arguments: is set of words separated by spaces that can later be parsed
+#     * board: represent a workspace, the first line is the dimensions of the board width x height (wxh)
+# There are different characters on the board that represent different things:
+#     * x: The x character represents spaces that would be ignored, for example it can be used in
+#          the first row if we don't know how wide the smartspace is.
+#     * i: Represents an icon on the workspace, none in particular just an icon
+#     * [a-z]: Represents a widget and it can be any number or character
+#          except any other already in use. The whole continuos are of the same character is the
+#          area of the widget.
+#     * [A-Z]: Represents a folder and number of icons in the folder is represented by the order of
+#          letter in the alphabet, A=2, B=3, C=4 ... etc.
+# Test are parsed by CellLayoutTestCaseReader.java and boards are parsed by CellLayoutBoard.java
+###################################################################################################
+# Test 5x5
+board: 5x5
+xxxxx
+cd-m-
+cgaaa
+ctaaa
+ctaaa
+arguments: 1 2
+board: 5x5
+xxxxx
+cde--
+cgaaa
+ctaaa
+ctaaa
+# Test 6x5
+board: 6x5
+xxxxxx
+cd-m--
+cgaaaa
+ctaaaa
+ctaaaa
+arguments: 1 2
+board: 6x5
+xxxxxx
+cdg---
+cmaaaa
+ctaaaa
+ctaaaa
\ No newline at end of file
diff --git a/tests/assets/ReorderWidgets/push_reorder_case b/tests/assets/ReorderWidgets/push_reorder_case
new file mode 100644
index 0000000..8e845a2
--- /dev/null
+++ b/tests/assets/ReorderWidgets/push_reorder_case
@@ -0,0 +1,44 @@
+###################################################################################################
+# This file contains test case composed of the following tags:
+#     * # (coments): Lines starting with this character would be ignored.
+#     * arguments: is set of words separated by spaces that can later be parsed
+#     * board: represent a workspace, the first line is the dimensions of the board width x height (wxh)
+# There are different characters on the board that represent different things:
+#     * x: The x character represents spaces that would be ignored, for example it can be used in
+#          the first row if we don't know how wide the smartspace is.
+#     * i: Represents an icon on the workspace, none in particular just an icon
+#     * [a-z]: Represents a widget and it can be any number or character
+#          except any other already in use. The whole continuos are of the same character is the
+#          area of the widget.
+#     * [A-Z]: Represents a folder and number of icons in the folder is represented by the order of
+#          letter in the alphabet, A=2, B=3, C=4 ... etc.
+# Test are parsed by CellLayoutTestCaseReader.java and boards are parsed by CellLayoutBoard.java
+###################################################################################################
+#Test 5x5
+board: 5x5
+xxxxx
+bbbm-
+--ccc
+--ddd
+-----
+arguments: 2 1
+board: 5x5
+xxxxx
+--m--
+bbb--
+--ccc
+--ddd
+#6x5 Test
+board: 6x5
+xxxxxx
+bbbbm-
+--aaa-
+--ddd-
+------
+arguments: 2 1
+board: 6x5
+xxxxxx
+--m---
+bbbb--
+--aaa-
+--ddd-
\ No newline at end of file
diff --git a/tests/assets/ReorderWidgets/simple_reorder_case b/tests/assets/ReorderWidgets/simple_reorder_case
new file mode 100644
index 0000000..f5eb7b6
--- /dev/null
+++ b/tests/assets/ReorderWidgets/simple_reorder_case
@@ -0,0 +1,56 @@
+###################################################################################################
+# This file contains test case composed of the following tags:
+#     * # (coments): Lines starting with this character would be ignored.
+#     * arguments: is set of words separated by spaces that can later be parsed
+#     * board: represent a workspace, the first line is the dimensions of the board width x height (wxh)
+# There are different characters on the board that represent different things:
+#     * x: The x character represents spaces that would be ignored, for example it can be used in
+#          the first row if we don't know how wide the smartspace is.
+#     * i: Represents an icon on the workspace, none in particular just an icon
+#     * [a-z]: Represents a widget and it can be any number or character
+#          except any other already in use. The whole continuos are of the same character is the
+#          area of the widget.
+#     * [A-Z]: Represents a folder and number of icons in the folder is represented by the order of
+#          letter in the alphabet, A=2, B=3, C=4 ... etc.
+# Test are parsed by CellLayoutTestCaseReader.java and boards are parsed by CellLayoutBoard.java
+###################################################################################################
+# Test 5x5
+board: 5x5
+xxxxx
+--mm-
+--mm-
+-----
+-----
+arguments: 0 4
+board: 5x5
+xxxxx
+-----
+-----
+mm---
+mm---
+# Test 4x4
+board: 4x4
+xxxx
+--mm
+--mm
+----
+arguments: 3 3
+board: 4x4
+xxxx
+----
+--mm
+--mm
+# Test 6x5
+board: 6x5
+xxxxxx
+-mm---
+-mm---
+------
+------
+arguments: 4 3
+board: 6x5
+xxxxxx
+------
+------
+----mm
+----mm
\ No newline at end of file
diff --git a/tests/res/raw/reorder_algorithm_test.txt b/tests/res/raw/reorder_algorithm_test.txt
new file mode 100644
index 0000000..4930e93
--- /dev/null
+++ b/tests/res/raw/reorder_algorithm_test.txt
@@ -0,0 +1,9 @@
+arguments: 5 6 normal
+board: 6x5
+xxxxx-
+------
+------
+---3--
+---3--
+---3--
+# this is a comment
\ No newline at end of file
diff --git a/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java b/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java
index 6d75180..cf96f04 100644
--- a/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java
+++ b/tests/src/com/android/launcher3/celllayout/CellLayoutBoard.java
@@ -179,7 +179,6 @@
     Map<Character, WidgetRect> mWidgetsMap = new HashMap<>();
 
     List<IconPoint> mIconPoints = new ArrayList<>();
-    Map<Character, IconPoint> mIconsMap = new HashMap<>();
 
     WidgetRect mMain = null;
 
@@ -270,7 +269,9 @@
     }
 
     public void addIcon(int x, int y) {
-        removeOverlappingItems(new Point(x, y));
+        Point iconCoord = new Point(x, y);
+        removeOverlappingItems(iconCoord);
+        mIconPoints.add(new IconPoint(iconCoord, CellType.ICON));
         mWidget[x][y] = 'i';
     }
 
@@ -306,8 +307,12 @@
         return new WidgetRect(type, widgetRect);
     }
 
+    public static boolean isFolder(char type) {
+        return type >= 'A' && type <= 'Z';
+    }
+
     public static boolean isWidget(char type) {
-        return type != CellType.ICON && type != CellType.EMPTY;
+        return type != CellType.ICON && type != CellType.EMPTY && (type >= 'a' && type <= 'z');
     }
 
     public static boolean isIcon(char type) {
diff --git a/tests/src/com/android/launcher3/celllayout/CellLayoutTestCaseReader.java b/tests/src/com/android/launcher3/celllayout/CellLayoutTestCaseReader.java
new file mode 100644
index 0000000..e33a304
--- /dev/null
+++ b/tests/src/com/android/launcher3/celllayout/CellLayoutTestCaseReader.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2023 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.launcher3.celllayout;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import android.graphics.Point;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.stream.Collectors;
+
+public class CellLayoutTestCaseReader {
+
+    public abstract static class TestSection {
+        State state;
+
+        public TestSection(State state) {
+            this.state = state;
+        }
+
+        public State getState() {
+            return state;
+        }
+
+        public void setState(State state) {
+            this.state = state;
+        }
+    }
+
+    public static class Comment extends TestSection {
+        public Comment() {
+            super(State.COMMENT);
+        }
+    }
+
+    public static class Arguments extends TestSection {
+        String[] arguments;
+
+        public Arguments(String[] arguments) {
+            super(State.ARGUMENTS);
+            this.arguments = arguments;
+        }
+    }
+
+    public static class Board extends TestSection {
+        Point gridSize;
+        String board;
+
+        public Board(Point gridSize, String board) {
+            super(State.BOARD);
+            this.gridSize = gridSize;
+            this.board = board;
+        }
+    }
+
+    public enum State {
+        START,
+        ARGUMENTS,
+        BOARD,
+        END,
+        COMMENT
+    }
+
+    String mTest;
+
+    protected CellLayoutTestCaseReader(String test) {
+        mTest = test;
+    }
+
+    public static CellLayoutTestCaseReader readFromFile(String fileName) throws IOException {
+        String fileStr = new BufferedReader(new InputStreamReader(
+                getInstrumentation().getContext().getAssets().open(fileName))
+        ).lines().collect(Collectors.joining("\n"));
+        return new CellLayoutTestCaseReader(fileStr);
+    }
+
+    private State getStateFromLine(String line) {
+        String typeWithColons = line.trim().split(" ")[0].trim();
+        String type = typeWithColons.substring(0, typeWithColons.length() - 1);
+        try {
+            return Enum.valueOf(State.class, type.toUpperCase());
+        } catch (Exception e) {
+            throw new RuntimeException(
+                    "The given tag " + typeWithColons + " doesn't match with the existing tags");
+        }
+    }
+
+    private String removeTag(String line) {
+        return line.split(":")[1];
+    }
+
+    private TestSection parseNextLine(Iterator<String> it) {
+        String line = it.next();
+        if (line.trim().charAt(0) == '#') {
+            return new Comment();
+        }
+        State state = getStateFromLine(line);
+        line = removeTag(line);
+        switch (state) {
+            case ARGUMENTS:
+                return new Arguments(parseArgumentsLine(line));
+            case BOARD:
+                Point grid = parseGridSize(line);
+                return new Board(grid, parseBoard(it, grid.y));
+            default:
+                return new Comment();
+        }
+    }
+
+    List<TestSection> parse() {
+        List<TestSection> sections = new ArrayList<>();
+        String[] lines = mTest.split("\n");
+        Iterator<String> it = Arrays.stream(lines).iterator();
+        while (it.hasNext()) {
+            TestSection section = parseNextLine(it);
+            if (section.state == State.COMMENT) {
+                continue;
+            }
+            sections.add(section);
+        }
+        return sections;
+    }
+
+    private String parseBoard(Iterator<String> it, int rows) {
+        StringBuilder board = new StringBuilder();
+        for (int j = 0; j < rows; j++) {
+            board.append(it.next() + "\n");
+        }
+        return board.toString();
+    }
+
+    private String[] parseArgumentsLine(String line) {
+        return Arrays.stream(line.trim().split(" ")).map(String::trim).toArray(String[]::new);
+    }
+
+    private Point parseGridSize(String line) {
+        String[] values = line.toLowerCase(Locale.ROOT).split("x");
+        int x = Integer.parseInt(values[0].trim());
+        int y = Integer.parseInt(values[1].trim());
+        return new Point(x, y);
+    }
+}
diff --git a/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java b/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
index 2960807..e3d07a9 100644
--- a/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
+++ b/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
@@ -51,8 +51,8 @@
                     board.addIcon(pos.cellX, pos.cellY);
                 } else {
                     // is widget
-                    board.addWidget(pos.cellX, pos.cellY, params.cellHSpan, params.cellVSpan,
-                            (char) ('A' + widgetCount));
+                    board.addWidget(params.getCellX(), params.getCellY(), params.cellHSpan,
+                            params.cellVSpan, (char) ('a' + widgetCount));
                     widgetCount++;
                 }
             }
diff --git a/tests/src/com/android/launcher3/celllayout/MultipleCellLayoutsSimpleReorder.java b/tests/src/com/android/launcher3/celllayout/MultipleCellLayoutsSimpleReorder.java
index 9b52fe8..706c1a7 100644
--- a/tests/src/com/android/launcher3/celllayout/MultipleCellLayoutsSimpleReorder.java
+++ b/tests/src/com/android/launcher3/celllayout/MultipleCellLayoutsSimpleReorder.java
@@ -17,6 +17,8 @@
 
 import android.graphics.Point;
 
+import com.android.launcher3.celllayout.ReorderTestCase;
+
 import java.util.Map;
 
 /**
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/ReorderTestCase.java b/tests/src/com/android/launcher3/celllayout/ReorderTestCase.java
similarity index 92%
rename from tests/src/com/android/launcher3/celllayout/testcases/ReorderTestCase.java
rename to tests/src/com/android/launcher3/celllayout/ReorderTestCase.java
index 98fc20c..ed84a60 100644
--- a/tests/src/com/android/launcher3/celllayout/testcases/ReorderTestCase.java
+++ b/tests/src/com/android/launcher3/celllayout/ReorderTestCase.java
@@ -13,12 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.launcher3.celllayout.testcases;
+package com.android.launcher3.celllayout;
 
 import android.graphics.Point;
 
-import com.android.launcher3.celllayout.CellLayoutBoard;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
diff --git a/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java b/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
index c2fe3de..e8dd3c0 100644
--- a/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
+++ b/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
@@ -25,12 +25,7 @@
 import androidx.test.filters.SmallTest;
 
 import com.android.launcher3.InvariantDeviceProfile;
-import com.android.launcher3.celllayout.testcases.FullReorderCase;
-import com.android.launcher3.celllayout.testcases.MoveOutReorderCase;
 import com.android.launcher3.celllayout.testcases.MultipleCellLayoutsSimpleReorder;
-import com.android.launcher3.celllayout.testcases.PushReorderCase;
-import com.android.launcher3.celllayout.testcases.ReorderTestCase;
-import com.android.launcher3.celllayout.testcases.SimpleReorderCase;
 import com.android.launcher3.tapl.Widget;
 import com.android.launcher3.tapl.WidgetResizeFrame;
 import com.android.launcher3.testing.shared.TestProtocol;
@@ -40,12 +35,14 @@
 
 import org.junit.Assume;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ExecutionException;
@@ -159,27 +156,23 @@
     }
 
     @Test
-    public void simpleReorder() throws ExecutionException, InterruptedException {
-        runTestCaseMap(SimpleReorderCase.TEST_BY_GRID_SIZE,
-                SimpleReorderCase.class.getSimpleName());
-    }
-
-    @Ignore
-    @Test
-    public void pushTest() throws ExecutionException, InterruptedException {
-        runTestCaseMap(PushReorderCase.TEST_BY_GRID_SIZE, PushReorderCase.class.getSimpleName());
-    }
-
-    @Ignore
-    @Test
-    public void fullReorder() throws ExecutionException, InterruptedException {
-        runTestCaseMap(FullReorderCase.TEST_BY_GRID_SIZE, FullReorderCase.class.getSimpleName());
+    public void simpleReorder() throws Exception {
+        runTestCaseMap(getTestMap("ReorderWidgets/simple_reorder_case"), "push_reorder_case");
     }
 
     @Test
-    public void moveOutReorder() throws ExecutionException, InterruptedException {
-        runTestCaseMap(MoveOutReorderCase.TEST_BY_GRID_SIZE,
-                MoveOutReorderCase.class.getSimpleName());
+    public void pushTest() throws Exception {
+        runTestCaseMap(getTestMap("ReorderWidgets/push_reorder_case"), "push_reorder_case");
+    }
+
+    @Test
+    public void fullReorder() throws Exception {
+        runTestCaseMap(getTestMap("ReorderWidgets/full_reorder_case"), "full_reorder_case");
+    }
+
+    @Test
+    public void moveOutReorder() throws Exception {
+        runTestCaseMap(getTestMap("ReorderWidgets/move_out_reorder_case"), "move_out_reorder_case");
     }
 
     @Test
@@ -188,4 +181,28 @@
         runTestCaseMap(MultipleCellLayoutsSimpleReorder.TEST_BY_GRID_SIZE,
                 MultipleCellLayoutsSimpleReorder.class.getSimpleName());
     }
+
+    private void addTestCase(Iterator<CellLayoutTestCaseReader.TestSection> sections,
+            Map<Point, ReorderTestCase> testCaseMap) {
+        CellLayoutTestCaseReader.Board startBoard =
+                ((CellLayoutTestCaseReader.Board) sections.next());
+        CellLayoutTestCaseReader.Arguments point =
+                ((CellLayoutTestCaseReader.Arguments) sections.next());
+        CellLayoutTestCaseReader.Board endBoard =
+                ((CellLayoutTestCaseReader.Board) sections.next());
+        Point moveTo = new Point(Integer.parseInt(point.arguments[0]),
+                Integer.parseInt(point.arguments[1]));
+        testCaseMap.put(startBoard.gridSize,
+                new ReorderTestCase(startBoard.board, moveTo, endBoard.board));
+    }
+
+    private Map<Point, ReorderTestCase> getTestMap(String testPath) throws IOException {
+        Map<Point, ReorderTestCase> testCaseMap = new HashMap<>();
+        Iterator<CellLayoutTestCaseReader.TestSection> iterableSection =
+                CellLayoutTestCaseReader.readFromFile(testPath).parse().iterator();
+        while (iterableSection.hasNext()) {
+            addTestCase(iterableSection, testCaseMap);
+        }
+        return testCaseMap;
+    }
 }
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/FullReorderCase.java b/tests/src/com/android/launcher3/celllayout/testcases/FullReorderCase.java
deleted file mode 100644
index d68d2ed..0000000
--- a/tests/src/com/android/launcher3/celllayout/testcases/FullReorderCase.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2022 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.launcher3.celllayout.testcases;
-
-import android.graphics.Point;
-
-import java.util.Map;
-
-/**
- * The grids represent the workspace to be build by TestWorkspaceBuilder, to see what each character
- * in the board mean refer to {@code CellType}
- */
-public class FullReorderCase {
-
-    /** 5x5 Test
-     **/
-    private static final String START_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "222mm\n"
-            + "222mm\n"
-            + "ii111\n"
-            + "ii111";
-    private static final Point MOVE_TO_5x5 = new Point(0, 4);
-    private static final String END_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "222ii\n"
-            + "222ii\n"
-            + "mm111\n"
-            + "mm111";
-    private static final ReorderTestCase TEST_CASE_5x5 = new ReorderTestCase(START_BOARD_STR_5x5,
-            MOVE_TO_5x5,
-            END_BOARD_STR_5x5);
-
-    /** 6x5 Test
-     **/
-    private static final String START_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "2222mm\n"
-            + "2222mm\n"
-            + "ii1111\n"
-            + "ii1111";
-    private static final Point MOVE_TO_6x5 = new Point(0, 4);
-    private static final String END_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "2222ii\n"
-            + "2222ii\n"
-            + "mm1111\n"
-            + "mm1111";
-    private static final ReorderTestCase TEST_CASE_6x5 = new ReorderTestCase(START_BOARD_STR_6x5,
-            MOVE_TO_6x5,
-            END_BOARD_STR_6x5);
-
-    /** 4x4 Test
-     **/
-    private static final String START_BOARD_STR_4x4 = ""
-            + "xxxx\n"
-            + "22mm\n"
-            + "iimm\n"
-            + "ii11";
-    private static final Point MOVE_TO_4x4 = new Point(0, 3);
-    private static final String END_BOARD_STR_4x4 = ""
-            + "xxxx\n"
-            + "22ii\n"
-            + "mmii\n"
-            + "mm11";
-
-    private static final ReorderTestCase TEST_CASE_4x4 = new ReorderTestCase(START_BOARD_STR_4x4,
-            MOVE_TO_4x4,
-            END_BOARD_STR_4x4);
-
-    /** 4x4 Test
-     **/
-    private static final String START_BOARD_STR_4x5 = ""
-            + "xxxx\n"
-            + "22mm\n"
-            + "iimm\n"
-            + "ii11\n"
-            + "ii11";
-    private static final Point MOVE_TO_4x5 = new Point(0, 3);
-    private static final String END_BOARD_STR_4x5 = ""
-            + "xxxx\n"
-            + "22ii\n"
-            + "mmii\n"
-            + "mm11\n"
-            + "ii11";
-
-    private static final ReorderTestCase TEST_CASE_4x5 = new ReorderTestCase(START_BOARD_STR_4x5,
-            MOVE_TO_4x5,
-            END_BOARD_STR_4x5);
-
-    public static final Map<Point, ReorderTestCase> TEST_BY_GRID_SIZE =
-            Map.of(new Point(5, 5), TEST_CASE_5x5,
-                    new Point(6, 5), TEST_CASE_6x5,
-                    new Point(4, 4), TEST_CASE_4x4,
-                    new Point(4, 5), TEST_CASE_4x5);
-}
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/MoveOutReorderCase.java b/tests/src/com/android/launcher3/celllayout/testcases/MoveOutReorderCase.java
deleted file mode 100644
index 047d342..0000000
--- a/tests/src/com/android/launcher3/celllayout/testcases/MoveOutReorderCase.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2022 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.launcher3.celllayout.testcases;
-
-import android.graphics.Point;
-
-import java.util.Map;
-
-/**
- * The grids represent the workspace to be build by TestWorkspaceBuilder, to see what each character
- * in the board mean refer to {@code CellType}
- */
-public class MoveOutReorderCase {
-
-    /** 5x5 Test
-     **/
-    private static final String START_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "34-m-\n"
-            + "35111\n"
-            + "32111\n"
-            + "32111";
-    private static final Point MOVE_TO_5x5 = new Point(1, 2);
-    private static final String END_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "345--\n"
-            + "3m111\n"
-            + "32111\n"
-            + "32111";
-    private static final ReorderTestCase TEST_CASE_5x5 = new ReorderTestCase(START_BOARD_STR_5x5,
-            MOVE_TO_5x5,
-            END_BOARD_STR_5x5);
-
-    /** 6x5 Test
-     **/
-    private static final String START_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "34-m--\n"
-            + "351111\n"
-            + "321111\n"
-            + "321111";
-    private static final Point MOVE_TO_6x5 = new Point(1, 2);
-    private static final String END_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "345---\n"
-            + "3m1111\n"
-            + "321111\n"
-            + "321111";
-    private static final ReorderTestCase TEST_CASE_6x5 = new ReorderTestCase(START_BOARD_STR_6x5,
-            MOVE_TO_6x5,
-            END_BOARD_STR_6x5);
-
-    public static final Map<Point, ReorderTestCase> TEST_BY_GRID_SIZE =
-            Map.of(new Point(5, 5), TEST_CASE_5x5,
-                    new Point(6, 5), TEST_CASE_6x5);
-}
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/PushReorderCase.java b/tests/src/com/android/launcher3/celllayout/testcases/PushReorderCase.java
deleted file mode 100644
index 38c9aee..0000000
--- a/tests/src/com/android/launcher3/celllayout/testcases/PushReorderCase.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2022 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.launcher3.celllayout.testcases;
-
-import android.graphics.Point;
-
-import java.util.Map;
-
-/**
- * The grids represent the workspace to be build by TestWorkspaceBuilder, to see what each character
- * in the board mean refer to {@code CellType}
- */
-public class PushReorderCase {
-
-    /** 5x5 Test
-     **/
-    private static final String START_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "222m-\n"
-            + "--111\n"
-            + "--333\n"
-            + "-----";
-    private static final Point MOVE_TO_5x5 = new Point(2, 1);
-    private static final String END_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "--m--\n"
-            + "222--\n"
-            + "--111\n"
-            + "--333";
-    private static final ReorderTestCase TEST_CASE_5x5 = new ReorderTestCase(START_BOARD_STR_5x5,
-            MOVE_TO_5x5,
-            END_BOARD_STR_5x5);
-
-
-    /** 6x5 Test
-     **/
-    private static final String START_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "2222m-\n"
-            + "--111-\n"
-            + "--333-\n"
-            + "------";
-    private static final Point MOVE_TO_6x5 = new Point(2, 1);
-    private static final String END_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "--m---\n"
-            + "2222--\n"
-            + "--111-\n"
-            + "--333-";
-    private static final ReorderTestCase TEST_CASE_6x5 = new ReorderTestCase(START_BOARD_STR_6x5,
-            MOVE_TO_6x5,
-            END_BOARD_STR_6x5);
-
-    public static final Map<Point, ReorderTestCase> TEST_BY_GRID_SIZE =
-            Map.of(new Point(5, 5), TEST_CASE_5x5,
-                    new Point(6, 5), TEST_CASE_6x5);
-}
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/SimpleReorderCase.java b/tests/src/com/android/launcher3/celllayout/testcases/SimpleReorderCase.java
deleted file mode 100644
index c9f6849..0000000
--- a/tests/src/com/android/launcher3/celllayout/testcases/SimpleReorderCase.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2022 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.launcher3.celllayout.testcases;
-
-import android.graphics.Point;
-
-import java.util.Map;
-
-/**
- * The grids represent the workspace to be build by TestWorkspaceBuilder, to see what each character
- * in the board mean refer to {@code CellType}
- */
-public class SimpleReorderCase {
-
-    /** 5x5 Test
-     **/
-    private static final String START_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "--mm-\n"
-            + "--mm-\n"
-            + "-----\n"
-            + "-----";
-    private static final Point MOVE_TO_5x5 = new Point(0, 4);
-    private static final String END_BOARD_STR_5x5 = ""
-            + "xxxxx\n"
-            + "-----\n"
-            + "-----\n"
-            + "mm---\n"
-            + "mm---";
-    private static final ReorderTestCase TEST_CASE_5x5 = new ReorderTestCase(START_BOARD_STR_5x5,
-            MOVE_TO_5x5,
-            END_BOARD_STR_5x5);
-
-    /** 4x4 Test
-     **/
-    private static final String START_BOARD_STR_4x4 = ""
-            + "xxxx\n"
-            + "--mm\n"
-            + "--mm\n"
-            + "----";
-    private static final Point MOVE_TO_4x4 = new Point(3, 3);
-    private static final String END_BOARD_STR_4x4 = ""
-            + "xxxx\n"
-            + "----\n"
-            + "--mm\n"
-            + "--mm";
-    private static final ReorderTestCase TEST_CASE_4x4 = new ReorderTestCase(START_BOARD_STR_4x4,
-            MOVE_TO_4x4,
-            END_BOARD_STR_4x4);
-
-    /** 6x5 Test
-     **/
-    private static final String START_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "-mm---\n"
-            + "-mm---\n"
-            + "------\n"
-            + "------";
-    private static final Point MOVE_TO_6x5 = new Point(4, 3);
-    private static final String END_BOARD_STR_6x5 = ""
-            + "xxxxxx\n"
-            + "------\n"
-            + "------\n"
-            + "----mm\n"
-            + "----mm";
-    private static final ReorderTestCase TEST_CASE_6x5 = new ReorderTestCase(START_BOARD_STR_6x5,
-            MOVE_TO_6x5,
-            END_BOARD_STR_6x5);
-
-    public static final Map<Point, ReorderTestCase> TEST_BY_GRID_SIZE =
-            Map.of(new Point(5, 5), TEST_CASE_5x5,
-                    new Point(4, 4), TEST_CASE_4x4,
-                    new Point(6, 5), TEST_CASE_6x5);
-}