@Test
	public void testSolveMAze( ) {

		MyMaze testMaze = new MyMaze();
		//TestOne
		//EdgeCase where the maze is not solvable 0 rows and 0 columns
		testMaze.generateMaze( 0, 0 );

		if ( testMaze.solveMaze().size() > 0 ) {
			fail( "The solution should be empty due to 0 rows and 0 columns!" );
		}

		//TestTwo
		//EdgeCase with 0 rows and some number of columns
		testMaze.generateMaze( 0, 50 );

		if ( testMaze.solveMaze().size() > 0 ) {
			fail( "The solution should be empty due to 0 rows and some # of columns!" );
		}

		//TestThree
		//EdgeCase with some number of rows and 0 columns
		testMaze.generateMaze(50, 0);

		if ( testMaze.solveMaze().size() > 0 ) {
			fail( "The solution should be empty due to some # of rows and 0 columns!" );
		}

		//TestThree
		//EdgeCase with equal rows and columns
		testMaze.generateMaze( 20, 20 );

		//check to see if solution is correct
		ArrayList< Vertex > solution = testMaze.solveMaze();
		//check the start and finish are correct
		if ( !testMaze.startVertex().equals( solution.get( 0 ) ) ) {
			fail( "Solution does not start at the start!" ); 
		}

		if ( !testMaze.finishVertex().equals( solution.get( solution.size() - 1 ) ) ) {
			fail( "Solution does not end at the finish!" ); 
		}
		//check to make sure the path is correct
		for ( int ver = 0; ver < solution.size(); ver++ ) {
			//stop once we hit the finish
			if ( solution.get( ver ).equals( testMaze.finishVertex() ) ) {
				break;
			}
			if ( !solution.get( ver ).adjacentVertices().contains(solution.get( ver + 1) ) ) {
				fail( "Solution not connected!" );
			}
		}
	}