try
{
/* TEST 0 *////////////////////////////////////////////////////////////
harness.checkPoint("Test 0");
ElementStructure8 doc = new ElementStructure8();
Element root = doc.getDefaultRootElement();
doc.insertString(0, "first line of text. \n", null);
harness.check(root.getElementCount() == 2);
harness.check(root.getElement(0).getStartOffset() == 0);
harness.check(root.getElement(0).getEndOffset() == 21);
harness.check(root.getElement(1).getStartOffset() == 21);
harness.check(root.getElement(1).getEndOffset() == 22);
doc.insertString
(21, "second line of text. \n third line of text. \n", null);
harness.check(root.getElementCount() == 4);
harness.check(root.getElement(0).getElementCount() == 1);
harness.check(root.getElement(1).getElementCount() == 1);
harness.check(root.getElement(2).getElementCount() == 1);
Element first = root.getElement(0).getElement(0);
harness.check(first.getStartOffset() == 0);
harness.check(first.getEndOffset() == 21);
Element second = root.getElement(1).getElement(0);
harness.check(second.getStartOffset() == 21);
harness.check(second.getEndOffset() == 43);
Element third = root.getElement(2).getElement(0);
harness.check(third.getStartOffset() == 43);
harness.check(third.getEndOffset() == 65);
Element fourth = root.getElement(3).getElement(0);
harness.check(fourth.getStartOffset() == 65);
harness.check(fourth.getEndOffset() == 66);
//printElements(doc.getDefaultRootElement(), 0);
/* TEST 1 *////////////////////////////////////////////////////////////
harness.checkPoint("Test 1");
doc = new ElementStructure8();
root = doc.getDefaultRootElement();
doc.insertString(0, "first line of text. \n", null);
harness.check(root.getElementCount() == 2);
harness.check(root.getElement(0).getStartOffset() == 0);
harness.check(root.getElement(0).getEndOffset() == 21);
harness.check(root.getElement(1).getStartOffset() == 21);
harness.check(root.getElement(1).getEndOffset() == 22);
doc.insertString(21, "second line of text. \n ", null);
harness.check(root.getElementCount() == 3);
harness.check(root.getElement(0).getElementCount() == 1);
harness.check(root.getElement(1).getElementCount() == 1);
harness.check(root.getElement(2).getElementCount() == 2);
first = root.getElement(0).getElement(0);
harness.check(first.getStartOffset() == 0);
harness.check(first.getEndOffset() == 21);
second = root.getElement(1).getElement(0);
harness.check(second.getStartOffset() == 21);
harness.check(second.getEndOffset() == 43);
third = root.getElement(2).getElement(0);
harness.check(third.getStartOffset() == 43);
harness.check(third.getEndOffset() == 44);
fourth = root.getElement(2).getElement(1);
harness.check(fourth.getStartOffset() == 44);
harness.check(fourth.getEndOffset() == 45);
//printElements(doc.getDefaultRootElement(), 0);
/* TEST 2 *////////////////////////////////////////////////////////////
harness.checkPoint("Test 2");
doc = new ElementStructure8();
root = doc.getDefaultRootElement();
doc.insertString(0, "first line of text.", null);
harness.check(root.getElementCount() == 1);
harness.check(root.getElement(0).getStartOffset() == 0);
harness.check(root.getElement(0).getEndOffset() == 20);
doc.insertString(5, "second line \n of text.", null);
harness.check(root.getElementCount() == 2);
harness.check(root.getElement(0).getElementCount() == 1);
harness.check(root.getElement(1).getElementCount() == 1);
first = root.getElement(0).getElement(0);
harness.check(first.getStartOffset() == 0);
harness.check(first.getEndOffset() == 18);
second = root.getElement(1).getElement(0);
harness.check(second.getStartOffset() == 18);
harness.check(second.getEndOffset() == 42);
//printElements(doc.getDefaultRootElement(), 0);
/* TEST 3 *////////////////////////////////////////////////////////////
harness.checkPoint("Test 3");
doc = new ElementStructure8();
root = doc.getDefaultRootElement();
doc.insertString(0, "first line of text. \n", null);
harness.check(root.getElementCount() == 2);
harness.check(root.getElement(0).getStartOffset() == 0);
harness.check(root.getElement(0).getEndOffset() == 21);
harness.check(root.getElement(1).getStartOffset() == 21);
harness.check(root.getElement(1).getEndOffset() == 22);
doc.insertString
(21, "\n second line of text. \n third line of text. \n", null);
harness.check(root.getElementCount() == 5);
harness.check(root.getElement(0).getElementCount() == 1);
harness.check(root.getElement(1).getElementCount() == 1);
harness.check(root.getElement(2).getElementCount() == 1);
harness.check(root.getElement(3).getElementCount() == 1);
first = root.getElement(0).getElement(0);
harness.check(first.getStartOffset() == 0);
harness.check(first.getEndOffset() == 21);
second = root.getElement(1).getElement(0);
harness.check(second.getStartOffset() == 21);
harness.check(second.getEndOffset() == 22);
third = root.getElement(2).getElement(0);
harness.check(third.getStartOffset() == 22);
harness.check(third.getEndOffset() == 45);
fourth = root.getElement(3).getElement(0);
harness.check(fourth.getStartOffset() == 45);
harness.check(fourth.getEndOffset() == 67);
Element fifth = root.getElement(4).getElement(0);
harness.check(fifth.getStartOffset() == 67);
harness.check(fifth.getEndOffset() == 68);
//printElements(doc.getDefaultRootElement(), 0);
/* TEST 4 *////////////////////////////////////////////////////////////
harness.checkPoint("Test 4");