public void ApplyTest()
{
DataTable data = new DataTable("Sample data");
data.Columns.Add("x", typeof(double));
data.Columns.Add("Class", typeof(int));
data.Rows.Add(0.21, 0);
data.Rows.Add(0.25, 0);
data.Rows.Add(0.54, 0);
data.Rows.Add(0.19, 1);
DataTable expected = new DataTable("Sample data");
expected.Columns.Add("x", typeof(double));
expected.Columns.Add("Class", typeof(int));
expected.Rows.Add(0.21, 0);
expected.Rows.Add(0.25, 0);
expected.Rows.Add(0.54, 0);
expected.Rows.Add(0.19, 1);
expected.Rows.Add(0.19, 1);
expected.Rows.Add(0.19, 1);
DataTable actual;
Stratification target = new Stratification("Class");
target.Columns["Class"].Classes = new int[] { 0, 1 };
actual = target.Apply(data);
for (int i = 0; i < actual.Rows.Count; i++)
{
double ex = (double)expected.Rows[i][0];
int ec = (int)expected.Rows[i][1];
double ax = (double)actual.Rows[i][0];
int ac = (int)actual.Rows[i][1];
Assert.AreEqual(ex, ax);
Assert.AreEqual(ec, ac);
}
}
}