public void PageReadWriteTest() { var target = new SimpleDatabase_Accessor("AAA", false); target.CreateTableFile("Car", 64, 1024, 128); var a = target.ReadDataFileHeader("Car", 0); var b = target.ReadDataFileHeader("Car", 1); Page p1 = target.DiskReadPage("Car", 0, 0); Page p2 = target.DiskReadPage("Car", 12, 1); var encoder = new UTF8Encoding(); var byteArray = encoder.GetBytes("Page Data"); var row = p1.CreateEmptyRow(); Array.Copy(byteArray, row.Data, byteArray.Length); p1.UpdateRow(row, 8); target.DiskWritePage("Car", p1, p1.FileId); p1 = target.DiskReadPage("Car", 0, 0); Assert.AreEqual("Page Data", encoder.GetString(p1.GetRow(8).Data, 0, byteArray.Length)); p2.UpdateRow(row, p2.RowsPerPage - 1); target.DiskWritePage("Car", p2, p2.FileId); var p3 = target.DiskReadPage("Car", 12, 1); Assert.AreEqual("Page Data", encoder.GetString(p3.GetRow(p3.RowsPerPage - 1).Data, 0, byteArray.Length)); target.DiskWritePage("Car", p3, p3.FileId); var p4 = target.DiskReadPage("Car", 12, 1); Assert.AreEqual(p3.NextFreeRowIndex, p4.NextFreeRowIndex); Assert.AreEqual(p3.PageIndex, p4.PageIndex); Assert.AreEqual(p3.PageSize, p4.PageSize); Assert.AreEqual(p3.RowSize, p4.RowSize); Assert.AreEqual(p3.RowsPerPage, p4.RowsPerPage); Assert.AreEqual(p3.FileId, p4.FileId); }