public void NoSelection4MusicHasPriority1() { var musicA = new Music("A") { Priority = 1 }; var musicB = new Music("B") { Priority = 1 }; var musicC = new Music("C") { Priority = 1 }; var musicD = new Music("D") { Priority = 1 }; _store.SetupGetMusic(musicA); _store.SetupGetMusic(musicB); _store.SetupGetMusic(musicC); _store.SetupGetMusic(musicD); _musicLibrary.Add(musicA); _musicLibrary.Add(musicB); _musicLibrary.Add(musicC); _musicLibrary.Add(musicD); var playList = new PlayList(_musicLibrary) {"A","B","C","D"}; playList.UpdateProbability(); const double unitProbability = 1d / 4d; Assert.AreEqual(unitProbability, playList["A"].Probability); Assert.AreEqual(unitProbability, playList["B"].Probability); Assert.AreEqual(unitProbability, playList["C"].Probability); Assert.AreEqual(unitProbability, playList["D"].Probability); Assert.AreEqual(unitProbability * 1, playList["A"].CumulativeProbability); Assert.AreEqual(unitProbability * 2, playList["B"].CumulativeProbability); Assert.AreEqual(unitProbability * 3, playList["C"].CumulativeProbability); Assert.AreEqual(unitProbability * 4, playList["D"].CumulativeProbability); }
public void AddingMusicAddsInAllMusicPlayList() { var music = new Music("A"); _store.SetupGetMusic(music); _musicLibrary.Add(music); Assert.IsTrue(_musicLibrary.AllMusicPlayList.Contains("A")); }
public void NoSelection4Music2Classic() { var musicA = new Music("A") { Priority = 1 }; musicA[Constants.Tags.Genre] = "Classic"; var musicB = new Music("B") { Priority = 2 }; var musicC = new Music("C") { Priority = 3 }; musicC[Constants.Tags.Genre] = "Classic"; var musicD = new Music("D") { Priority = 4 }; _store.SetupGetMusic(musicA); _store.SetupGetMusic(musicB); _store.SetupGetMusic(musicC); _store.SetupGetMusic(musicD); _musicLibrary.Add(musicA); _musicLibrary.Add(musicB); _musicLibrary.Add(musicC); _musicLibrary.Add(musicD); var playList = new PlayList(_musicLibrary) { "A", "B", "C", "D" }; playList.UpdateProbability(); const double totalPriority = 10d; const double unitProbability = 1d / totalPriority; _store.VerifyAll(); AreEqual(unitProbability * musicA.Priority, playList["A"].Probability); AreEqual(unitProbability * musicB.Priority, playList["B"].Probability); AreEqual(unitProbability * musicC.Priority, playList["C"].Probability); AreEqual(unitProbability * musicD.Priority, playList["D"].Probability); AreEqual(unitProbability * 1, playList["A"].CumulativeProbability); AreEqual(unitProbability * 3, playList["B"].CumulativeProbability); AreEqual(unitProbability * 6, playList["C"].CumulativeProbability); AreEqual(unitProbability * 10, playList["D"].CumulativeProbability); }
public void AddMusic() { var music = new Music("A"){Priority = 2}; _store.Add(music); _adapter.Verify(o => o.OpenDatabase(), Times.Once()); _adapter.Verify(o=>o.ExecuteNonQuery(string.Format(Constants.Sql.InsertMusic,music.Id,music.Priority)),Times.Once()); _adapter.Verify(o=>o.Close(),Times.Once()); }
public IMusic GetMusic(string id) { _adapter.OpenDatabase(); var result = _adapter.Execute(string.Format(Constants.Sql.GetMusic, id)); IMusic music=null; if(result.Rows.Count==1) { var row = (ArrayList) result.Rows[0]; music = new Music((string)row[Constants.ColumnIndex.Music.Id]) { Priority = (double) row[Constants.ColumnIndex.Music.Priority] }; } _adapter.Close(); return music; }
public void MusicReturnsEmptyStringIfNotEdited() { var music = new Music(); Assert.AreEqual("",music[Constants.Tags.Genre]); }
public void MusicReturnsActualValueIfEdited() { var music = new Music(); music[Constants.Tags.Genre] = "Classic"; Assert.AreEqual("Classic", music[Constants.Tags.Genre]); }
public void AddMusic() { var music = new Music("A"); _musicLibrary.Add(music); _store.VerifyAdd(music); }
public void NoSelection4MusicHasPriority1OneHas2() { var musicA = new Music("A") { Priority = 1 }; var musicB = new Music("B") { Priority = 1 }; var musicC = new Music("C") { Priority = 1 }; var musicD = new Music("D") { Priority = 1 }; var musicE = new Music("E") { Priority = 2 }; _store.SetupGetMusic(musicA); _store.SetupGetMusic(musicB); _store.SetupGetMusic(musicC); _store.SetupGetMusic(musicD); _store.SetupGetMusic(musicE); _musicLibrary.Add(musicA); _musicLibrary.Add(musicB); _musicLibrary.Add(musicC); _musicLibrary.Add(musicD); _musicLibrary.Add(musicE); var playList = new PlayList(_musicLibrary) {"A","B","C","D","E"}; playList.UpdateProbability(); const double unitProbability = 1d / 6d; Assert.AreEqual(unitProbability, playList["A"].Probability); Assert.AreEqual(unitProbability, playList["B"].Probability); Assert.AreEqual(unitProbability, playList["C"].Probability); Assert.AreEqual(unitProbability, playList["D"].Probability); Assert.AreEqual(2*unitProbability, playList["E"].Probability); }
public void TwoClassic2RockClassicIsPlayingRepeatPriorityZero() { _store.SetupGetTags(new[] { new MusicTag {Id = Constants.Tags.Genre, Priority = 2}, new MusicTag {Id = Constants.Tags.Album, Priority = 3} }); _store.Setup(s => s.GetRepeatPriority()).Returns(0); var musicA = new Music("A") { Priority = 1 }; musicA[Constants.Tags.Genre] = "Classic"; var musicB = new Music("B") { Priority = 2 }; musicB[Constants.Tags.Genre] = "Rock"; var musicC = new Music("C") { Priority = 3 }; musicC[Constants.Tags.Genre] = "Classic"; var musicD = new Music("D") { Priority = 4 }; musicD[Constants.Tags.Genre] = "Rock"; _store.SetupGetMusic(musicA); _store.SetupGetMusic(musicB); _store.SetupGetMusic(musicC); _store.SetupGetMusic(musicD); _musicLibrary.Add(musicA); _musicLibrary.Add(musicB); _musicLibrary.Add(musicC); _musicLibrary.Add(musicD); var playList = new PlayList(_musicLibrary) { "A", "B", "C", "D" }; playList.SetPlaying("A"); playList.UpdateProbability(); const double totalPriority = 13d; const double unitProbability = 1d / totalPriority; _store.VerifyAll(); AreEqual(0, playList["A"].Probability); AreEqual(unitProbability * musicB.Priority, playList["B"].Probability); AreEqual(unitProbability * (musicC.Priority + 4d), playList["C"].Probability); AreEqual(unitProbability * musicD.Priority, playList["D"].Probability); AreEqual(0, playList["A"].CumulativeProbability); AreEqual(unitProbability * 2, playList["B"].CumulativeProbability); AreEqual(unitProbability * 9, playList["C"].CumulativeProbability); AreEqual(unitProbability * 13, playList["D"].CumulativeProbability); }