public void AutoIncrement()
{
DataColumn col = new DataColumn("Auto");
col.AutoIncrement = true;
col.AutoIncrementSeed = 0;
col.AutoIncrementStep = 1;
_tbl.Columns.Add(col);
_tbl.Rows.Add(_tbl.NewRow());
Assert.Equal(0, Convert.ToInt32(_tbl.Rows[0]["Auto"]));
_tbl.Rows.Add(_tbl.NewRow());
Assert.Equal(1, Convert.ToInt32(_tbl.Rows[1]["Auto"]));
col.AutoIncrement = false;
Assert.Equal(1, Convert.ToInt32(_tbl.Rows[1]["Auto"]));
_tbl.Rows.Add(_tbl.NewRow());
Assert.Equal(DBNull.Value, _tbl.Rows[2]["Auto"]);
col.AutoIncrement = true;
col.AutoIncrementSeed = 10;
col.AutoIncrementStep = 2;
_tbl.Rows.Add(_tbl.NewRow());
Assert.Equal(10, Convert.ToInt32(_tbl.Rows[3]["Auto"]));
_tbl.Rows.Add(_tbl.NewRow());
Assert.Equal(12, Convert.ToInt32(_tbl.Rows[4]["Auto"]));
col = new DataColumn("Auto2");
col.DataType = typeof(string);
col.AutoIncrement = true;
col.AutoIncrementSeed = 0;
col.AutoIncrementStep = 1;
_tbl.Columns.Add(col);
_tbl.Rows.Add(_tbl.NewRow());
Assert.Equal(typeof(int), _tbl.Columns[1].DataType);
Assert.Equal(typeof(int), _tbl.Rows[5]["Auto2"].GetType());
col = new DataColumn("Auto3");
col.AutoIncrement = true;
col.AutoIncrementSeed = 0;
col.AutoIncrementStep = 1;
col.DataType = typeof(string);
Assert.Equal(typeof(string), col.DataType);
Assert.False(col.AutoIncrement);
}