public void SimpleSelect() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable <Tick>() select tick.Ticker; string[] tickers = query.ToArray(); Assert.Equal(new string[] { "FOO", "BAR" }, tickers); }
public void SelectWithExpression() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable <Tick>() select tick.Bid * 2; double[] vals = query.ToArray(); Assert.Equal(new double[] { 20.6, 4.8 }, vals); }
public void OrderBy() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR"), CreateTickMsg(5.2, 5.5, "ZIP") }; var query = from tick in msgs.AsQueryable <Tick>() orderby tick.Ask select tick.Ticker; string[] tickers = query.ToArray(); Assert.Equal(new string[] { "BAR", "ZIP", "FOO" }, tickers); // And descending query = from tick in msgs.AsQueryable <Tick>() orderby tick.Bid descending select tick.Ticker; tickers = query.ToArray(); Assert.Equal(new string[] { "FOO", "ZIP", "BAR" }, tickers); }
public void WhereFilter() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable <Tick>() where tick.Bid < 5.0 select tick.Ticker; string[] tickers = query.ToArray(); Assert.Equal(new string[] { "BAR" }, tickers); }
public void BindingParams() { // Make sure we can handle constants that are coming in from outside the query var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR"), CreateTickMsg(5.2, 5.5, "ZIP") }; double bid = 2.4; var query = from tick in msgs.AsQueryable<Tick>() where tick.Bid == bid // bid here comes from outside the query select tick.Ticker; var tickers = query.ToArray(); Assert.Equal(new string[] { "BAR" }, tickers); }
public void FudgeMsgVsIFudgeFieldContainer() { // Make sure that we can work with enumerables of IFudgeFieldContainer, enumerables of IFudgeMsg and also arrays directly var array = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; IEnumerable<IFudgeFieldContainer> containerList = array; IEnumerable<FudgeMsg> msgList = array; var query1 = from tick in containerList.AsQueryable<Tick>() select tick.Ticker; var query2 = from tick in msgList.AsQueryable<Tick>() select tick.Ticker; var query3 = from tick in array.AsQueryable<Tick>() select tick.Ticker; Assert.Equal(query1, query2); Assert.Equal(query1, query3); }
public void FudgeMsgVsIFudgeFieldContainer() { // Make sure that we can work with enumerables of IFudgeFieldContainer, enumerables of IFudgeMsg and also arrays directly var array = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; IEnumerable <IFudgeFieldContainer> containerList = array; IEnumerable <FudgeMsg> msgList = array; var query1 = from tick in containerList.AsQueryable <Tick>() select tick.Ticker; var query2 = from tick in msgList.AsQueryable <Tick>() select tick.Ticker; var query3 = from tick in array.AsQueryable <Tick>() select tick.Ticker; Assert.Equal(query1, query2); Assert.Equal(query1, query3); }
public void BindingParams() { // Make sure we can handle constants that are coming in from outside the query var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR"), CreateTickMsg(5.2, 5.5, "ZIP") }; double bid = 2.4; var query = from tick in msgs.AsQueryable <Tick>() where tick.Bid == bid // bid here comes from outside the query select tick.Ticker; var tickers = query.ToArray(); Assert.Equal(new string[] { "BAR" }, tickers); }
public void ComplexSelect() { // This code is used in the Fudge.Linq namespace doc example. var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable<Tick>() where tick.Ask > 4.0 select new { tick.Ticker, tick.Ask }; var results = query.ToArray(); Assert.Equal(1, results.Length); Assert.Equal("FOO", results[0].Ticker); Assert.Equal(11.1, results[0].Ask); }
public void ComplexSelect() { // This code is used in the Fudge.Linq namespace doc example. var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable <Tick>() where tick.Ask > 4.0 select new { tick.Ticker, tick.Ask }; var results = query.ToArray(); Assert.Equal(1, results.Length); Assert.Equal("FOO", results[0].Ticker); Assert.Equal(11.1, results[0].Ask); }
public void XmlExample() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; XElement tree = new XElement("Ticks", from tick in msgs.AsQueryable <Tick>() select new XElement("Tick", new XElement("Ticker", tick.Ticker), new XElement("Bid", tick.Bid), new XElement("Ask", tick.Ask))); string s = tree.ToString(); //<Ticks> // <Tick> // <Ticker>FOO</Ticker> // <Bid>10.3</Bid> // <Ask>11.1</Ask> // </Tick> // <Tick> // <Ticker>BAR</Ticker> // <Bid>2.4</Bid> // <Ask>3.1</Ask> // </Tick> //</Ticks> }
public void OrderBy() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR"), CreateTickMsg(5.2, 5.5, "ZIP") }; var query = from tick in msgs.AsQueryable<Tick>() orderby tick.Ask select tick.Ticker; string[] tickers = query.ToArray(); Assert.Equal(new string[] { "BAR", "ZIP", "FOO" }, tickers); // And descending query = from tick in msgs.AsQueryable<Tick>() orderby tick.Bid descending select tick.Ticker; tickers = query.ToArray(); Assert.Equal(new string[] { "FOO", "ZIP", "BAR" }, tickers); }
public void XmlExample() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; XElement tree = new XElement("Ticks", from tick in msgs.AsQueryable<Tick>() select new XElement("Tick", new XElement("Ticker", tick.Ticker), new XElement("Bid", tick.Bid), new XElement("Ask", tick.Ask))); string s = tree.ToString(); //<Ticks> // <Tick> // <Ticker>FOO</Ticker> // <Bid>10.3</Bid> // <Ask>11.1</Ask> // </Tick> // <Tick> // <Ticker>BAR</Ticker> // <Bid>2.4</Bid> // <Ask>3.1</Ask> // </Tick> //</Ticks> }
public void WhereFilter() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable<Tick>() where tick.Bid < 5.0 select tick.Ticker; string[] tickers = query.ToArray(); Assert.Equal(new string[] { "BAR" }, tickers); }
public void SimpleSelect() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable<Tick>() select tick.Ticker; string[] tickers = query.ToArray(); Assert.Equal(new string[] {"FOO", "BAR"}, tickers); }
public void SelectWithExpression() { var msgs = new FudgeMsg[] { CreateTickMsg(10.3, 11.1, "FOO"), CreateTickMsg(2.4, 3.1, "BAR") }; var query = from tick in msgs.AsQueryable<Tick>() select tick.Bid * 2; double[] vals = query.ToArray(); Assert.Equal(new double[] { 20.6, 4.8 }, vals); }