Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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>
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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>
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }