public static string Serialize(string identifier, Type storageType, object instance, bool encryptSaveFile) { var serializer = new fsSerializer(); fsData data; GetJsonConverters(ref serializer); //serialize data serializer.TrySerialize(storageType, instance, out data).AssertSuccessWithoutWarnings(); // 5.1 Serialize data string serializedData = (encryptSaveFile) ? fsJsonPrinter.CompressedJson(data) : fsJsonPrinter.PrettyJson(data); // 5.2 Create Json string if (encryptSaveFile) { serializedData = StringCompression.Compress(serializedData); // 5.3 Compress Json string } if (encryptSaveFile) { serializedData = StringCipher.Encrypt(serializedData, encryptionPassword); // 5.4 Encrpyt Json string } //write identifier string identifierStart = "<" + identifier + ">\n"; string identifierEnd = "\n</" + identifier + ">\n"; serializedData = serializedData.Insert(0, identifierStart); serializedData += identifierEnd; return(serializedData); }
private bool SetJsonInfo() { // Create the sidecar json object SidecarJson ??= new SidecarFileJsonSchema(); // Schema version SidecarJson.SchemaVersion = SidecarFileJsonSchema.CurrentSchemaVersion; // Media file info MediaFileInfo.Refresh(); SidecarJson.MediaLastWriteTimeUtc = MediaFileInfo.LastWriteTimeUtc; SidecarJson.MediaLength = MediaFileInfo.Length; SidecarJson.MediaHash = ComputeHash(); // Tool version info SidecarJson.FfProbeToolVersion = Tools.FfProbe.Info.Version; SidecarJson.MkvMergeToolVersion = Tools.MkvMerge.Info.Version; SidecarJson.MediaInfoToolVersion = Tools.MediaInfo.Info.Version; // Compressed tool info SidecarJson.FfProbeInfoData = StringCompression.Compress(FfProbeInfoJson); SidecarJson.MkvMergeInfoData = StringCompression.Compress(MkvMergeInfoJson); SidecarJson.MediaInfoData = StringCompression.Compress(MediaInfoXml); // State // TODO: Only update tool and file info if changed, else just update state SidecarJson.State = State; return(true); }
public void TestStringCompression() { // solution #1 ineffective string comparison Assert.Equal("a2b1c5a3", StringCompression.CompressBad("aabcccccaaa")); // solution #2 with string builder Assert.Equal("a2b1c5a3", StringCompression.CompressStringBuilder("aabcccccaaa")); // solution #3 with added check if compressed string is longer than initial one Assert.Equal("a2b1c5a3", StringCompression.Compress("aabcccccaaa")); }
public void StringCompression_ShouldNotReturnACompressedString_WhenTheCompressedStringIsNotSmallerThanTheOriginalString_Testcase_3() { // Arrange string input = "abcdefghijklmnopqrstuvwqyz"; // Act string output = StringCompression.Compress(input); // Assert Assert.AreEqual("abcdefghijklmnopqrstuvwqyz", output); }
public void StringCompression_ShouldNotReturnACompressedString_WhenTheCompressedStringIsNotSmallerThanTheOriginalString_Testcase_2() { // Arrange string input = "aabbccddeeffgghhiijjkk"; // Act string output = StringCompression.Compress(input); // Assert Assert.AreEqual("aabbccddeeffgghhiijjkk", output); }
public void StringCompressionShouldCompressStringSuccessfully_Testcase_3() { // Arrange string input = "hhhhbboooooaaa"; // Act string output = StringCompression.Compress(input); // Assert Assert.AreEqual("h4b2o5a3", output); }
public void StringCompressionShouldCompressStringSuccessfully_Testcase_2() { // Arrange string input = "aabbccc"; // Act string output = StringCompression.Compress(input); // Assert Assert.AreEqual("a2b2c3", output); }
public void Compress(string input, string expected) { Assert.Equal(expected, StringCompression.Compress(input)); }
public void CompressStringWithDictionary(string input, string expectedOutput) { var result = StringCompression.Compress(input); Assert.Equal(expectedOutput, result); }
public void CanCompress(string input, string expected) { var actual = StringCompression.Compress(input); Assert.Equal(expected, actual); }