Exemple #1
0
        private static void DistinctTest(Table table, string column, string where)
        {
            int iterations = 1000;

            DistinctQuery  query  = new DistinctQuery(column, where, 100);
            DistinctResult result = null;

            Trace.Write("Aggregating Bugs...");

            for (int i = 0; i < iterations; ++i)
            {
                result = table.Query(query);
            }

            ShowResult(result.Values);
        }
Exemple #2
0
        public void ITable_Distinct(Func <ITable> factoryMethod)
        {
            // Define columns and add sample data
            ITable table = factoryMethod();

            AddSampleData(table);

            // Get Distinct Priority for all bugs, verify three (0, 1, 3)
            DistinctQuery  query  = new DistinctQuery("Priority", "", 5);
            DistinctResult result = table.Query(query);

            // sort the results because order is not garenteed by distinct query
            Array values = result.Values.GetColumn(0);

            Array.Sort(values);

            Assert.AreEqual("0, 1, 3", values.Join(", "));
            Assert.IsTrue(result.AllValuesReturned);

            // Verify the result converts to a dimension properly
            AggregationDimension dimension = result.ToAggregationDimension();

            Assert.AreEqual("Query [[Priority] = 0,[Priority] = 1,[Priority] = 3]", dimension.ToString());

            // Verify distinct priority where priority is not 1 has only two values
            query.Where = QueryParser.Parse("Priority != 1");
            result      = table.Query(query);

            // sort the results because order is not garenteed by distinct query
            values = result.Values.GetColumn(0);
            Array.Sort(values);

            Assert.AreEqual("0, 3", result.Values.GetColumn(0).Join(", "));
            Assert.IsTrue(result.AllValuesReturned);

            // Verify if we only ask for one value, query reports more values left
            query.Count = 1;
            result      = table.Query(query);

            // either value could come back, it's a race to whichever partition completes first
            Assert.IsTrue(
                ("0" == result.Values.GetColumn(0).Join(", ")) ||
                ("3" == result.Values.GetColumn(0).Join(", ")));

            Assert.IsFalse(result.AllValuesReturned);
        }
Exemple #3
0
        public void ITable_DistinctTop(Func <ITable> factoryMethod)
        {
            // Define columns and add sample data
            ITable table = factoryMethod();

            AddSampleData(table);

            // Get Distinct Priority for all bugs, verify three (3, 0, 1)
            DistinctQueryTop query  = new DistinctQueryTop("Priority", "", 5);
            DistinctResult   result = table.Query(query);

            // Verify "3" is first, it's in 3 items, all values are returned, three distinct were returned
            Assert.AreEqual("3", result.Values[0, 0].ToString());
            Assert.AreEqual("3", result.Values[0, 1].ToString());
            Assert.AreEqual(3, result.Values.RowCount);
            Assert.AreEqual(5, result.Total);
            Assert.IsTrue(result.AllValuesReturned);

            // Verify distinct priority where priority is not 1 has only two values
            query.Where = QueryParser.Parse("Priority != 1");
            result      = table.Query(query);

            Assert.AreEqual("3, 0", result.Values.GetColumn(0).Join(", "));
            Assert.AreEqual(2, result.Values.RowCount);
            Assert.AreEqual(4, result.Total);
            Assert.IsTrue(result.AllValuesReturned);

            // Verify the result converts to a dimension properly
            AggregationDimension dimension = result.ToAggregationDimension();

            Assert.AreEqual("Query [[Priority] = 3,[Priority] = 0]", dimension.ToString());

            // Verify if we only ask for one value, query reports more values left
            query.Count = 1;
            result      = table.Query(query);
            Assert.AreEqual("3", result.Values[0, 0].ToString());
            Assert.AreEqual(1, result.Values.RowCount);
            Assert.IsFalse(result.AllValuesReturned);
        }