import org.junit.Test fun main() { val verwaltung = Musikverwaltung() val song1 = Song("Led Zeppelin", "Led Zeppelin", 180, 90) val song2 = Song("Led Zeppelin II", "Led Zeppelin", 147, 80) val song3 = Song("Led Zeppelin III", "Led Zeppelin", 260, 72) val song4 = Song("[Led Zeppelin IV]", "Led Zeppelin", 451, 85) val song5 = Song("Houses of the Holy", "Led Zeppelin", 332, 94) val song6 = Song("Physical Graffiti", "Led Zeppelin", 174, 100) val song7 = Song("Presence", "Led Zeppelin", 80, 67) val song8 = Song("In Through the Out Door", "Led Zeppelin", 270, 93) val songTXT = SongMitText("Generic Song A", "Artist One", 80, 67, "Strings, I guess.") val songAB = SongMitAutobewertung("Generic Song B", "Artist Two", 270, 80) verwaltung.hinzufuegen(song1) verwaltung.hinzufuegen(song2) verwaltung.hinzufuegen(song3) verwaltung.hinzufuegen(song4) verwaltung.hinzufuegen(song5) verwaltung.hinzufuegen(song6) verwaltung.hinzufuegen(song7) verwaltung.hinzufuegen(song8) verwaltung.hinzufuegen(songTXT) verwaltung.hinzufuegen(songAB) if (songTXT.search("Strings, I guess")) println("\nsongTXT funktioniert!\n") println("\nsongAB: Titel: ${songAB.titel}, Bewertung: ${songAB.bewertung}\n") songAB.abspielen() println("\nsongAB: Titel: ${songAB.titel}, Bewertung: ${songAB.bewertung}\n") val songME = SongMitEigenschaften("Generic Song C", "Artist Three", 80, 67, 2017, 12345) println("\nSongME: Titel: ${songME.titel}, Durchschnittlicher Verkauf pro Jahr seid Release: ${"%.2f".format(songME.durchschnitt())}\n") val newPlaylist = Playlist(mutableListOf(song1, song2, song3)) val zufallsPlaylist: Playlist = verwaltung.zufallsPlaylist() val dynPlaylist = DynamicPlaylist(mutableListOf(song1, song2, song3)) val bew = 80 newPlaylist.alleAbspielen() println("\nSpieldauer von newPlaylist: ${newPlaylist.gesamteSpieldauer()} Sekunden, ${String.format("%.2f",newPlaylist.gesamteSpieldauer() / 60.0)} Minuten") println("\nAnzahl der Songs mit einer Bewertung von $bew oder besser: ${newPlaylist.SpieldauerMitXOderBesser(bew)}") println("\n-----SEPERATOR-----\n") zufallsPlaylist.alleAbspielen() println("\nSpieldauer von zufallPlaylist: ${zufallsPlaylist.gesamteSpieldauer()} Sekunden, ${String.format("%.2f",zufallsPlaylist.gesamteSpieldauer() / 60.0)} Minuten") println("\nAnzahl der Songs mit einer Bewertung von $bew oder besser: ${zufallsPlaylist.SpieldauerMitXOderBesser(bew)}") println("\n-----SEPERATOR-----\n") dynPlaylist.alleAbspielen() println("\nSpieldauer von dynPlaylist: ${dynPlaylist.gesamteSpieldauer()} Sekunden, ${String.format("%.2f",dynPlaylist.gesamteSpieldauer() / 60.0)} Minuten") println("\nAnzahl der Songs mit einer Bewertung von $bew oder besser: ${dynPlaylist.SpieldauerMitXOderBesser(bew)}") //dynPlaylist Test dynPlaylist.add(song6) println("\n-----SEPERATOR-----\n") dynPlaylist.alleAbspielen() println("\nSpieldauer von dynPlaylist: ${dynPlaylist.gesamteSpieldauer()} Sekunden, ${String.format("%.2f",dynPlaylist.gesamteSpieldauer() / 60.0)} Minuten") println("\nAnzahl der Songs mit einer Bewertung von $bew oder besser: ${dynPlaylist.SpieldauerMitXOderBesser(bew)}") println("\n-----SEPERATOR-----\n") //val testSong = dynPlaylist.take() dynPlaylist.take2(song6) //println(testSong?.titel) dynPlaylist.alleAbspielen() println("\nSpieldauer von dynPlaylist: ${dynPlaylist.gesamteSpieldauer()} Sekunden, ${String.format("%.2f",dynPlaylist.gesamteSpieldauer() / 60.0)} Minuten") println("\nAnzahl der Songs mit einer Bewertung von $bew oder besser: ${dynPlaylist.SpieldauerMitXOderBesser(bew)}") println("\n-----SEPERATOR-----\n") dynPlaylist.reset() dynPlaylist.alleAbspielen() println("\nSpieldauer von dynPlaylist: ${dynPlaylist.gesamteSpieldauer()} Sekunden, ${String.format("%.2f",dynPlaylist.gesamteSpieldauer() / 60.0)} Minuten") println("\nAnzahl der Songs mit einer Bewertung von $bew oder besser: ${dynPlaylist.SpieldauerMitXOderBesser(bew)}") val besterSong: Song = verwaltung.besterSong() println("\nDer beste Song in der Datenbank ist: ${besterSong.titel} von ${besterSong.interpret}, Spieldauer: ${besterSong.spieldauer / 60.0}, Bewertung: ${besterSong.bewertung}") do{ println("Bitte geben Sie einen Suchbegriff ein!") val eingabe = readLine().toString() if(eingabe != "stopp") { val seekSong = verwaltung.suchen(eingabe) seekSong?.abspielen() ?: println("\nIhre Suche ergab keine Treffer!\n") } } while(eingabe != "stopp") val player = Wiedergabe(newPlaylist, 0) /*player.startStopErneut(0) player.nMalNeachsterSong(3) player.startStopErneut(1) player.startStopErneut(1) player.neachsterSong() player.wiedergabemodusSetzen(2) player.neachsterSong()*/ // Test Sorting val dynPlaylistTwo = DynamicPlaylist(mutableListOf(song1, song2, song3)) val compareAlphanumeric = object : Comparator { override fun compare(s1: Song, s2: Song): Int = s1.titel.compareTo(s2.titel) } val compareInts = object : Comparator { override fun compare(a: Song, b: Song): Int = a.bewertung - b.bewertung } dynPlaylistTwo.auflisten() dynPlaylistTwo.sort(compareInts) dynPlaylistTwo.auflisten() }