public void Execute_UniqueSequence_CorrectResult() { var resolver = new SequenceCombinationResultSetResolver( new SequenceResultSetResolverArgs( new ListSequenceResolver <decimal>( new ListSequenceResolverArgs(new[] { new LiteralScalarResolver <decimal>(1), new LiteralScalarResolver <decimal>(2), }) ) ) ); var rs = resolver.Execute(); Assert.That(rs.Columns.Count, Is.EqualTo(1)); Assert.That(rs.Rows.Count, Is.EqualTo(2)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <decimal>(0) == 1), Is.EqualTo(1)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <decimal>(0) == 2), Is.EqualTo(1)); }
public void Execute_OneSequence_Initialize() { var args = new SequenceCombinationResultSetResolverArgs(new[] { new ListSequenceResolver <DateTime>( new ListSequenceResolverArgs(new[] { new LiteralScalarResolver <string>("2015-01-01"), new LiteralScalarResolver <string>("2016-01-01"), new LiteralScalarResolver <string>("2017-01-01"), }) ) }); var resolver = new SequenceCombinationResultSetResolver(args); var rs = resolver.Execute(); Assert.That(rs.Columns.Count, Is.EqualTo(1)); Assert.That(rs.Rows.Count, Is.EqualTo(3)); Assert.That(rs.Rows[0][0], Is.EqualTo(new DateTime(2015, 1, 1))); Assert.That(rs.Rows[1][0], Is.EqualTo(new DateTime(2016, 1, 1))); Assert.That(rs.Rows[2][0], Is.EqualTo(new DateTime(2017, 1, 1))); }
public void Execute_ThreeSequences_CartesianProduct() { var resolver = new SequenceCombinationResultSetResolver( new SequenceCombinationResultSetResolverArgs(new ISequenceResolver[] { new ListSequenceResolver <decimal>( new ListSequenceResolverArgs(new[] { new LiteralScalarResolver <decimal>(1), new LiteralScalarResolver <decimal>(2), }) ), new ListSequenceResolver <DateTime>( new ListSequenceResolverArgs(new[] { new LiteralScalarResolver <string>("2015-01-01"), new LiteralScalarResolver <string>("2016-01-01"), new LiteralScalarResolver <string>("2017-01-01"), }) ), new ListSequenceResolver <string>( new ListSequenceResolverArgs(new[] { new LiteralScalarResolver <string>("fr"), new LiteralScalarResolver <string>("be"), }) ), }) ); var rs = resolver.Execute(); Assert.That(rs.Columns.Count, Is.EqualTo(3)); Assert.That(rs.Rows.Count, Is.EqualTo(12)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <decimal>(0) == 1), Is.EqualTo(6)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <decimal>(0) == 2), Is.EqualTo(6)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <DateTime>(1).Year == 2015), Is.EqualTo(4)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <DateTime>(1).Year == 2016), Is.EqualTo(4)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <DateTime>(1).Year == 2017), Is.EqualTo(4)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <string>(2) == "fr"), Is.EqualTo(6)); Assert.That(rs.Rows.Cast <DataRow>().Count(x => x.Field <string>(2) == "be"), Is.EqualTo(6)); }
public void Execute_TwoSequences_CartesianProduct() { var resolver = new SequenceCombinationResultSetResolver( new SequenceCombinationResultSetResolverArgs(new ISequenceResolver[] { new ListSequenceResolver <DateTime>( new ListSequenceResolverArgs(new[] { new LiteralScalarResolver <string>("2015-01-01"), new LiteralScalarResolver <string>("2016-01-01"), new LiteralScalarResolver <string>("2017-01-01"), }) ), new ListSequenceResolver <string>( new ListSequenceResolverArgs(new[] { new LiteralScalarResolver <string>("fr"), new LiteralScalarResolver <string>("be"), }) ), }) ); var rs = resolver.Execute(); Assert.That(rs.Columns.Count, Is.EqualTo(2)); Assert.That(rs.Rows.Count, Is.EqualTo(6)); Assert.That(rs.Rows[0][0], Is.EqualTo(new DateTime(2015, 1, 1))); Assert.That(rs.Rows[1][0], Is.EqualTo(new DateTime(2016, 1, 1))); Assert.That(rs.Rows[2][0], Is.EqualTo(new DateTime(2017, 1, 1))); Assert.That(rs.Rows[3][0], Is.EqualTo(new DateTime(2015, 1, 1))); Assert.That(rs.Rows[4][0], Is.EqualTo(new DateTime(2016, 1, 1))); Assert.That(rs.Rows[5][0], Is.EqualTo(new DateTime(2017, 1, 1))); Assert.That(rs.Rows[0][1], Is.EqualTo("fr")); Assert.That(rs.Rows[1][1], Is.EqualTo("fr")); Assert.That(rs.Rows[2][1], Is.EqualTo("fr")); Assert.That(rs.Rows[3][1], Is.EqualTo("be")); Assert.That(rs.Rows[4][1], Is.EqualTo("be")); Assert.That(rs.Rows[5][1], Is.EqualTo("be")); }