import com.google.common.collect.Lists;
import org.junit.Test;
import static org.fest.assertions.api.Assertions.assertThat;
public class DFSTreeTest {
@Test
public void
a_node_with_one_child_generates_one_plan(){
DFSTree tree = DFSTreeBuilder.aTreeBuilder().withLabel(0).withChild(DFSTreeBuilder.aTreeBuilder().withLabel(1)).build();
assertThat(tree.generateCombinations()).isEqualTo(Lists.newArrayList("0,1")) ;
}
@Test
public void
a_node_with_two_children_generates_two_plans(){
DFSTree tree = DFSTreeBuilder.aTreeBuilder().withLabel(0).withChild(DFSTreeBuilder.aTreeBuilder().withLabel(1)).
withChild(DFSTreeBuilder.aTreeBuilder().withLabel(2)).build();
assertThat(tree.generateCombinations()).isEqualTo(Lists.newArrayList("0,1,2","0,2,1"));
}
@Test
public void
a_node_with_two_levels_generates_two_plans(){
DFSTree tree = DFSTreeBuilder.aTreeBuilder().withLabel(0)
.withChild(DFSTreeBuilder.aTreeBuilder().withLabel(1)
.withChild(DFSTreeBuilder.aTreeBuilder().withLabel(2))
.withChild(DFSTreeBuilder.aTreeBuilder().withLabel(3))).build();
assertThat(tree.generateCombinations()).isEqualTo(Lists.newArrayList("0,1,2,3","0,1,3,2"));
}
/* @Test
public void
three_nodes_should_return_two_trees_with_three_nodes(){
DFSTree dfsTree = new DFSTree(3);
dfsTree.edge(1,2);
dfsTree.edge(1,3);
assertThat(dfsTree.generateTree()).isEqualTo(new DFSNode(1));
}
@Ignore
@Test
public void
acceptance_test() {
DFSTree dfsTree = new DFSTree(5);
dfsTree.edge(1, 3);
}*/
}