class TestHideout { public static void main( String[] args ) { Robot r1 = new Robot( "X6", "Corvette", true, false); Robot r2 = new Robot( "Y7", "Mack Truck", false, true); Song s1 = new Song( "Help!", "The Beatles", 118.3, true ); Song s2 = new Song( "Yes", "Coldplay", 7*60+7, true ); Robot[] amigos; amigos = new Robot[3]; amigos[0] = r1.evilCopy(); amigos[1] = r2; amigos[2] = new Robot("ZZ23", "tulip", false, false); Hideout hq1; hq1 = new Hideout("301 Muse Hall", r1, new Robot( "ZZ9", "daisy", false, false ), s2, amigos ); Robot[] amigosA = { amigos[0], r1, amigos[2] }; Hideout hq1a; // Like hq1a, but with the president and crew[1] swapped. hq1a = new Hideout("301 Muse Hall", r2, new Robot( "ZZ9", "daisy", false, false ), s2, amigosA ); hq1.elect(1); // Modifies hq1; it should now look like hq1a. testEqualHideouts( hq1, hq1a ); Robot[] frenemies = { r1.evilCopy(), new Robot( "A1", "locomotive", false, true ) }; Robot[] frenemies2 = { r1, new Robot( "A1", "locomotive", false, true ) }; Hideout hq2 = new Hideout( "225 Davis (ceiling)", r1, r2, s1, frenemies ); hq2.elect(0); // Modifies hq2. testEqualHideouts( hq2, new Hideout( "225 Davis (ceiling)", r1.evilCopy(), r2, s1, frenemies2 ) ); } /** If two Hideouts don't look equal [have same fields], print an error message. * Intended for use as a test-helper. * @param act The actual Hideout returned by a test call. * @param exp The expected Hideout to be returned by a test call. */ public static void testEqualHideouts(Hideout act, Hideout exp) { if (act.deepEquals(exp)) { System.out.println("(test passed)"); } else { System.out.println( "Actual: " + act + "\nExpect: " + exp ); } } }