Question: In Java make these 3 programs to pass the given test: Class 1: Track(String trackName, String[] musicians, int durSecs) - The constructor creates a track

In Java make these 3 programs to pass the given test: Class 1: Track(String trackName, String[] musicians, int durSecs) - The constructor creates a track object. String gettrackName() - Accessor for the track name String[] getMusicians() - Accessor for the list of musicians int getDurSecs() - Accessor for the duration of the track Class 2: InfTracklist(String trackName) -- Create a track list with the given name String gettrackName()- Return the name of the track list int num() -- Return the number of tracks in the track list Track start() - plays current track, then moves to the next track void add(Track track) - Add a new track to be the next track TrackIterator iterator() - This returns an instance of a TrackIterator starting from the current track. void reset(TrackIterator it) - Set playback to start from the track pointed to by the track iterator void remove(TrackIterator it)- Remove the track pointed to by the iterator. If the current track is pointed to by the iterator, set it to the next track, or null if there are no more tracks. Track current()-Get the current track that the iterator is pointing to void next() - Advance the iteration void previous() - Move backwards in the iteration Create your iterator implementation as a (non-public) class inside InfTracklist.java. You really need the class that implements the TrackIterator, which is TrackIteratorImpl like this: TrackIteratorImpl itImpl = (TrackIteratorImpl) it Interface#1: public Track current(); public void next(); public void previous(); Given Test to Pass: public class TestInfTracklist { private Track createTrack1() { String name = "Sha"; String[] musicians = new String[] { "L G", "B C" }; int dur = 207; return new Track(name, musicians, dur); } private Track createTrack2() { String name = "Ist"; String[] musicians = new String[] { "T M B G" }; int dur = 304; return new Track(name, musicians, dur); } private Track createTrack3() { String name = "Ron"; String[] musicians= new String[] { "Gobdy" }; int dur = 427; return new Track(name, musicians, dur); } @Test public void testTrack() { String name = "Sha"; String[] musicians = new String[] { "L G", "B C" }; int dur = 207; Track track = new Track(name, musicians, dur); assertEquals(name, track.getName()); assertEquals(musicians.length, track.getMusicians().length); for (int i = 0; i < musicians.length; i++) { assertTrue(track.getMusicians()[i].equals(musicians[i])); } } @Test public void testCreateTracklist() { String name = "N and ah's Inf Tracklist"; Inf Tracklist ip = new Inf Tracklist(name); assertTrue(ip.getName().equals(name)); assertEquals(0, ip.size()); } private void trackEquals(Track s1, Track s2) { assertEquals(s1.getName(), s2.getName()); assertEquals(s1.getMusicians(), s2.getMusicians()); assertEquals(s1.getDurSecs(), s2.getDurSecs()); } @Test public void testAddTrack() { Track track = createTrack1(); InfTracklist ip = new InfTracklist("test add track"); ip.add(track); assertEquals(1, ip.size()); Track current = ip.play(); trackEquals(track, current); } @Test public void testAdvance() { Track track = createTrack1(); InfTracklist ip = new InfTracklist("test add track"); ip.add(track); assertEquals(1, ip.size()); Track current = ip.play(); trackEquals(track, current); Track newcurrent = ip.play(); trackEquals(track, newcurrent); } @Test public void testMultiAdd() { Track track1 = createTrack1(); Track track2 = createTrack2(); Track track3 = createTrack3(); InfTracklist ip = new InfTracklist("test multi add track"); ip.add(track1); assertEquals(1, ip.size()); ip.add(track2); assertEquals(2, ip.size()); ip.add(track3); assertEquals(3, ip.size()); // order should be: track1, track3, track2 Track current = ip.play(); trackEquals(track1 current); Track current2 = ip.play(); trackEquals(track, current2); Track current3 = ip.play(); trackEquals(track2, current3); Track current4 = ip.play(); trackEquals(track1, current4); } @Test public void testIteratorMovement() { Track track1 = createTrack1(); Track track2 = createTrack2(); Track track3 = createTrack3(); InfTracklist ip = new InfTracklist("test multi add track"); ip.add(track1); ip.add(track2); ip.add(track3); // order should be: track1, track3, track2 TrackIterator it = ip.iterator(); trackEquals(track1, it.current()); it.previous(); trackEquals(track2, it.current()); it.previous(); trackEquals(track3, it.current()); it.previous(); trackEquals(track1, it.current()); it.next(); trackEquals(track3, it.current()); } @Test public void testReset() { Track track1 = createTrack1(); Track track2 = createTrack2(); Track track3 = createTrack3(); InfTracklist ip = new InfTracklist("test multi add track"); ip.add(track1); ip.add(track2); ip.add(track3); // order should be: track1, track3, track2 TrackIterator it = ip.iterator(); trackEquals(track1, it.current()); it.previous(); assertEquals(track2, it.current()); ip.reset(it); Track resetTrack = ip.play(); trackEquals(track2, trackTrack); } @Test public void testRemove() { Track track1 = createTrack1(); Track track2 = createTrack2(); Track track3 = createTrack3(); InfTracklist ip = new InfTracklist("test multi add track"); ip.add(track1); ip.add(track2); ip.add(track3); // order should be: track1, track3, track2 TrackIterator it = ip.iterator(); trackEquals(track1, it.current()); ip.remove(it); Track track = ip.play(); trackEquals(track3, track); } @Test public void testRemoveSingle() { Track track1 = createTrack1(); Track track2 = createTrack2(); Track track3 = createTrack3(); InfTracklist ip = new InfTracklist("test multi add track"); ip.add(track1); // order should be: track1, track3, track2 TrackIterator it = ip.iterator(); trackEquals(track1, it.current()); ip.remove(it); Track track = ip.play(); assertEquals(null, track); } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!