@Test
    public void findSolution_methodFindsOptimalSequence() {
        byte[][] tests = {test1, test2, test3, test4};
        Puzzle p = new Puzzle();
        for (int i = 0; i < tests.length; i++) {
            p.setPuzzle(tests[i]);
            IdaStar idaStar = new IdaStar(p, new ManDist_LinearConflict());
            byte[] solution = idaStar.findSolution();
            for (int j = 0; j < solution.length; j++) {
                int[] numPos = p.getCordinates(solution[j]);
                if (p.getEmptyRow() == numPos[0]) {
                    if (p.getEmptyCol() < numPos[1]) {
                        p.right();                        
                    } else {
                        p.left();                        
                    }
                } else {
                    if (p.getEmptyRow() < numPos[0]) {
                        p.down();                        
                    } else {
                        p.up();                       
                    }
                }
            }            
            assertEquals("Solution was wrong: test case " + (i+1), true, p.isReady());
        }
    }