// Helper to checksum a json file
        static string Check(string json)
        {
            json = json.Replace('\'', '\"'); // easier esaping
            var bytes = Encoding.UTF8.GetBytes(json);

            byte[] checksum = ChecksumMaker.ChecksumFile <Sha256HashMaker>("test.json", bytes);

            var str = ChecksumMaker.ChecksumToString(checksum);

            return(str);
        }
        public void TestChecksum(string filename, string expectedChecksum, int expectedFileCount, string file, string innerExpectedChecksum)
        {
            var root = Path.Combine(Environment.CurrentDirectory, "Apps", filename);

            // Checksums should be very stable.
            var actualChecksum = ChecksumMaker.GetChecksum(root);

            Assert.AreEqual(expectedChecksum, actualChecksum.wholeChecksum);
            Assert.AreEqual(expectedFileCount, actualChecksum.perFileChecksum.Count);
            Assert.IsTrue(actualChecksum.perFileChecksum.TryGetValue(file, out var perFileChecksum));
            Assert.AreEqual(innerExpectedChecksum, perFileChecksum);
        }
        [DataRow("a\t\r\nb", "a b")]  // other chars
        public void TestNormWhitespace(string test, string expected)
        {
            var val = ChecksumMaker.NormFormulaWhitespace(test);

            Assert.AreEqual(expected, val);
        }