private static bool Equal <T>(TableSnapshot <T> x, TableSnapshot <T> y) where T : struct { return(ProjectTester.EqualCount(x, y) && x.Zip(y, (RowId xr, RowId yr) => { T xd, yd; x.GetData(xr, out xd); y.GetData(yr, out yd); foreach (IField <T> field in x.Fields) { if (field.Compare(ref xd, ref yd) != 0) { return false; } } return true; }).All(r => r)); }