public void SetUp() { var ramStorage = new RAMStorage(NumberOfFingerprints); SubFingerprintDao = new SubFingerprintDao(ramStorage); TrackDao = new TrackDao(ramStorage); }
public void SetUp() { var ramStorage = new RAMStorage(NumberOfHashTables); HashBinDao = new HashBinDao(ramStorage); TrackDao = new TrackDao(ramStorage); SubFingerprintDao = new SubFingerprintDao(ramStorage); }
public void InsertTest() { TrackData track = new TrackData("isrc", "artist", "title", "album", 1986, 200); var trackReference = TrackDao.InsertTrack(track); var subFingerprintReference = SubFingerprintDao.InsertSubFingerprint(GenericSignature, trackReference); AssertModelReferenceIsInitialized(subFingerprintReference); }
public void SetUp() { solr = new Mock <ISolrOperations <SubFingerprintDTO> >(MockBehavior.Strict); dictionaryToHashConverter = new Mock <IDictionaryToHashConverter>(MockBehavior.Strict); hashConverter = new Mock <IHashConverter>(MockBehavior.Strict); solrQueryBuilder = new Mock <ISolrQueryBuilder>(MockBehavior.Strict); subFingerprintDao = new SubFingerprintDao(solr.Object, dictionaryToHashConverter.Object, hashConverter.Object, solrQueryBuilder.Object); }
public IList <HashedFingerprint> ReadHashedFingerprintsByTrack(IModelReference trackReference) { return(SubFingerprintDao.ReadHashedFingerprintsByTrackReference(trackReference) .Select(subFingerprint => new HashedFingerprint( subFingerprint.Hashes, subFingerprint.SequenceNumber, subFingerprint.SequenceAt)) .ToList()); }
public void InsertTest() { TrackData track = new TrackData("isrc", "artist", "title", "album", 1986, 200); int trackId = TrackDao.Insert(track); long subFingerprintId = SubFingerprintDao.Insert(GenericSignature, trackId); Assert.IsFalse(subFingerprintId == 0); }
public void ReadTest() { TrackData track = new TrackData("isrc", "artist", "title", "album", 1986, 200); var trackReference = TrackDao.InsertTrack(track); var subFingerprintReference = SubFingerprintDao.InsertSubFingerprint(GenericSignature, trackReference); SubFingerprintData actual = SubFingerprintDao.ReadSubFingerprint(subFingerprintReference); AsserSubFingerprintsAreEqual(new SubFingerprintData(GenericSignature, subFingerprintReference, trackReference), actual); }
public TrackDaoFact() { tempDirectory = Path.Combine(Path.GetTempPath(), Path.GetTempFileName()); File.Delete(tempDirectory); Directory.CreateDirectory(tempDirectory); context = new DatabaseContext(tempDirectory, new LMDBConfiguration()); trackDao = new TrackDao(context); subFingerprintDao = new SubFingerprintDao(context); }
public void DeleteHashBinsAndSubfingerprintsOnTrackDelete() { const int StaticStride = 5115; const int SecondsToProcess = 20; const int StartAtSecond = 30; TagInfo tagInfo = tagService.GetTagInfo(PathToMp3); int releaseYear = tagInfo.Year; TrackData track = new TrackData(tagInfo.ISRC, tagInfo.Artist, tagInfo.Title, tagInfo.Album, releaseYear, (int)tagInfo.Duration); int trackId = TrackDao.Insert(track); var hashData = fingerprintCommandBuilder .BuildFingerprintCommand() .From(PathToMp3, SecondsToProcess, StartAtSecond) .WithFingerprintConfig(config => { config.Stride = new IncrementalStaticStride(StaticStride, config.SamplesPerFingerprint); }) .Hash() .Result; List <long> subFingerprintIds = new List <long>(); foreach (var hash in hashData) { long subFingerprintId = SubFingerprintDao.Insert(hash.SubFingerprint, trackId); HashBinDao.Insert(hash.HashBins, subFingerprintId); subFingerprintIds.Add(subFingerprintId); } var actualTrack = TrackDao.ReadTrackByISRC(tagInfo.ISRC); Assert.IsNotNull(actualTrack); AssertTracksAreEqual(track, actualTrack); // Act int modifiedRows = TrackDao.DeleteTrack(trackId); Assert.IsNull(TrackDao.ReadTrackByISRC(tagInfo.ISRC)); foreach (var id in subFingerprintIds) { Assert.IsTrue(id != 0); Assert.IsNull(SubFingerprintDao.ReadById(id)); } for (int i = 1; i <= 25; i++) { Assert.IsTrue(HashBinDao.ReadHashBinsByHashTable(i).Count == 0); } Assert.AreEqual(1 + hashData.Count + (25 * hashData.Count), modifiedRows); }
public void ReadTest() { TrackData track = new TrackData("isrc", "artist", "title", "album", 1986, 200); int trackId = TrackDao.Insert(track); long subFingerprintId = SubFingerprintDao.Insert(GenericSignature, trackId); SubFingerprintData actual = SubFingerprintDao.ReadById(subFingerprintId); AsserSubFingerprintsAreEqual( new SubFingerprintData( GenericSignature, new ModelReference <long>(subFingerprintId), new ModelReference <int>(trackId)), actual); }
public void DeleteHashBinsAndSubfingerprintsOnTrackDelete() { const int StaticStride = 5115; const int SecondsToProcess = 20; const int StartAtSecond = 30; TagInfo tagInfo = tagService.GetTagInfo(PathToMp3); int releaseYear = tagInfo.Year; TrackData track = new TrackData(tagInfo.ISRC, tagInfo.Artist, tagInfo.Title, tagInfo.Album, releaseYear, (int)tagInfo.Duration); var trackReference = TrackDao.InsertTrack(track); var hashData = fingerprintCommandBuilder .BuildFingerprintCommand() .From(PathToMp3, SecondsToProcess, StartAtSecond) .WithFingerprintConfig(config => { config.Stride = new IncrementalStaticStride(StaticStride, config.SamplesPerFingerprint); }) .UsingServices(audioService) .Hash() .Result; var subFingerprintReferences = new List <IModelReference>(); foreach (var hash in hashData) { var subFingerprintReference = SubFingerprintDao.InsertSubFingerprint(hash.SubFingerprint, trackReference); HashBinDao.InsertHashBins(hash.HashBins, subFingerprintReference, trackReference); subFingerprintReferences.Add(subFingerprintReference); } var actualTrack = TrackDao.ReadTrackByISRC(tagInfo.ISRC); Assert.IsNotNull(actualTrack); AssertTracksAreEqual(track, actualTrack); // Act int modifiedRows = TrackDao.DeleteTrack(trackReference); Assert.IsNull(TrackDao.ReadTrackByISRC(tagInfo.ISRC)); foreach (var id in subFingerprintReferences) { Assert.IsTrue(id.GetHashCode() != 0); Assert.IsNull(SubFingerprintDao.ReadSubFingerprint(id)); } Assert.IsTrue(HashBinDao.ReadHashDataByTrackReference(actualTrack.TrackReference).Count == 0); Assert.AreEqual(1 + hashData.Count + (25 * hashData.Count), modifiedRows); }
public HashBinDaoTest() { HashBinDao = new HashBinDao(); TrackDao = new TrackDao(); SubFingerprintDao = new SubFingerprintDao(); }
public SubFingerprintDaoTest() { SubFingerprintDao = new SubFingerprintDao(); TrackDao = new TrackDao(); }
public TrackDaoTest() { TrackDao = new TrackDao(); SubFingerprintDao = new SubFingerprintDao(); HashBinDao = new HashBinDao(); }