public void Compare_SameKeysSameValuesUselessColumnsNoneValuesMatching_ReturnEqual() { var settings = new SettingsOrdinalResultSet( SettingsOrdinalResultSet.KeysChoice.First, SettingsOrdinalResultSet.ValuesChoice.None, new List <IColumnDefinition>() { new Column() { Identifier = new ColumnOrdinalIdentifier(1), Role = ColumnRole.Value, Type = ColumnType.Numeric } } ); //Buiding object used during test var comparer = new OrdinalEquivaler(AnalyzersFactory.EqualTo(), settings); var reference = BuildDataTable(new string[] { "Key0", "Key1" }, new double[] { 0, 1 }, new string[] { "Useless0", "Useless1" }); var actual = BuildDataTable(new string[] { "Key0", "Key1" }, new double[] { 0, 1 }, new string[] { "0Useless0", "0Useless1" }); //Call the method to test var res = comparer.Compare(reference, actual); //Assertion Assert.That(res, Is.EqualTo(ResultResultSet.Matching)); }
protected void CheckSettingsAndFirstRow(DataTable dt, SettingsOrdinalResultSet settings) { if (dt.Rows.Count == 0) { return; } var dr = dt.Rows[0]; for (int i = 0; i < dr.Table.Columns.Count; i++) { CheckSettingsFirstRowCell( settings.GetColumnRole(i) , settings.GetColumnType(i) , dr.Table.Columns[i] , dr.IsNull(i) ? DBNull.Value : dr[i] , new string[] { "The column with index '{0}' is expecting a numeric value but the first row of your result set contains a value '{1}' not recognized as a valid numeric value or a valid interval." , " Aren't you trying to use a comma (',' ) as a decimal separator? NBi requires that the decimal separator must be a '.'." , "The column with index '{0}' is expecting a 'date & time' value but the first row of your result set contains a value '{1}' not recognized as a valid date & time value." } ); } }
public void Execute_TwoCustomColumns_ThreeGroups() { var args = new ObjectsResultSetResolverArgs(new[] { new object[] { "alpha", 1d, 10 }, new object[] { "alpha", 1, 20 }, new object[] { "beta", 2, 30 }, new object[] { "alpha", 2, 40 } }); var resolver = new ObjectsResultSetResolver(args); var rs = resolver.Execute(); var settings = new SettingsOrdinalResultSet(new List <IColumnDefinition>() { new Column() { Identifier = new ColumnOrdinalIdentifier(0), Role = ColumnRole.Key, Type = ColumnType.Text }, new Column() { Identifier = new ColumnOrdinalIdentifier(1), Role = ColumnRole.Key, Type = ColumnType.Numeric }, } ); var grouping = new OrdinalColumnGrouping(settings, Context.None); var result = grouping.Execute(rs); Assert.That(result, Has.Count.EqualTo(3)); Assert.That(result[new KeyCollection(new object[] { "alpha", 1m })].Rows, Has.Count.EqualTo(2)); Assert.That(result[new KeyCollection(new object[] { "alpha", 2m })].Rows, Has.Count.EqualTo(1)); Assert.That(result[new KeyCollection(new object[] { "beta", 2m })].Rows, Has.Count.EqualTo(1)); }
protected void WriteSettingsToDataTableProperties(DataTable dt, SettingsOrdinalResultSet settings) { foreach (DataColumn column in dt.Columns) { WriteSettingsToDataTableProperties( column , settings.GetColumnRole(column.Ordinal) , settings.GetColumnType(column.Ordinal) , null , null ); } }
public void Execute_SingleColumn_TwoGroups() { 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 result = grouping.Execute(rs); Assert.That(result, Has.Count.EqualTo(2)); Assert.That(result[new KeyCollection(new[] { "alpha" })].Rows, Has.Count.EqualTo(3)); Assert.That(result[new KeyCollection(new[] { "beta" })].Rows, Has.Count.EqualTo(1)); }
public void Execute_TwoColumns_ThreeGroups() { var args = new ObjectsResultSetResolverArgs(new[] { new object[] { "alpha", "1", 10 }, new object[] { "alpha", "1", 20 }, new object[] { "beta", "2", 30 }, new object[] { "alpha", "2", 40 } }); var resolver = new ObjectsResultSetResolver(args); var rs = resolver.Execute(); var settings = new SettingsOrdinalResultSet(KeysChoice.AllExpectLast, ValuesChoice.None, NumericAbsoluteTolerance.None); var grouping = new OrdinalByColumnGrouping(settings); var result = grouping.Execute(rs); Assert.That(result, Has.Count.EqualTo(3)); Assert.That(result[new KeyCollection(new object[] { "alpha", "1" })].Rows, Has.Count.EqualTo(2)); Assert.That(result[new KeyCollection(new object[] { "alpha", "2" })].Rows, Has.Count.EqualTo(1)); Assert.That(result[new KeyCollection(new object[] { "beta", "2" })].Rows, Has.Count.EqualTo(1)); }
protected void CheckSettingsAndDataTable(DataTable dt, SettingsOrdinalResultSet settings) { var max = settings.GetMaxColumnOrdinalDefined(); if (dt.Columns.Count <= max) { var exception = string.Format("You've defined a column with an index of {0}, meaning that your result set would have at least {1} columns but your result set has only {2} columns." , max , max + 1 , dt.Columns.Count); if (dt.Columns.Count == max && settings.GetMinColumnOrdinalDefined() == 1) { exception += " You've no definition for a column with an index of 0. Are you sure you'vent started to index at 1 in place of 0?"; } throw new EquivalerException(exception); } }
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)); }
public OrdinalEvaluator(SettingsOrdinalResultSet settings) : base(settings) { }