コード例 #1
0
        public Property EncodeDecodeAreDuals_Collected(Mod4Binary input)
        {
            var processed = Z85.Decode(Z85.Encode(input.Data));

            return(processed.SequenceEqual(input.Data)
                   // gather individual sizes
                   .Collect(input.Data.Length));
        }
コード例 #2
0
        public Property EncodeDecodeAreDuals_Trivial(Mod4Binary input)
        {
            var processed = Z85.Decode(Z85.Encode(input.Data));

            return(processed.SequenceEqual(input.Data)
                   // identify a special case
                   .Trivial(input.Data.Any(b => b == 70)));
        }
コード例 #3
0
        public Property EncodeDecodeAreDuals_Classified(Mod4Binary input)
        {
            var processed = Z85.Decode(Z85.Encode(input.Data));

            return(processed.SequenceEqual(input.Data)
                   // bucket by common sizes
                   .Classify(input.IsLarge(), "Large (64 .. ∞ bytes)")
                   .Classify(input.IsMedium(), "Medium (24 .. 60 bytes)")
                   .Classify(input.IsSmall(), "Small (8 .. 20 bytes)")
                   .Classify(input.IsTiny(), "Tiny (0 .. 4 bytes)"));
        }
コード例 #4
0
        public Property EncodeDecodeAreDuals_Combined(Mod4Binary input)
        {
            var processed = Z85.Decode(Z85.Encode(input.Data));

            return(processed.SequenceEqual(input.Data)
                   // identify a special case
                   .Trivial(input.Data.Any(b => b == 70))
                   // bucket by common sizes
                   .Classify(input.IsLarge(), "Large (64 .. ∞ bytes)")
                   .Classify(input.IsMedium(), "Medium (24 .. 60 bytes)")
                   .Classify(input.IsSmall(), "Small (8 .. 20 bytes)")
                   .Classify(input.IsTiny(), "Tiny (0 .. 4 bytes)")
                   // gather individual sizes
                   .Collect(input.Data.Length));
        }
コード例 #5
0
ファイル: Z85Encode.cs プロジェクト: lw000/zmq_guide
        public static void Z85Encode(string[] args)
        {
            //
            // Author: metadings
            //

            if (args == null || args.Length < 1)
            {
                args = new string[] { "Hello World!" };
            }

            string txt     = args[0];
            string encoded = Z85.Encode(txt);

            Console.WriteLine("{0}: {1}", txt, encoded);
        }
コード例 #6
0
        private static string Hash([CanBeNull] string filename)
        {
            if (filename == null)
            {
                return(string.Empty);
            }

            using (var crypt = new SHA256Managed())
            {
                var result = crypt.ComputeHash(
                    crypt.ComputeHash(
                        new byte[] { 0, 1, 3, 5, 7, 9 }
                        .Concat(Encoding.ASCII.GetBytes(filename))
                        .ToArray())
                    .Concat(new byte[] { 34, 22, 230, 33, 33, 0 })
                    .ToArray());

                return(Z85.Encode(result));
            }
        }
コード例 #7
0
        public Boolean EncodeDecodeAreDuals_Passing(Mod4Binary input)
        {
            var processed = Z85.Decode(Z85.Encode(input.Data));

            return(processed.SequenceEqual(input.Data));
        }
コード例 #8
0
        public Boolean EncodeDecodeAreDuals_Failing(Byte[] data)
        {
            var processed = Z85.Decode(Z85.Encode(data));

            return(processed.SequenceEqual(data));
        }