@Test(dataProvider = "MeetsMinSequenceData") public void testSplitterCompleteCycle( final List<String> mids, final int minSeqLength, final boolean prefixMeets, final boolean suffixMeets) { final SeqGraph graph = new SeqGraph(11); final SeqVertex top = new SeqVertex("AAAAAAAA"); final SeqVertex bot = new SeqVertex("GGGGGGGG"); final List<SeqVertex> v = new ArrayList<>(); for (final String s : mids) { v.add(new SeqVertex(s)); } graph.addVertices(v.toArray(new SeqVertex[v.size()])); graph.addVertices(top, bot); for (final SeqVertex vi : v) { graph.addEdge(top, vi); graph.addEdge(vi, bot); } final SharedVertexSequenceSplitter splitter = new SharedVertexSequenceSplitter(graph, v); Assert.assertEquals( splitter.meetsMinMergableSequenceForPrefix(minSeqLength), prefixMeets, "Prefix failed"); Assert.assertEquals( splitter.meetsMinMergableSequenceForSuffix(minSeqLength), suffixMeets, "Suffix failed"); Assert.assertEquals( splitter.meetsMinMergableSequenceForEitherPrefixOrSuffix(minSeqLength), suffixMeets || prefixMeets, "Either prefix or suffix failed"); }