public void GetBestMatch_MatchOnHarmonicKey_Test() { // Arrange IXmlWrapper xmlWrapper1 = new XmlWrapper(); ITempoRange tempoRange1 = new TempoRange(); IHarmonicKeyRange harmonicKeyRange1 = new HarmonicKeyRange(); IIntensityRange intensityRange1 = new IntensityRange(); ISong song1 = new Song(xmlWrapper1, tempoRange1, harmonicKeyRange1, intensityRange1) { Artist = "Song 1", PlayTime = 100, TrailingTempo = 128.000, TrailingHarmonicKey = "8A" }; IXmlWrapper xmlWrapper2 = new XmlWrapper(); ITempoRange tempoRange2 = new TempoRange(); tempoRange2.Load(128, 3); IHarmonicKeyRange harmonicKeyRange2 = new HarmonicKeyRange(); harmonicKeyRange2.Load("8A"); IIntensityRange intensityRange2 = new IntensityRange(); ISong song2 = new Song(xmlWrapper2, tempoRange2, harmonicKeyRange2, intensityRange2) { Artist = "Song 2", PlayTime = 100 }; var baseTrackList = new List <ISong> { song1 }; var playlistTracks = new List <ISong> { song2 }; var intensityStyle = "Random"; var minPlaytime = 200; var mixLength = 0; IMixDisc mixDisc = new MixDisc { BaseTrackList = baseTrackList, PlaylistTracks = playlistTracks, IntensityStyle = intensityStyle, MinPlaytime = minPlaytime, MixLength = mixLength }; // Act var result = mixDisc.GetBestMatch(); // Assert Assert.IsTrue(result.Count == 2); }
public void Load_Test() { // Arrange IIntensityRange intensityRange = new IntensityRange(); // Act intensityRange.Load(7); // Assert Assert.AreEqual(8, intensityRange.PlusOneIntensity); Assert.AreEqual(6, intensityRange.MinusOneIntensity); }
public void GetBestMatch_SongAlreadyInMixableTrackCombination_Test() { // Arrange IXmlWrapper xmlWrapper1 = new XmlWrapper(); ITempoRange tempoRange1 = new TempoRange(); IHarmonicKeyRange harmonicKeyRange1 = new HarmonicKeyRange(); IIntensityRange intensityRange1 = new IntensityRange(); ISong song1 = new Song(xmlWrapper1, tempoRange1, harmonicKeyRange1, intensityRange1) { Artist = "Song 1", PlayTime = 100 }; IXmlWrapper xmlWrapper2 = new XmlWrapper(); ITempoRange tempoRange2 = new TempoRange(); IHarmonicKeyRange harmonicKeyRange2 = new HarmonicKeyRange(); IIntensityRange intensityRange2 = new IntensityRange(); ISong song2 = new Song(xmlWrapper2, tempoRange2, harmonicKeyRange2, intensityRange2) { Artist = "Song 2", PlayTime = 100 }; var baseTrackList = new List <ISong> { song2, song1 }; var playlistTracks = new List <ISong> { song2 }; var intensityStyle = "Random"; var minPlaytime = 300; var mixLength = 0; IMixDisc mixDisc = new MixDisc { BaseTrackList = baseTrackList, PlaylistTracks = playlistTracks, IntensityStyle = intensityStyle, MinPlaytime = minPlaytime, MixLength = mixLength }; // Act var result = mixDisc.GetBestMatch(); // Assert Assert.IsTrue(result.Count == 0); }
public ISong GetSong(XmlNode entryNode) { ITempoRange tempoRange = new TempoRange(); IHarmonicKeyRange harmonicKeyRange = new HarmonicKeyRange(); IIntensityRange intensityRange = new IntensityRange(); ISong song = new Song(_xmlWrapper, tempoRange, harmonicKeyRange, intensityRange) { EntryNode = entryNode }; song.Load(); return(song); }
public void IsInTempoRange_AboveFastestDoubleAndSlowestDoubleTempo_Test() { // Arrange IXmlWrapper xmlWrapper = new XmlWrapper(); ITempoRange tempoRange = new TempoRange(); tempoRange.Load(62.499, 3); IHarmonicKeyRange harmonicKeyRange = new HarmonicKeyRange(); IIntensityRange intensityRange = new IntensityRange(); ISong song = new Song(xmlWrapper, tempoRange, harmonicKeyRange, intensityRange) { Artist = "Song 1", }; var trailingTempo = 128; // Act var result = song.IsInTempoRange(trailingTempo); // Assert Assert.IsFalse(result); }
public void IsInHarmonicKeyRange_MinusOneAndOppositeCircle_Test() { // Arrange IXmlWrapper xmlWrapper = new XmlWrapper(); ITempoRange tempoRange = new TempoRange(); IHarmonicKeyRange harmonicKeyRange = new HarmonicKeyRange(); harmonicKeyRange.Load("7B"); IIntensityRange intensityRange = new IntensityRange(); ISong song = new Song(xmlWrapper, tempoRange, harmonicKeyRange, intensityRange) { Artist = "Song 1", }; var trailingHarmonicKey = "8A"; // Act var result = song.IsInHarmonicKeyRange(trailingHarmonicKey); // Assert Assert.IsFalse(result); }
public void GetBestMatch_SongsAreSame_Test() { // Arrange IXmlWrapper xmlWrapper1 = new XmlWrapper(); ITempoRange tempoRange1 = new TempoRange(); IHarmonicKeyRange harmonicKeyRange1 = new HarmonicKeyRange(); IIntensityRange intensityRange1 = new IntensityRange(); ISong song1 = new Song(xmlWrapper1, tempoRange1, harmonicKeyRange1, intensityRange1); var baseTrackList = new List <ISong> { song1 }; var playlistTracks = new List <ISong> { song1 }; var intensityStyle = "Random"; var minPlaytime = 200; var mixLength = 0; IMixDisc mixDisc = new MixDisc { BaseTrackList = baseTrackList, PlaylistTracks = playlistTracks, IntensityStyle = intensityStyle, MinPlaytime = minPlaytime, MixLength = mixLength }; // Act var result = mixDisc.GetBestMatch(); // Assert Assert.IsTrue(result.Count == 0); }
public void IsInIntensityRange_AbovePlusOne_Test() { // Arrange IXmlWrapper xmlWrapper = new XmlWrapper(); ITempoRange tempoRange = new TempoRange(); IHarmonicKeyRange harmonicKeyRange = new HarmonicKeyRange(); IIntensityRange intensityRange = new IntensityRange(); intensityRange.Load(9); ISong song = new Song(xmlWrapper, tempoRange, harmonicKeyRange, intensityRange) { Artist = "Song 1", Intensity = 9 }; var trailingIntensity = 7; // Act var result = song.IsInIntensityRange(trailingIntensity); // Assert Assert.IsFalse(result); }
public override async Task Initialize() { if (ParentViewModel != null) { IEnumerable <BatCall> batCalls = ParentViewModel.BatCalls; await Task.Run(() => { FreqBins.LoadBins(batCalls); IntensityBins.LoadBins(batCalls); CallDurationBins.LoadBins(batCalls); TimeBins.LoadBins(batCalls); }); FrequencyRange.Set(FreqBins.Range); IntensityRange.Set(IntensityBins.Range); DurationRange.Set(CallDurationBins.Range); TimeRange.Set(TimeBins.Range); Freq = new ObservableCollection <KeyValuePair <DateTime, uint> >(batCalls.Select(c => new KeyValuePair <DateTime, uint>(c.StartTime, c.MaxFrequency))); OnPropertyChanged(nameof(Freq)); OnPropertyChanged(nameof(FilterText)); } }