With the following unit test (AlignedStringTest.java)
@Test
public void testHtmlDelete() {
ArrayList<ImmutableInterval> list = new ArrayList<>();
list.add(new ImmutableInterval(0, 3));
list.add(new ImmutableInterval(8, 11));
list.add(new ImmutableInterval(16, 20));
list.add(new ImmutableInterval(20, 24));
Collections.reverse(list);
String short_html = "<p>Hello<p>World</p></p>";
AlignedString base = new AlignedString(short_html);
for (ImmutableInterval i : list) {
base.delete(i.getStart(), i.getEnd());
}
System.out.println("Base : " + base.get() + " - " + base.dataSegmentsToString());
Collections.reverse(list);
assertEquals(new ImmutableInterval(0, 0), base.inverseResolve(list.get(0)));
assertEquals(new ImmutableInterval(5, 5), base.inverseResolve(list.get(1)));
assertEquals(new ImmutableInterval(10, 10), base.inverseResolve(list.get(2)));
assertEquals(new ImmutableInterval(10, 10), base.inverseResolve(list.get(3)));
}
We get the following output:
Base : HelloWorld - >>[][Hello][World][][]<< (A:0)(O:0[]0)(O:0[Hello]5)(O:5[World]10)(O:10[]10)(O:10[]10)(A:10)
java.lang.AssertionError:
Expected :[5-5]
Actual :[10-10]
Assuming that the empty brackets represent the html tags, we've noticed that the "p" tag between Hello and World in the output is missing.
With the following unit test (AlignedStringTest.java)
We get the following output:
Assuming that the empty brackets represent the html tags, we've noticed that the "p" tag between Hello and World in the output is missing.