public void TestTwoItems()
        {
            FingerprintCompressor compressor = new FingerprintCompressor();

            int[] fingerprint = { 1, 0 };
            string value = compressor.Compress(fingerprint);

            byte[] expected = { 0, 0, 0, 2, 65, 0 };
            byte[] actual = Base64.ByteEncoding.GetBytes(value);

            CollectionAssert.AreEqual(actual, expected);
        }
        public void TestOneItemOneBitExcept2()
        {
            FingerprintCompressor compressor = new FingerprintCompressor();

            int[] fingerprint = { 1 << 8 };
            string value = compressor.Compress(fingerprint);

            byte[] expected = { 0, 0, 0, 1, 7, 2 };
            byte[] actual = Base64.ByteEncoding.GetBytes(value);

            CollectionAssert.AreEqual(actual, expected);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Compress and optionally base64-encode a raw fingerprint.
        /// </summary>
        /// <param name="fp">pointer to an array of 32-bit integers representing the raw fingerprint to be encoded</param>
        /// <param name="algorithm">Chromaprint algorithm version which was used to generate the raw fingerprint</param>
        /// <param name="base64">Whether to return binary data or base64-encoded ASCII data. The
        /// compressed fingerprint will be encoded using base64 with the URL-safe scheme if you 
        /// set this parameter to 1. It will return binary data if it's 0.</param>
        /// <returns>The encoded fingerprint</returns>
        public static byte[] EncodeFingerprint(int[] fp, int algorithm, bool base64)
        {
            FingerprintCompressor compressor = new FingerprintCompressor();
            string compressed = compressor.Compress(fp, algorithm);

            if (!base64)
            {
                return Base64.ByteEncoding.GetBytes(compressed);
            }

            return Base64.ByteEncoding.GetBytes(Base64.Encode(compressed));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Return the calculated fingerprint as a compressed string.
 /// </summary>
 /// <returns>The fingerprint as a compressed string</returns>
 public string GetFingerprint()
 {
     FingerprintCompressor compressor = new FingerprintCompressor();
     return Base64.Encode(compressor.Compress(this.fingerprint, algorithm));
 }