コード例 #1
0
ファイル: GroupByFilterTest.cs プロジェクト: ywscr/NBi
        public void Execute_Top2None_ResultSetReduced()
        {
            var args     = new ObjectsResultSetResolverArgs(new[] { new object[] { "alpha", 1 }, new object[] { "alpha", 2 }, new object[] { "beta", 3 }, new object[] { "alpha", 4 } });
            var resolver = new ObjectsResultSetResolver(args);
            var rs       = resolver.Execute();

            var filter = new TopRanking(2, new ColumnOrdinalIdentifier(1), ColumnType.Numeric);

            var rankingByGroup = new GroupByFilter(filter, new NoneGrouping());

            var result = rankingByGroup.Apply(rs);

            Assert.That(result.Table.Rows, Has.Count.EqualTo(2));
            Assert.That(result.Table.Rows.Cast <DataRow>().Where(x => x[0].ToString() == "alpha").Count(), Is.EqualTo(1));
            Assert.That(result.Table.Rows.Cast <DataRow>().Where(x => x[0].ToString() == "beta").Count(), Is.EqualTo(1));
        }
コード例 #2
0
ファイル: TopRankingTest.cs プロジェクト: ywscr/NBi
        public void Apply_Rows_Success(object[] values, ColumnType columnType, int index)
        {
            var i    = 0;
            var objs = values.Select(x => new object[] { ++i, x }).ToArray();

            var args     = new ObjectsResultSetResolverArgs(objs);
            var resolver = new ObjectsResultSetResolver(args);
            var rs       = resolver.Execute();

            var ranking    = new TopRanking(new ColumnOrdinalIdentifier(1), columnType, null, null);
            var filteredRs = ranking.Apply(rs);

            Assert.That(filteredRs.Rows.Count, Is.EqualTo(1));
            Assert.That(filteredRs.Rows[0].ItemArray[0], Is.EqualTo(index));
            Assert.That(filteredRs.Rows[0].ItemArray[1], Is.EqualTo(values.Max()));
        }
コード例 #3
0
ファイル: TopRankingTest.cs プロジェクト: ywscr/NBi
        public void Apply_Alias_Success(object[] values, ColumnType columnType, int index)
        {
            var i    = 0;
            var objs = values.Select(x => new object[] { ++i, x }).ToArray();

            var args     = new ObjectsResultSetResolverArgs(objs);
            var resolver = new ObjectsResultSetResolver(args);
            var rs       = resolver.Execute();

            var alias = Mock.Of <IColumnAlias>(x => x.Column == 1 && x.Name == "myValue");

            var ranking    = new TopRanking(new ColumnNameIdentifier("myValue"), columnType, Enumerable.Repeat(alias, 1), null);
            var filteredRs = ranking.Apply(rs);

            Assert.That(filteredRs.Rows.Count, Is.EqualTo(1));
            Assert.That(filteredRs.Rows[0].ItemArray[0], Is.EqualTo(index));
            Assert.That(filteredRs.Rows[0].ItemArray[1], Is.EqualTo(values.Max()));
        }
コード例 #4
0
ファイル: GroupByFilterTest.cs プロジェクト: ywscr/NBi
        public void Execute_Top2OneKey_ResultSetReduced()
        {
            var args     = new ObjectsResultSetResolverArgs(new[] { new object[] { "alpha", 1 }, new object[] { "alpha", 2 }, new object[] { "beta", 3 }, new object[] { "alpha", 4 } });
            var resolver = new ObjectsResultSetResolver(args);
            var rs       = resolver.Execute();

            var settings = new SettingsOrdinalResultSet(KeysChoice.First, ValuesChoice.None, NumericAbsoluteTolerance.None);
            var grouping = new OrdinalColumnGrouping(settings, Context.None);

            var filter = new TopRanking(2, new ColumnOrdinalIdentifier(1), ColumnType.Numeric);

            var rankingByGroup = new GroupByFilter(filter, grouping);

            var result = rankingByGroup.Apply(rs);

            Assert.That(result.Table.Rows, Has.Count.EqualTo(3));
            Assert.That(result.Table.Rows.Cast <DataRow>().Where(x => x[0].ToString() == "alpha").Count(), Is.EqualTo(2));
            Assert.That(result.Table.Rows.Cast <DataRow>().Where(x => x[0].ToString() == "beta").Count(), Is.EqualTo(1));
        }
コード例 #5
0
        public void Apply_Larger_Success(object[] values, ColumnType columnType, int[] index)
        {
            var i    = 0;
            var objs = values.Select(x => new object[] { ++i, x }).ToArray();

            var args     = new ObjectsResultSetResolverArgs(objs);
            var resolver = new ObjectsResultSetResolver(args);
            var rs       = resolver.Execute();

            var ranking    = new TopRanking(10, new ColumnOrdinalIdentifier(1), columnType, null, null);
            var filteredRs = ranking.Apply(rs);

            Assert.That(filteredRs.Rows.Count, Is.EqualTo(values.Count()));
            Assert.That(filteredRs.Rows[0].ItemArray[0], Is.EqualTo(index[0].ToString()));
            Assert.That(filteredRs.Rows[0].ItemArray[1], Is.EqualTo(values.Max()));
            Assert.That(filteredRs.Rows[1].ItemArray[0], Is.EqualTo(index[1].ToString()));
            Assert.That(filteredRs.Rows[1].ItemArray[1], Is.EqualTo(values.Except(Enumerable.Repeat(values.Max(), 1)).Max()));
            Assert.That(filteredRs.Rows[values.Count() - 1].ItemArray[0], Is.EqualTo(index[2].ToString()));
            Assert.That(filteredRs.Rows[values.Count() - 1].ItemArray[1], Is.EqualTo(values.Min()));
        }