public void Should_Process_Update_Message() { var level1MessageHandler = new Level1MessageHandler(); // Arrange var msg = "Q,AAPL,322.7500,40,16:53:23.256494,11,37629453,322.6800,100,322.8700,100,312.6000,318.4000,312.1900,308.9500,ba,873D17,2,17\r\n"; var msgBytes = Encoding.ASCII.GetBytes(msg); var count = msgBytes.Length; level1MessageHandler.Update += message => { }; const int ExecutionsCount = 5; var results = new double[ExecutionsCount]; for (int i = 0; i < ExecutionsCount; i++) { var sw = Stopwatch.StartNew(); for (var j = 0; j < 1000000; j++) { level1MessageHandler.ProcessMessages(msgBytes, count); } sw.Stop(); results[i] = sw.Elapsed.TotalMilliseconds; Console.WriteLine(sw.Elapsed.TotalMilliseconds); } Console.WriteLine($"Min: {results.Min()}"); Console.WriteLine($"Avg: {results.Average()}"); Console.WriteLine($"Max: {results.Max()}"); }
public void Should_Return_FundamentalMessage() { // TODO: full fundamental message assertion var message = @"F,MSFT,5,65.6,28624000,97.9500,67.1400,97.9500,83.8300,,,,,,,,,,,1.49,,0.06,06,,MICROSOFT,MSFT,76.800,1.27,,159851.0,64527.0,03/31/2018,76073.0,7683198,,0.50 02/18/2003,0.50 03/29/1999,,,14,4,7372,24.82,1,21,05/10/2018,05/18/2017,05/10/2018,02/09/2018,85.5400,,,,,511210,,,,"; var values = Level1MessageHandler.GetValuesFromMessage(message); var fundamentalMsg = FundamentalMessage.CreateFundamentalMessage(values); Assert.AreEqual(fundamentalMsg.Symbol, "MSFT"); Assert.AreEqual(fundamentalMsg.ExchangeId, "5"); Assert.AreEqual(fundamentalMsg.OptionsPremiumMultiplier, null); Assert.AreEqual(fundamentalMsg.OptionsMultipleDeliverables, null); }
public void Should_Process_Update_Message() { var level1MessageHandler = new Level1MessageHandler(); // Arrange var msg = "Q,AAPL,322.7500,40,16:53:23.256494,11,37629453,322.6800,100,322.8700,100,312.6000,318.4000,312.1900,308.9500,ba,873D17,\r\n"; var msgBytes = Encoding.ASCII.GetBytes(msg); var count = msgBytes.Length; level1MessageHandler.Update += message => { }; var sw = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { level1MessageHandler.ProcessMessages(msgBytes, count); } sw.Stop(); Console.WriteLine(sw.Elapsed.TotalMilliseconds); }