Exemplo n.º 1
0
        public void InsertTrackTest()
        {
            var track = GetTrack();

            var trackReference = trackDao.InsertTrack(track);

            AssertModelReferenceIsInitialized(trackReference);
            AssertModelReferenceIsInitialized(track.TrackReference);
        }
Exemplo n.º 2
0
        public void TrackInsertTest()
        {
            var track = this.GetRandomTrack();

            var trackReference = trackDao.InsertTrack(track);

            AssertModelReferenceIsInitialized(trackReference);
            AssertModelReferenceIsInitialized(track.TrackReference);
        }
 private TrackData InsertTrackAndHashes(TrackInfo track, Hashes hashedFingerprints, UIntModelReferenceTracker?modelReferenceTracker = null)
 {
     modelReferenceTracker ??= new UIntModelReferenceTracker();
     var(trackData, subFingerprints) = modelReferenceTracker.AssignModelReferences(track, hashedFingerprints);
     trackDao.InsertTrack(trackData);
     subFingerprintDao.InsertSubFingerprints(subFingerprints);
     return(trackData);
 }
        public void ShouldInsertAndReadSubFingerprints()
        {
            var       track              = new TrackData("isrc", "artist", "title", "album", 1986, 200);
            var       trackReference     = trackDao.InsertTrack(track);
            const int NumberOfHashBins   = 100;
            var       hashedFingerprints = Enumerable.Range(0, NumberOfHashBins).Select(i => new HashedFingerprint(GenericSignature, GenericHashBuckets, i, i * 0.928, Enumerable.Empty <string>()));

            InsertHashedFingerprintsForTrack(hashedFingerprints, trackReference);

            var hashedFingerprintss = subFingerprintDao.ReadHashedFingerprintsByTrackReference(track.TrackReference);

            Assert.AreEqual(NumberOfHashBins, hashedFingerprintss.Count);
            foreach (var hashedFingerprint in hashedFingerprintss)
            {
                CollectionAssert.AreEqual(GenericHashBuckets, hashedFingerprint.HashBins);
                CollectionAssert.AreEqual(GenericSignature, hashedFingerprint.SubFingerprint);
            }
        }
Exemplo n.º 5
0
        public void ShouldInsertAndReadSubFingerprints()
        {
            var       track              = new TrackInfo("isrc", "title", "artist");
            var       trackData          = trackDao.InsertTrack(track, 200);
            const int numberOfHashBins   = 100;
            var       genericHashBuckets = GenericHashBuckets();
            var       hashedFingerprints =
                Enumerable.Range(0, numberOfHashBins)
                .Select(
                    sequenceNumber =>
                    new HashedFingerprint(
                        genericHashBuckets,
                        (uint)sequenceNumber,
                        sequenceNumber * 0.928f,
                        Array.Empty <byte>()));

            InsertHashedFingerprintsForTrack(hashedFingerprints, trackData.TrackReference);

            var fingerprints = subFingerprintDao.ReadHashedFingerprintsByTrackReference(trackData.TrackReference)
                               .Select(ToHashedFingerprint()).ToList();

            numberOfHashBins.Should().Be(fingerprints.Count);
            foreach (var hashedFingerprint in fingerprints)
            {
                genericHashBuckets.Should().BeEquivalentTo(hashedFingerprint.HashBins);
            }
        }
Exemplo n.º 6
0
        public void ShouldInsertAndReadSubFingerprints()
        {
            var       track              = new TrackInfo("id", "title", "artist");
            const int numberOfHashBins   = 100;
            var       trackReference     = trackDao.InsertTrack(track, 200).TrackReference;
            var       genericHashBuckets = GenericHashBuckets();
            var       hashedFingerprints = Enumerable
                                           .Range(0, numberOfHashBins)
                                           .Select(sequenceNumber => new HashedFingerprint(
                                                       genericHashBuckets,
                                                       (uint)sequenceNumber,
                                                       sequenceNumber * 0.928f));

            InsertHashedFingerprintsForTrack(hashedFingerprints, trackReference);

            var fingerprints = subFingerprintDao.ReadHashedFingerprintsByTrackReference(trackReference)
                               .Select(ToHashedFingerprint())
                               .ToList();

            Assert.AreEqual(numberOfHashBins, fingerprints.Count);
            foreach (var hashedFingerprint in fingerprints)
            {
                CollectionAssert.AreEqual(genericHashBuckets, hashedFingerprint.HashBins);
            }
        }
Exemplo n.º 7
0
        public void InsertAndReadHashBinTest()
        {
            TrackData track              = new TrackData("isrc", "artist", "title", "album", 1986, 200);
            var       trackReference     = trackDao.InsertTrack(track);
            const int NumberOfHashBins   = 100;
            var       hashedFingerprints = Enumerable.Range(0, NumberOfHashBins).Select(i => new HashedFingerprint(GenericSignature, GenericHashBuckets, i, i * 0.928));

            InsertHashedFingerprintsForTrack(hashedFingerprints, trackReference);

            var hashedFingerprintss = hashBinDao.ReadHashedFingerprintsByTrackReference(track.TrackReference);

            Assert.AreEqual(NumberOfHashBins, hashedFingerprintss.Count);
        }
Exemplo n.º 8
0
 public virtual IModelReference InsertTrack(TrackData track)
 {
     return(trackDao.InsertTrack(track));
 }