public void ApplyTest()
{
DataTable input = new DataTable("Sample data");
input.Columns.Add("x", typeof(double));
input.Columns.Add("y", typeof(double));
input.Columns.Add("z", typeof(double));
input.Rows.Add(0.02, 60.6, 24.2);
input.Rows.Add(0.92, 50.2, 21.1);
input.Rows.Add(0.32, 60.9, 19.8);
input.Rows.Add(2.02, 61.8, 92.4);
// Create a discretization filter to operate on the first 2 columns
Discretization target = new Discretization("x", "y");
target.Columns["y"].Threshold = 0.8;
DataTable expected = new DataTable("Sample data");
expected.Columns.Add("x", typeof(double));
expected.Columns.Add("y", typeof(double));
expected.Columns.Add("z", typeof(double));
expected.Rows.Add(0, 60, 24.2);
expected.Rows.Add(1, 50, 21.1);
expected.Rows.Add(0, 61, 19.8);
expected.Rows.Add(2, 62, 92.4);
DataTable actual = target.Apply(input);
for (int i = 0; i < actual.Rows.Count; i++)
{
double ex = (double)expected.Rows[i][0];
double ey = (double)expected.Rows[i][1];
double ez = (double)expected.Rows[i][2];
double ax = (double)actual.Rows[i][0];
double ay = (double)actual.Rows[i][1];
double az = (double)actual.Rows[i][2];
Assert.AreEqual(ex, ax);
Assert.AreEqual(ey, ay);
Assert.AreEqual(ez, az);
}
}
}