public void testAbababcAbbbabc() { GeneralizedSuffixTree gst = new GeneralizedSuffixTree("abababc", "abbbabc", '#', '$'); assertEquals("babc", gst.getLcsAsString()); assertEquals(3, gst.getSuffixTree().indexOf("babc")); assertEquals(5, gst.getSuffixTree().indexOf("bc")); GeneralizedSuffixTree.CommonSubstr commonSubstr = gst.getLcs(); assertNotNull(commonSubstr); assertEquals(3, commonSubstr.getBeginIndexes()[0]); assertEquals(6, commonSubstr.getEndIndexes()[0]); commonSubstr = gst.getLcs(gst.getDefaultBeginIndexes(), commonSubstr.getBeginIndexes()); assertNotNull(commonSubstr); assertEquals(0, commonSubstr.getBeginIndexes()[0]); assertEquals(1, commonSubstr.getEndIndexes()[0]); }
public void testDefaultTerminators() { char[] terminators = GeneralizedSuffixTree.getDefaultTerminators(2); assertEquals(2, terminators.length); assertEquals('\ud800', terminators[0]); assertEquals('\ud801', terminators[1]); GeneralizedSuffixTree gst = new GeneralizedSuffixTree(new String[] {"abab", "baba"}); TestHelper.dumpEdges(gst.getSuffixTree()); assertEquals("aba", gst.getLcsAsString()); gst = new GeneralizedSuffixTree(new String[] {"abababcdab", "abbbabceab"}); GeneralizedSuffixTree.CommonSubstr commonSubstr = gst.getLcs(); assertNotNull(commonSubstr); assertEquals(3, commonSubstr.getBeginIndexes()[0]); assertEquals(6, commonSubstr.getEndIndexes()[0]); assertEquals(14, commonSubstr.getBeginIndexes()[1]); assertEquals(17, commonSubstr.getEndIndexes()[1]); int[] beginIndexes = gst.incIndexes(commonSubstr.getEndIndexes()); commonSubstr = gst.getLcs(gst.getDefaultBeginIndexes(), commonSubstr.getBeginIndexes()); assertNotNull(commonSubstr); assertEquals(0, commonSubstr.getBeginIndexes()[0]); assertEquals(1, commonSubstr.getEndIndexes()[0]); assertEquals(11, commonSubstr.getBeginIndexes()[1]); assertEquals(12, commonSubstr.getEndIndexes()[1]); commonSubstr = gst.getLcs(beginIndexes, gst.getDefaultEndIndexes()); assertNotNull(commonSubstr); assertEquals(8, commonSubstr.getBeginIndexes()[0]); assertEquals(9, commonSubstr.getEndIndexes()[0]); assertEquals(19, commonSubstr.getBeginIndexes()[1]); assertEquals(20, commonSubstr.getEndIndexes()[1]); List<GeneralizedSuffixTree.CommonSubstr> list = gst.diff(); assertEquals(3, list.size()); for (GeneralizedSuffixTree.CommonSubstr cs : list) { System.out.print( "abababcdab".substring(cs.getBeginIndexes()[0], cs.getEndIndexes()[0]) + " "); } System.out.println(); }
public void testAbabBabaBa() { GeneralizedSuffixTree gst = new GeneralizedSuffixTree(new String[] {"abab", "baba", "ba"}, new char[] {'#', '$', '%'}); TestHelper.dumpEdges(gst.getSuffixTree()); assertEquals("ba", gst.getLcsAsString()); }
public void testXabxaBabxba() { GeneralizedSuffixTree gst = new GeneralizedSuffixTree("xabxa", "babxba", '#', '$'); TestHelper.dumpEdges(gst.getSuffixTree()); assertEquals("abx", gst.getLcsAsString()); }