Best NBi code snippet using NBi.Core.ResultSet.Alteration.Merging.CartesianProductEngine
CartesianProductEngineTest.cs
Source:CartesianProductEngineTest.cs
...12using System.Threading.Tasks;13using Rs = NBi.Core.ResultSet;14namespace NBi.Testing.Core.ResultSet.Alteration.Merging15{16 public class CartesianProductEngineTest17 {18 private (Rs.ResultSet firstRs, IResultSetService service) Initialize(int count)19 {20 var dataTable = new DataTable() { TableName = "MyTable" };21 dataTable.Columns.Add(new DataColumn("Id"));22 dataTable.Columns.Add(new DataColumn("Numeric value", typeof(int)));23 dataTable.Columns.Add(new DataColumn("Boolean value", typeof(bool)));24 for (int i = 0; i < 20; i++)25 dataTable.LoadDataRow(new object[] { "Alpha", i, true }, false);26 dataTable.AcceptChanges();27 var rs1 = new Rs.ResultSet();28 rs1.Load(dataTable);29 IResultSetResolver resolver = null;30 if (count > 0)31 {32 var list = new List<object[]>();33 for (int i = 0; i < count; i++)34 list.Add(new object[] { new DateTime(2020, 1, i + 1), i });35 var args = new ObjectsResultSetResolverArgs(list.ToArray());36 resolver = new ObjectsResultSetResolver(args);37 }38 else39 {40 var args = new EmptyResultSetResolverArgs(new[] { new ColumnNameIdentifier("one"), new ColumnNameIdentifier("two") });41 resolver = new EmptyResultSetResolver(args);42 }43 return (rs1, new ResultSetService(resolver.Execute, new List<Alter>()));44 }45 [Test()]46 public void Execute_TwentyRowsAndOneRow_TwentyRows()47 {48 var (firstRs, secondRs) = Initialize(1);49 var args = new CartesianProductArgs(secondRs);50 var merge = new CartesianProductEngine(args);51 merge.Execute(firstRs);52 Assert.That(firstRs.Rows.Count, Is.EqualTo(20));53 Assert.That(firstRs.Columns.Count, Is.EqualTo(5));54 }55 [Test()]56 public void Execute_TwentyRowsAndFiveRow_HundredRows()57 {58 var (firstRs, secondRs) = Initialize(5);59 var args = new CartesianProductArgs(secondRs);60 var merge = new CartesianProductEngine(args);61 merge.Execute(firstRs);62 Assert.That(firstRs.Rows.Count, Is.EqualTo(100));63 Assert.That(firstRs.Columns.Count, Is.EqualTo(5));64 }65 [Test()]66 public void Execute_TwentyRowsAndZeroRow_ZeroRows()67 {68 var (firstRs, secondRs) = Initialize(0);69 var args = new CartesianProductArgs(secondRs);70 var merge = new CartesianProductEngine(args);71 merge.Execute(firstRs);72 Assert.That(firstRs.Rows.Count, Is.EqualTo(0));73 Assert.That(firstRs.Columns.Count, Is.EqualTo(5));74 }75 }76}...
CartesianProductEngine.cs
Source:CartesianProductEngine.cs
...6using System.Threading.Tasks;7using NBi.Extensibility;8namespace NBi.Core.ResultSet.Alteration.Merging9{10 public class CartesianProductEngine : IMergingEngine11 {12 private CartesianProductArgs Args { get; }13 public CartesianProductEngine(CartesianProductArgs args)14 => Args = args;15 public IResultSet Execute(IResultSet rs)16 {17 var secondRs = Args.ResultSetResolver.Execute();18 var initialColumnCount = rs.Columns.Count;19 foreach (DataColumn dataColumn in secondRs.Columns)20 {21 while (rs.Columns.Contains(dataColumn.ColumnName))22 dataColumn.ColumnName = $"{dataColumn.ColumnName}_1";23 var newColumn = new DataColumn(dataColumn.ColumnName, dataColumn.DataType);24 rs.Columns.Add(newColumn);25 }26 if (secondRs.Rows.Count == 0 || secondRs.Columns.Count == 0)27 {...
MergingFactory.cs
Source:MergingFactory.cs
...17 case ColumnIdentity.Ordinal: return new UnionByOrdinalEngine(x.ResultSetResolver);18 case ColumnIdentity.Name: return new UnionByNameEngine(x.ResultSetResolver);19 default: throw new NotImplementedException();20 }21 case CartesianProductArgs x: return new CartesianProductEngine(x);22 default: throw new ArgumentException();23 }24 }25 }26}...
CartesianProductEngine
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using NBi.Core.ResultSet.Alteration.Merging;7{8 {9 static void Main(string[] args)10 {11 CartesianProductEngine cartesianProductEngine = new CartesianProductEngine();12 cartesianProductEngine.Execute();13 Console.ReadKey();14 }15 }16}17using System;18using System.Collections.Generic;19using System.Linq;20using System.Text;21using System.Threading.Tasks;22using NBi.Core.ResultSet;23using NBi.Core.ResultSet.Alteration.Merging;24using NBi.Core.ResultSet.Resolver;25using NBi.Core.Calculation;26{27 {28 public void Execute()29 {30 ResultSet rs1 = new ResultSet();31 rs1.Columns.Add(new Column("Id", ColumnType.Numeric));32 rs1.Columns.Add(new Column("Name", ColumnType.Text));33 rs1.Rows.Add(new Row(new object[] { 1, "A" }));34 rs1.Rows.Add(new Row(new object[] { 2, "B" }));35 ResultSet rs2 = new ResultSet();36 rs2.Columns.Add(new Column("Id", ColumnType.Numeric));37 rs2.Columns.Add(new Column("Name", ColumnType.Text));38 rs2.Rows.Add(new Row(new object[] { 3, "C" }));39 rs2.Rows.Add(new Row(new object[] { 4, "D" }));40 ResultSetResolver rsr1 = new ResultSetResolver();41 rsr1.ResultSet = rs1;42 ResultSetResolver rsr2 = new ResultSetResolver();43 rsr2.ResultSet = rs2;44 CartesianProductEngine cartesianProductEngine = new CartesianProductEngine();45 ResultSet rs = cartesianProductEngine.Execute(rsr1, rsr2);46 foreach (Row row in rs.Rows)47 {48 foreach (object item in row)49 {50 Console.Write(item + " ");51 }52 Console.WriteLine();53 }54 }55 }56}
CartesianProductEngine
Using AI Code Generation
1using NBi.Core.ResultSet.Alteration.Merging;2using System;3using System.Collections.Generic;4using System.Linq;5using System.Text;6using System.Threading.Tasks;7{8 {9 static void Main(string[] args)10 {11 var cartesianProductEngine = new CartesianProductEngine();12 var list1 = new List<string>() { "A", "B", "C" };13 var list2 = new List<string>() { "1", "2", "3" };14 var cartesianProduct = cartesianProductEngine.Execute(list1, list2);15 foreach (var item in cartesianProduct)16 Console.WriteLine(item);17 Console.Read();18 }19 }20}
CartesianProductEngine
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Data;4using System.Linq;5using System.Text;6using System.Threading.Tasks;7using NBi.Core.ResultSet.Alteration.Merging;8{9 {10 public DataTable Merge(DataTable x, DataTable y)11 {12 var result = new DataTable();13 result.Merge(x);14 result.Merge(y);15 return result;16 }17 }18}19using System;20using System.Collections.Generic;21using System.Data;22using System.Linq;23using System.Text;24using System.Threading.Tasks;25using NBi.Core.ResultSet.Alteration.Merging;26{27 {28 public DataTable Merge(DataTable x, DataTable y)29 {30 var result = new DataTable();31 result.Merge(x);32 result.Merge(y);33 return result;34 }35 }36}37using System;38using System.Collections.Generic;39using System.Data;40using System.Linq;41using System.Text;42using System.Threading.Tasks;43using NBi.Core.ResultSet.Alteration.Merging;44{45 {46 public DataTable Merge(DataTable x, DataTable y)47 {48 var result = new DataTable();49 result.Merge(x);50 result.Merge(y);51 return result;52 }53 }54}55using System;56using System.Collections.Generic;57using System.Data;58using System.Linq;59using System.Text;60using System.Threading.Tasks;61using NBi.Core.ResultSet.Alteration.Merging;62{63 {64 public DataTable Merge(DataTable x, DataTable y)65 {66 var result = new DataTable();67 result.Merge(x);68 result.Merge(y);69 return result;70 }71 }72}
CartesianProductEngine
Using AI Code Generation
1using NBi.Core.ResultSet.Alteration.Merging;2using System;3using System.Collections.Generic;4{5 {6 static void Main(string[] args)7 {8 List<string> list1 = new List<string>();9 list1.Add("a");10 list1.Add("b");11 list1.Add("c");12 list1.Add("d");13 List<int> list2 = new List<int>();14 list2.Add(1);15 list2.Add(2);16 list2.Add(3);17 list2.Add(4);18 List<double> list3 = new List<double>();19 list3.Add(3.14);20 list3.Add(1.618);21 list3.Add(2.718);22 list3.Add(1.414);23 List<List<object>> list = new List<List<object>>();24 list.Add(list1.ConvertAll<object>(i => i));25 list.Add(list2.ConvertAll<object>(i => i));26 list.Add(list3.ConvertAll<object>(i => i));27 CartesianProductEngine engine = new CartesianProductEngine();28 var result = engine.Execute(list);29 foreach (var row in result)30 {31 foreach (var cell in row)32 {33 Console.Write(cell + " ");34 }35 Console.WriteLine();36 }37 Console.WriteLine("Press any key to exit.");38 Console.ReadKey();39 }40 }41}
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!