public void SchemaIndicesShouldAlwaysIncrease() { //initialize table with 5 cols var table = new TableSchema("T", new FieldSchema("C1"), new FieldSchema("C2"), new FieldSchema("C3"), new FieldSchema("C4"), new FieldSchema("C5") ); Assert.IsNotNull(table); Assert.AreEqual(5, table.Count); Assert.AreEqual(5, table.Counter); CollectionAssert.AreEquivalent(new[] { "C1", "C2", "C3", "C4", "C5" }, table.Keys); Assert.AreEqual(1, table["C1"].Index); Assert.AreEqual(2, table["C2"].Index); Assert.AreEqual(3, table["C3"].Index); Assert.AreEqual(4, table["C4"].Index); Assert.AreEqual(5, table["C5"].Index); //add 2 cols table.Insert(new FieldSchema("C6"), new FieldSchema("C7")); Assert.AreEqual(7, table.Count); Assert.AreEqual(7, table.Counter); CollectionAssert.AreEquivalent(new[] { "C1", "C2", "C3", "C4", "C5", "C6", "C7" }, table.Keys); Assert.AreEqual(1, table["C1"].Index); Assert.AreEqual(2, table["C2"].Index); Assert.AreEqual(3, table["C3"].Index); Assert.AreEqual(4, table["C4"].Index); Assert.AreEqual(5, table["C5"].Index); Assert.AreEqual(6, table["C6"].Index); Assert.AreEqual(7, table["C7"].Index); //remove 3 cols table.Delete(table["C4"], table["C5"], table["C6"]); Assert.AreEqual(4, table.Count); Assert.AreEqual(7, table.Counter); CollectionAssert.AreEquivalent(new[] { "C1", "C2", "C3", "C7" }, table.Keys); Assert.AreEqual(1, table["C1"].Index); Assert.AreEqual(2, table["C2"].Index); Assert.AreEqual(3, table["C3"].Index); Assert.IsNull(table["C4"]); Assert.IsNull(table["C5"]); Assert.IsNull(table["C6"]); Assert.AreEqual(7, table["C7"].Index); //add 3 cols table.Insert(new FieldSchema("C4"),new FieldSchema("C5"),new FieldSchema("C6")); Assert.AreEqual(7, table.Count); Assert.AreEqual(10, table.Counter); CollectionAssert.AreEquivalent(new[] {"C1", "C2", "C3", "C7", "C4", "C5", "C6"}, table.Keys); Assert.AreEqual(1, table["C1"].Index); Assert.AreEqual(2, table["C2"].Index); Assert.AreEqual(3, table["C3"].Index); Assert.AreEqual(7, table["C7"].Index); Assert.AreEqual(8, table["C4"].Index); Assert.AreEqual(9, table["C5"].Index); Assert.AreEqual(10, table["C6"].Index); }