public void SaveAndRestoreChats() { ChatRuntime rtOut, rtIn; var testfile = AppDomain.CurrentDomain.BaseDirectory; testfile += "../../../../dialogic/data/noglobal.gs"; rtIn = new ChatRuntime(Client.AppConfig.TAC); rtIn.ParseFile(new FileInfo(testfile)); var bytes = serializer.ToBytes(rtIn); rtOut = ChatRuntime.Create(serializer, bytes, AppConfig.TAC); // check they are identical Assert.That(rtIn, Is.EqualTo(rtOut)); var inCmds = rtIn.Chats(); var outCmds = rtOut.Chats(); Assert.That(rtOut.ToString(), Is.EqualTo(rtIn.ToString())); Assert.That(inCmds.Count, Is.EqualTo(outCmds.Count)); for (int i = 0; i < inCmds.Count; i++) { var chat1 = inCmds.ElementAt(i); var chat2 = outCmds.ElementAt(i); Assert.That(chat1.text, Is.EqualTo(chat2.text)); Assert.That(chat1.commands.Count, Is.EqualTo(chat2.commands.Count)); Assert.That(chat1.ToTree(), Is.EqualTo(chat2.ToTree())); } }
/// <summary> /// Create an engine from a script file or folder script files /// </summary> /// <param name="fileOrFolder">File or folder.</param> public MockGameEngine(FileInfo fileOrFolder) { var config = AppConfig.TAC; var saveFile = new FileInfo("./runtime.ser"); ChatRuntime tmp = new ChatRuntime(config); tmp.ParseFile(fileOrFolder); serializer = new SerializerMessagePack(); tmp.Save(serializer, saveFile); dialogic = ChatRuntime.Create(serializer, saveFile, config); dialogic.Run(); }
public void SerializationPerformance() { if (!RUN_PROFILING_TESTS) { return; } ChatRuntime.VERIFY_UNIQUE_CHAT_LABELS = false; ChatRuntime rtOut, rtIn; byte[] bytes = null; int iterations = 10; var testfile = AppDomain.CurrentDomain.BaseDirectory; testfile += "../../../../dialogic/data/allchats.gs"; rtIn = new ChatRuntime(Client.AppConfig.TAC); var watch = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < iterations; i++) { rtIn.ParseFile(new FileInfo(testfile)); } var numChats = rtIn.Chats().Count; watch.Stop(); Console.WriteLine("Parsed " + numChats + " chats in " + watch.ElapsedMilliseconds / 1000.0 + "s"); for (int i = 0; i < iterations; i++) { watch = System.Diagnostics.Stopwatch.StartNew(); bytes = serializer.ToBytes(rtIn); watch.Stop(); Console.WriteLine("Serialize #" + i + ": " + watch.ElapsedMilliseconds / 1000.0 + "s"); } for (int i = 0; i < iterations; i++) { watch = System.Diagnostics.Stopwatch.StartNew(); rtOut = ChatRuntime.Create(serializer, bytes, AppConfig.TAC); watch.Stop(); Console.WriteLine("Deserialize #" + i + ": " + watch.ElapsedMilliseconds / 1000.0 + "s"); } }
public static void Profiling(string[] args) { ChatRuntime.VERIFY_UNIQUE_CHAT_LABELS = false; AppConfig config = AppConfig.TAC; ISerializer serializer = new SerializerMessagePack(); ChatRuntime rtOut, rtIn; byte[] bytes = null; int iterations = 10; var testfile = AppDomain.CurrentDomain.BaseDirectory; testfile += "../../../../dialogic/data/allchats.gs"; rtIn = new ChatRuntime(config); var watch = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < iterations; i++) { rtIn.ParseFile(new FileInfo(testfile)); } var numChats = rtIn.Chats().Count; watch.Stop(); Console.WriteLine("Parsed " + numChats + " chats in " + watch.ElapsedMilliseconds / 1000.0 + "s"); for (int i = 0; i < iterations; i++) { watch = System.Diagnostics.Stopwatch.StartNew(); bytes = serializer.ToBytes(rtIn); watch.Stop(); Console.WriteLine("Serialize #" + i + ": " + watch.ElapsedMilliseconds / 1000.0 + "s"); } for (int i = 0; i < iterations; i++) { watch = System.Diagnostics.Stopwatch.StartNew(); rtOut = ChatRuntime.Create(serializer, bytes, config); watch.Stop(); Console.WriteLine("Deserialize #" + i + ": " + watch.ElapsedMilliseconds / 1000.0 + "s"); } }
public static string SendVisualizerResponse(HttpListenerRequest request) { var testfile = "data/network.gs"; var html = PageContent.Replace("%%URL%%", SERVER_URL); var labels = new Dictionary <string, JsonNode>(); ISerializer serial = new Client.SerializerMessagePack(); runtime = new ChatRuntime(Client.AppConfig.TAC); runtime.ParseFile(new FileInfo(testfile)); runtime.Chats().ForEach(chat => { labels[chat.text] = new JsonNode(chat.text, chat.OutgoingLabels(), chat.ToTree()); //JsonConvert.SerializeObject(ChatData.Create(chat))); }); var json = NodesToJSON(labels); html = html.Replace("%%DATA%%", json); Console.WriteLine(json); return(html); }