public void Parse_Valid() { var raw = LogRawEvent.Parse("[Wed Feb 20 18:02:00 2019] LOADING, PLEASE WAIT..."); Assert.NotNull(raw); Assert.Equal(new DateTime(2019, 2, 20, 18, 2, 00).ToUniversalTime(), raw.Timestamp); Assert.Equal("LOADING, PLEASE WAIT...", raw.Text); }
public void Parse_Invalid() { var raw = LogRawEvent.Parse(""); Assert.Null(raw); raw = LogRawEvent.Parse("Wed Feb 20 18:02:00 2019] LOADING, PLEASE WAIT..."); Assert.Null(raw); }
/// <summary> /// Perform timing tests on all parsers. /// </summary> public static void TimeParsers(LogReader file) { var parser = new LogParser(); parser.Player = LogOpenEvent.GetPlayerFromFileName(file.Path); // load raw log lines once var etimer = Stopwatch.StartNew(); var events = new List <LogRawEvent>(); while (true) { var s = file.ReadLine(); if (s == null) { break; } var e = LogRawEvent.Parse(s); if (e != null) { events.Add(e); } } ; Console.Error.WriteLine("Loaded {0} events in {1}", events.Count, etimer.Elapsed); // time individual parsers foreach (var p in parser.Parsers) { var ptimer = Stopwatch.StartNew(); var pcount = 0; foreach (var e in events) { var result = p.Invoke(e); if (result != null && !(result is LogRawEvent)) { pcount++; } } Console.Error.WriteLine("{0,-20} {1,10} in {2}", p.Method.DeclaringType.Name, pcount, ptimer.Elapsed); } Console.WriteLine("***"); }