public void TestTransitionState() { int[] board = { 1, 2, 3, 4, 0, 5, 6, 7, 8 }; SlidingPuzzle puzzle = new SlidingPuzzle(board); Queue <int[]> expectedQ = new Queue <int[]>(); SlidingPuzzleAction[] actions = new SlidingPuzzleAction[4]; actions[0] = new SlidingPuzzleAction(4, 4 - 1); actions[1] = new SlidingPuzzleAction(4, 4 + 1); actions[2] = new SlidingPuzzleAction(4, 4 - 3); actions[3] = new SlidingPuzzleAction(4, 4 + 3); expectedQ.Enqueue(new int[] { 1, 2, 3, 0, 4, 5, 6, 7, 8 }); expectedQ.Enqueue(new int[] { 1, 2, 3, 4, 5, 0, 6, 7, 8 }); expectedQ.Enqueue(new int[] { 1, 0, 3, 4, 2, 5, 6, 7, 8 }); expectedQ.Enqueue(new int[] { 1, 2, 3, 4, 7, 5, 6, 0, 8 }); for (int i = 0; i < 4; i++) { System.Console.WriteLine("Testing TransitionState(" + string.Format("SlidingPuzzleAction {0}", actions[i].ToString())); string actual = puzzle.TransitionState(actions[i]); string expected = "{" + string.Join(",", expectedQ.Dequeue()) + "}"; Assert.Equal(actual, expected); } }