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)); }
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))); }
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)")); }
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)); }
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); }
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)); } }
public Boolean EncodeDecodeAreDuals_Passing(Mod4Binary input) { var processed = Z85.Decode(Z85.Encode(input.Data)); return(processed.SequenceEqual(input.Data)); }
public Boolean EncodeDecodeAreDuals_Failing(Byte[] data) { var processed = Z85.Decode(Z85.Encode(data)); return(processed.SequenceEqual(data)); }