internal void TestView(TableSpec spec, ViewSchema tbl)
        {
            String viewName = "v_" + spec.Name;

            Assert.IsNotNull(tbl);

            Assert.AreEqual(viewName, tbl.Name);
            Assert.AreEqual(spec.Columns.Length,
                tbl.Columns.Count);

            for (int idx = 0; idx < tbl.Columns.Count; idx++) {
                CompareColumns(spec.Columns[idx], tbl.Columns[idx]);
            }
        }
        internal void TestTable(TableSpec spec, TableSchema tbl)
        {
            String tableName = spec.Name;

            Assert.IsNotNull(tbl);

            Assert.AreEqual(tableName, tbl.Name);
            Assert.AreEqual(spec.Columns.Length,
                tbl.Columns.Count);

            for (int idx = 0; idx < tbl.Columns.Count; idx++) {
                CompareColumns(spec.Columns[idx], tbl.Columns[idx]);
            }

            Assert.AreEqual(spec.Indexes.Length,
                tbl.Indexes.Count);

            for (int idx = 0; idx < tbl.Indexes.Count; idx++) {
                CompareIndexes(spec.Indexes[idx], tbl.Indexes[spec.Indexes[idx].Name]);
            }

            Assert.AreEqual(spec.ForeignKeys.Length,
                tbl.Keys.Count);

            for (int idx = 0; idx < tbl.Keys.Count; idx++) {
                CompareForeignKeys(spec.ForeignKeys[idx], tbl.Keys[idx]);
            }
        }