public void Aggregation_CheckIfChangesDynamically_ChildTable()
{
DataSet ds = new DataSet();
DataTable table = new DataTable();
DataTable table2 = new DataTable();
ds.Tables.Add(table);
ds.Tables.Add(table2);
table.Columns.Add("test", typeof(int));
table2.Columns.Add("test", typeof(int));
table2.Columns.Add("val", typeof(int));
DataRelation rel = new DataRelation("rel", table.Columns[0], table2.Columns[0]);
ds.Relations.Add(rel);
table.Columns.Add("result_count", typeof(int), "count(child.test)");
table.Columns.Add("result_sum", typeof(int), "sum(child.test)");
table.Columns.Add("result_avg", typeof(int), "avg(child.test)");
table.Columns.Add("result_max", typeof(int), "max(child.test)");
table.Columns.Add("result_min", typeof(int), "min(child.test)");
table.Columns.Add("result_var", typeof(double), "var(child.test)");
table.Columns.Add("result_stdev", typeof(double), "stdev(child.test)");
table.Rows.Add(new object[] { 1 });
table.Rows.Add(new object[] { 2 });
// Add rows to the child table
for (int j = 0; j < 10; j++)
table2.Rows.Add(new object[] { 1, j });
// Check the values for the expression columns in parent table
Assert.Equal(10, table.Rows[0]["result_count"]);
Assert.Equal(0, table.Rows[1]["result_count"]);
Assert.Equal(10, table.Rows[0]["result_sum"]);
Assert.Equal(DBNull.Value, table.Rows[1]["result_sum"]);
Assert.Equal(1, table.Rows[0]["result_avg"]);
Assert.Equal(DBNull.Value, table.Rows[1]["result_avg"]);
Assert.Equal(1, table.Rows[0]["result_max"]);
Assert.Equal(DBNull.Value, table.Rows[1]["result_max"]);
Assert.Equal(1, table.Rows[0]["result_min"]);
Assert.Equal(DBNull.Value, table.Rows[1]["result_min"]);
Assert.Equal(0.0, table.Rows[0]["result_var"]);
Assert.Equal(DBNull.Value, table.Rows[1]["result_var"]);
Assert.Equal(0.0, table.Rows[0]["result_stdev"]);
Assert.Equal(DBNull.Value, table.Rows[1]["result_stdev"]);
}