Best NBi code snippet using NBi.Core.ResultSet.Lookup.LookupMatchesAnalyzer.LookupMatchesAnalyzer
LookupMatchesAnalyzerTest.cs
Source:LookupMatchesAnalyzerTest.cs
...10using System.Text;11using System.Threading.Tasks;12namespace NBi.Testing.Core.ResultSet.Lookup13{14 public class LookupMatchesAnalyzerTest15 {16 protected DataTable BuildDataTable(object[] keys, object[] values)17 {18 var ds = new DataSet();19 var dt = ds.Tables.Add("myTable");20 var keyCol = dt.Columns.Add("myKey");21 var valueCol = dt.Columns.Add("myValue");22 for (int i = 0; i < keys.Length; i++)23 {24 var dr = dt.NewRow();25 dr.SetField<object>(keyCol, keys[i]);26 dr.SetField<object>(valueCol, values[i]);27 dt.Rows.Add(dr);28 }29 return dt;30 }31 protected DataTable BuildDataTable(object[] keys, object[] secondKeys, object[] values)32 {33 var ds = new DataSet();34 var dt = ds.Tables.Add("myTable");35 var keyCol = dt.Columns.Add("zero");36 var secondKeyCol = dt.Columns.Add("one");37 var valueCol = dt.Columns.Add("two");38 for (int i = 0; i < keys.Length; i++)39 {40 var dr = dt.NewRow();41 dr.SetField<object>(keyCol, keys[i]);42 dr.SetField<object>(secondKeyCol, secondKeys[i]);43 dr.SetField<object>(valueCol, values[i]);44 dt.Rows.Add(dr);45 }46 return dt;47 }48 private ColumnMappingCollection BuildColumnMapping(int count, int shift = 0, ColumnType columnType = ColumnType.Text)49 {50 var mappings = new ColumnMappingCollection();51 for (int i = 0; i < count; i++)52 mappings.Add(new ColumnMapping(new ColumnOrdinalIdentifier(i + shift), new ColumnOrdinalIdentifier(i + shift), columnType));53 return mappings;54 }55 [Test]56 public void Execute_ReferenceLargerThanCandidateMatchingValue_NoViolation()57 {58 var candidate = BuildDataTable(new[] { "Key0", "Key1" }, new object[] { 0, 1 });59 var reference = BuildDataTable(new[] { "Key0", "Key1", "Key2" }, new object[] { 0, 1, 1 });60 var analyzer = new LookupMatchesAnalyzer(BuildColumnMapping(1), BuildColumnMapping(1,1));61 var violations = analyzer.Execute(candidate, reference);62 Assert.That(violations.Count(), Is.EqualTo(0));63 }64 [Test]65 public void Execute_ReferenceLargerThanCandidateMatchingValueWhenNoToleranceApplied_OneViolation()66 {67 var candidate = BuildDataTable(new[] { "Key0", "Key1" }, new object[] { 0, 1 });68 var reference = BuildDataTable(new[] { "Key0", "Key1", "Key2" }, new object[] { 0, 2, 1 });69 var analyzer = new LookupMatchesAnalyzer(BuildColumnMapping(1), BuildColumnMapping(1, 1, ColumnType.Numeric));70 var violations = analyzer.Execute(candidate, reference);71 Assert.That(violations.Count(), Is.EqualTo(1));72 }73 [Test]74 public void Execute_ReferenceLargerThanCandidateMatchingValueWhenToleranceApplied_NoViolation()75 {76 var candidate = BuildDataTable(new[] { "Key0", "Key1" }, new object[] { 0, 1 });77 var reference = BuildDataTable(new[] { "Key0", "Key1", "Key2" }, new object[] { 0, 2, 1 });78 var tolerances = new Dictionary<IColumnIdentifier, Tolerance>() { { new ColumnIdentifierFactory().Instantiate("#1"), new NumericAbsoluteTolerance(1, SideTolerance.Both) } };79 80 var analyzer = new LookupMatchesAnalyzer(BuildColumnMapping(1), BuildColumnMapping(1, 1, ColumnType.Numeric), tolerances);81 var violations = analyzer.Execute(candidate, reference);82 Assert.That(violations.Count(), Is.EqualTo(0));83 }84 [Test]85 public void Execute_ReferenceLargerThanCandidateDuplicateKeys_NoViolation()86 {87 var candidate = BuildDataTable(new[] { "Key0", "Key1" }, new object[] { 0, 1 });88 var reference = BuildDataTable(new[] { "Key0", "Key1", "Key2", "Key1", "Key2" }, new object[] { 0, 2, 3, 1, 3 });89 var analyzer = new LookupMatchesAnalyzer(BuildColumnMapping(1), BuildColumnMapping(1, 1));90 var violations = analyzer.Execute(candidate, reference);91 Assert.That(violations.Count(), Is.EqualTo(0));92 }93 [Test]94 public void Execute_MissingKeyInReference_OneViolation()95 {96 var candidate = BuildDataTable(new[] { "Key0", "Key1" }, new object[] { 0, 1 });97 var reference = BuildDataTable(new[] { "Key0", "Key2", "Key2", "Key0", "Key2" }, new object[] { 0, 1, 1, 1, 1 });98 var analyzer = new LookupMatchesAnalyzer(BuildColumnMapping(1), BuildColumnMapping(1, 1));99 var violations = analyzer.Execute(candidate, reference);100 Assert.That(violations.Count(), Is.EqualTo(1));101 }102 [Test]103 public void Execute_NotMatchValueInReference_OneViolation()104 {105 var candidate = BuildDataTable(new[] { "Key0", "Key1" }, new object[] { 0, 1 });106 var reference = BuildDataTable(new[] { "Key0", "Key1", "Key1", "Key0", "Key2" }, new object[] { 0, 2, 3, 4, 5 });107 var analyzer = new LookupMatchesAnalyzer(BuildColumnMapping(1), BuildColumnMapping(1, 1));108 var violations = analyzer.Execute(candidate, reference);109 Assert.That(violations.Count(), Is.EqualTo(1));110 }111 [Test]112 public void Execute_MultipleKeysreferenceLargerThanCandidateDuplicateKeys_NoViolation()113 {114 var candidate = BuildDataTable(new[] { "Key0", "Key1" }, new[] { "Foo", "Bar" }, new object[] { 0, 1 });115 var reference = BuildDataTable(new[] { "Key0", "Key1", "Key2" }, new[] { "Foo", "Bar", "Bar" }, new object[] { 0, 1, 2 });116 var referencer = new LookupMatchesAnalyzer(BuildColumnMapping(2), BuildColumnMapping(1, 2));117 var violations = referencer.Execute(candidate, reference);118 Assert.That(violations.Count(), Is.EqualTo(0));119 }120 121 [Test]122 [TestCase(1000)]123 [TestCase(10000)]124 [TestCase(100000)]125 [TestCase(1000000)]126 [Retry(3)]127 [Parallelizable(ParallelScope.Self)]128 public void Execute_LargeVolumeReference_Fast(int maxItem)129 {130 var candidate = BuildDataTable(new[] { "Key0", "Key1", "Key0" }, new[] { "Foo", "Bar", "Foo" }, new object[] { 1, 2, 3 });131 var reference = new DataTable();132 var idColumn = reference.Columns.Add("id");133 var valueColumn = reference.Columns.Add("value");134 var randomizer = new Random();135 for (int i = 0; i < maxItem; i++)136 {137 var dr = reference.NewRow();138 dr.SetField<object>(idColumn, i);139 dr.SetField<object>(valueColumn, randomizer.Next().ToString());140 reference.Rows.Add(dr);141 }142 reference.AcceptChanges();143 var mappingKey = new ColumnMappingCollection144 {145 new ColumnMapping(new ColumnNameIdentifier("two"), new ColumnNameIdentifier("id"), ColumnType.Numeric)146 };147 var mappingValue = new ColumnMappingCollection148 {149 new ColumnMapping(new ColumnNameIdentifier("one"), new ColumnNameIdentifier("value"), ColumnType.Text)150 };151 var analyzer = new LookupMatchesAnalyzer(mappingKey, mappingValue);152 var stopWatch = new Stopwatch();153 stopWatch.Start();154 analyzer.Execute(candidate, reference);155 stopWatch.Stop();156 Assert.That(stopWatch.Elapsed.TotalSeconds, Is.LessThan(20));157 }158 [Test]159 [TestCase(1000)]160 [TestCase(10000)]161 [TestCase(100000)]162 [TestCase(1000000)]163 [Retry(3)]164 [Parallelizable(ParallelScope.Self)]165 public void Execute_LargeVolumeCandidate_Fast(int maxItem)166 {167 var reference = BuildDataTable(new[] { "Key0", "Key1", "Key0" }, new[] { "Foo", "Bar", "Foo" }, new object[] { 1, 2, 3 });168 var candidate = new DataTable();169 var idColumn = candidate.Columns.Add("id");170 var valueColumn = candidate.Columns.Add("value");171 var randomizer = new Random();172 for (int i = 0; i < maxItem; i++)173 {174 var dr = candidate.NewRow();175 dr.SetField<object>(idColumn, i);176 dr.SetField<object>(valueColumn, randomizer.Next().ToString());177 candidate.Rows.Add(dr);178 }179 candidate.AcceptChanges();180 var mappingKey = new ColumnMappingCollection181 {182 new ColumnMapping(new ColumnNameIdentifier("id"), new ColumnNameIdentifier("two"), ColumnType.Numeric)183 };184 var mappingValue = new ColumnMappingCollection185 {186 new ColumnMapping(new ColumnNameIdentifier("value"), new ColumnNameIdentifier("one"), ColumnType.Text)187 };188 var analyzer = new LookupMatchesAnalyzer(mappingKey, mappingValue);189 var stopWatch = new Stopwatch();190 stopWatch.Start();191 var violations = analyzer.Execute(candidate, reference);192 stopWatch.Stop();193 Assert.That(stopWatch.Elapsed.TotalSeconds, Is.LessThan(7));194 }195 }196}...
LookupMatchesAnalyzer.cs
Source:LookupMatchesAnalyzer.cs
...10using System.Text;11using System.Threading.Tasks;12namespace NBi.Core.ResultSet.Lookup13{14 public class LookupMatchesAnalyzer : LookupExistsAnalyzer15 {16 protected ColumnMappingCollection Values { get; private set; }17 protected IDictionary<IColumnIdentifier, Tolerance> Tolerances { get; private set; }18 public LookupMatchesAnalyzer(ColumnMappingCollection keys, ColumnMappingCollection values)19 : this(keys, values, null) { }20 21 public LookupMatchesAnalyzer(ColumnMappingCollection keys, ColumnMappingCollection values, IDictionary<IColumnIdentifier, Tolerance> tolerances)22 : base(keys)23 {24 Values = values;25 Tolerances = tolerances ?? new Dictionary<IColumnIdentifier, Tolerance>();26 }27 protected override LookupViolationCollection Execute(DataTable candidate, DataTable reference)28 {29 var stopWatch = new Stopwatch();30 stopWatch.Start();31 var referenceKeyRetriever = BuildColumnsRetriever(Keys, x => x.ReferenceColumn);32 var referenceValueRetriever = BuildColumnsRetriever(Values, x => x.ReferenceColumn);33 var references = BuildReferenceIndex(reference, referenceKeyRetriever, referenceValueRetriever);34 Trace.WriteLineIf(Extensibility.NBiTraceSwitch.TraceInfo, $"Building the index (including value columns) for keys from the reference table containing {references.Count} rows [{stopWatch.Elapsed:d'.'hh':'mm':'ss'.'fff'ms'}]");35 stopWatch.Restart();...
LookupMatchesConstraint.cs
Source:LookupMatchesConstraint.cs
...19 {20 21 protected internal override ILookupAnalyzer Engine22 {23 get => engine ?? (engine = new LookupMatchesAnalyzer(24 keyMappings ?? ColumnMappingCollection.Default25 , valueMappings ?? throw new ArgumentNullException()26 , tolerances 27 ));28 set => engine = value ?? throw new ArgumentNullException();29 }30 protected override ILookupViolationMessageFormatter BuildFailure()31 {32 var factory = new LookupMatchesViolationsMessageFormatterFactory();33 var msg = factory.Instantiate(Configuration.FailureReportProfile);34 msg.Generate(rsReference.Rows.Cast<DataRow>(), rsCandidate.Rows.Cast<DataRow>(), violations, keyMappings, valueMappings);35 return msg;36 }37 public LookupMatchesConstraint(IResultSetService reference)...
LookupMatchesAnalyzer
Using AI Code Generation
1using NBi.Core.ResultSet;2using NBi.Core.ResultSet.Lookup;3using System;4using System.Collections.Generic;5using System.Data;6using System.Linq;7using System.Text;8using System.Threading.Tasks;9{10 {11 static void Main(string[] args)12 {13 DataTable table1 = new DataTable();14 table1.Columns.Add("id", typeof(int));15 table1.Columns.Add("name", typeof(string));16 table1.Rows.Add(1, "A");17 table1.Rows.Add(2, "B");18 table1.Rows.Add(3, "C");19 table1.Rows.Add(4, "D");20 table1.Rows.Add(5, "E");21 DataTable table2 = new DataTable();22 table2.Columns.Add("id", typeof(int));23 table2.Columns.Add("name", typeof(string));24 table2.Rows.Add(1, "A");25 table2.Rows.Add(2, "B");26 table2.Rows.Add(3, "C");27 table2.Rows.Add(4, "D");28 table2.Rows.Add(5, "E");29 LookupMatchesAnalyzer lma = new LookupMatchesAnalyzer();30 var result = lma.LookupMatchesAnalyzer(table1, table2, new string[] { "id" }, new string[] { "id" });31 Console.WriteLine(result);32 Console.ReadLine();33 }34 }35}
LookupMatchesAnalyzer
Using AI Code Generation
1using System;2using System.Data;3using NBi.Core.ResultSet;4using NBi.Core.ResultSet.Lookup;5using System.Collections.Generic;6using System.Linq;7using System.Text;8using System.Threading.Tasks;9{10 {11 static void Main(string[] args)12 {13 DataTable dt1 = new DataTable();14 dt1.Columns.Add("col1");15 dt1.Columns.Add("col2");16 dt1.Rows.Add("1", "1");17 dt1.Rows.Add("2", "2");18 dt1.Rows.Add("3", "3");19 dt1.Rows.Add("4", "4");20 dt1.Rows.Add("5", "5");21 DataTable dt2 = new DataTable();22 dt2.Columns.Add("col1");23 dt2.Columns.Add("col2");24 dt2.Rows.Add("1", "1");25 dt2.Rows.Add("2", "2");26 dt2.Rows.Add("3", "3");27 dt2.Rows.Add("4", "4");28 dt2.Rows.Add("5", "5");29 LookupMatchesAnalyzer lma = new LookupMatchesAnalyzer();30 var result = lma.LookupMatchesAnalyzer(dt1, dt2);31 Console.WriteLine(result);32 Console.ReadLine();33 }34 }35}36using System;37using System.Data;38using NBi.Core.ResultSet;39using NBi.Core.ResultSet.Lookup;40using System.Collections.Generic;41using System.Linq;42using System.Text;43using System.Threading.Tasks;44{45 {46 static void Main(string[] args)47 {48 DataTable dt1 = new DataTable();49 dt1.Columns.Add("col1");50 dt1.Columns.Add("col2");51 dt1.Rows.Add("1", "1");52 dt1.Rows.Add("2", "2");53 dt1.Rows.Add("3", "3");54 dt1.Rows.Add("4", "4");55 dt1.Rows.Add("5", "5");
LookupMatchesAnalyzer
Using AI Code Generation
1using System;2using System.Data;3using System.IO;4using System.Reflection;5using NBi.Core.Calculation;6using NBi.Core.ResultSet;7using NBi.Core.ResultSet.Lookup;8using NBi.Core.Scalar.Casting;9using NBi.Core.Scalar.Resolver;10using NUnit.Framework;11{12 {13 public void LookupMatchesAnalyzerTest()14 {15 var lookup = new DataTable();16 lookup.Columns.Add("Key", typeof(string));17 lookup.Columns.Add("Value", typeof(string));18 lookup.Rows.Add("1", "a");19 lookup.Rows.Add("2", "b");20 lookup.Rows.Add("3", "c");21 lookup.Rows.Add("4", "d");22 lookup.Rows.Add("5", "e");23 lookup.Rows.Add("6", "f");24 lookup.Rows.Add("7", "g");25 lookup.Rows.Add("8", "h");26 lookup.Rows.Add("9", "i");27 lookup.Rows.Add("10", "j");28 lookup.Rows.Add("11", "k");29 lookup.Rows.Add("12", "l");30 lookup.Rows.Add("13", "m");31 lookup.Rows.Add("14", "n");32 lookup.Rows.Add("15", "o");33 lookup.Rows.Add("16", "p");34 lookup.Rows.Add("17", "q");35 lookup.Rows.Add("18", "r");36 lookup.Rows.Add("19", "s");37 lookup.Rows.Add("20", "t");38 lookup.Rows.Add("21", "u");39 lookup.Rows.Add("22", "v");40 lookup.Rows.Add("23", "w");41 lookup.Rows.Add("24", "x");42 lookup.Rows.Add("25", "y");43 lookup.Rows.Add("26", "z");44 var engine = new LookupMatchesAnalyzer(lookup, new LookupMatchesSettings());45 var result = new DataTable();46 result.Columns.Add("Key", typeof(string));47 result.Columns.Add("Value", typeof(string));48 result.Rows.Add("1", "a");49 result.Rows.Add("2", "b");50 result.Rows.Add("3", "c");51 result.Rows.Add("4", "d");52 result.Rows.Add("5", "e");53 result.Rows.Add("6", "f");54 result.Rows.Add("7", "g");55 result.Rows.Add("8", "h");
LookupMatchesAnalyzer
Using AI Code Generation
1using System;2using System.Data;3using System.Collections.Generic;4using NBi.Core.ResultSet;5using NBi.Core.ResultSet.Lookup;6using NBi.Core.ResultSet.Resolver;7{8 public static void Main()9 {10 DataTable dt = new DataTable();11 dt.Columns.Add("Id", typeof(int));12 dt.Columns.Add("Name", typeof(string));13 dt.Columns.Add("Age", typeof(int));14 dt.Rows.Add(1, "John", 12);15 dt.Rows.Add(2, "Steve", 15);16 dt.Rows.Add(3, "Bill", 25);17 dt.Rows.Add(4, "Ram", 20);18 dt.Rows.Add(5, "Ron", 32);19 dt.Rows.Add(6, "Chris", 17);20 dt.Rows.Add(7, "Rob", 19);21 ResultSet rs = new ResultSet(dt);22 LookupResultSetResolver resolver = new LookupResultSetResolver(rs);23 LookupMatchesAnalyzer analyzer = new LookupMatchesAnalyzer(resolver);
LookupMatchesAnalyzer
Using AI Code Generation
1using System;2using System.Data;3using System.Collections.Generic;4using NBi.Core.ResultSet;5using NBi.Core.ResultSet.Lookup;6using NBi.Core.ResultSet.Analyzer;7using NBi.Core.Query;8using NBi.Core.Query.Command;9using NBi.Core.Query.Resolver;10using NBi.Core.Query.Client;11using NBi.Core.Query.Client.SqlClient;12using NBi.Core.Query.Client.OleDb;13using NBi.Core.Query.Client.Oracle;14using NBi.Core.Query.Client.MySql;15using NBi.Core.Query.Client.Presto;16using NBi.Core.Query.Client.SqLite;17using NBi.Core.Query.Client.BigQuery;18using NBi.Core.Query.Client.Db2;19using NBi.Core.Query.Client.SapHana;20using NBi.Core.Query.Client.SapHana.v2;21using NBi.Core.Query.Client.Redshift;22using NBi.Core.Query.Client.PostgreSql;23using NBi.Core.Query.Client.Access;24using NBi.Core.Query.Client.SapBw;25using NBi.Core.Query.Client.SapBw.v2;26using NBi.Core.Query.Client.SapBw.v3;27using NBi.Core.Query.Client.SapBw.v4;28using NBi.Core.Query.Client.SapBw.v4Hana;29using NBi.Core.Query.Client.SapBw.v4Hana.v2;30using NBi.Core.Query.Client.SapBw.v4Hana.v2.Enumerations;31using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryCommands;32using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryResolvers;33using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryGenerators;34using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryBuilders;35using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryBuilders.Cube;36using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryBuilders.Dimensions;37using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryBuilders.Measures;38using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryBuilders.Variables;39using NBi.Core.Query.Client.SapBw.v4Hana.v2.QueryBuilders.Variables.SapBwVariables;
LookupMatchesAnalyzer
Using AI Code Generation
1NBi.Core.ResultSet.Lookup.LookupMatchesAnalyzer lookupMatchesAnalyzer = new NBi.Core.ResultSet.Lookup.LookupMatchesAnalyzer();2lookupMatchesAnalyzer.Setup(new NBi.Core.ResultSet.Lookup.LookupMatchesArgs());3lookupMatchesAnalyzer.Execute(resultSet1, resultSet2);4bool result = lookupMatchesAnalyzer.IsSatisfied();5bool result = lookupMatchesAnalyzer.IsNotSatisfied();6lookupMatchesAnalyzer.Setup(new NBi.Core.ResultSet.Lookup.LookupMatchesArgs() { Tolerance = 0.1 });7lookupMatchesAnalyzer.Execute(resultSet1, resultSet2);8bool result = lookupMatchesAnalyzer.IsSatisfied();9lookupMatchesAnalyzer.Setup(new NBi.Core.ResultSet.Lookup.LookupMatchesArgs() { Tolerance = 0.1, Delta = 0.1 });10lookupMatchesAnalyzer.Execute(resultSet1, resultSet2);11bool result = lookupMatchesAnalyzer.IsSatisfied();12lookupMatchesAnalyzer.Setup(new NBi.Core.ResultSet.Lookup.LookupMatchesArgs() { Tolerance = 0.1, Delta = 0.1, Column = "MyColumn" });13lookupMatchesAnalyzer.Execute(resultSet1, resultSet2);14bool result = lookupMatchesAnalyzer.IsSatisfied();15lookupMatchesAnalyzer.Setup(new NBi.Core.ResultSet.Lookup.LookupMatchesArgs() { Tolerance = 0.1, Delta = 0.1, Column = "MyColumn", Row = 1 });16lookupMatchesAnalyzer.Execute(resultSet1, resultSet2);17bool result = lookupMatchesAnalyzer.IsSatisfied();18lookupMatchesAnalyzer.Setup(new NBi.Core.ResultSet.Lookup.LookupMatchesArgs() { Tolerance = 0.1, Delta = 0.1, Column = "MyColumn", Row = 1, Value = "MyValue" });19lookupMatchesAnalyzer.Execute(resultSet1, resultSet2);20bool result = lookupMatchesAnalyzer.IsSatisfied();
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!!