Esempio n. 1
0
    public void Errors_if_target_does_not_exist_in_a_large_tree()
    {
        var tree = new Tree("parent", new Tree("x", new Tree("kid-0"), new Tree("kid-1")), new Tree("sibling-0"), new Tree("sibling-1"));
        var from = "nonexistent";

        Assert.Throws <ArgumentException>(() => Pov.FromPov(tree, from));
    }
Esempio n. 2
0
    public void Errors_if_target_does_not_exist_in_a_singleton_tree()
    {
        var tree = new Tree("x");
        var from = "nonexistent";

        Assert.Throws <ArgumentException>(() => Pov.FromPov(tree, from));
    }
Esempio n. 3
0
    public void Results_in_the_same_tree_if_the_input_tree_is_a_singleton()
    {
        var tree     = new Tree("x");
        var from     = "x";
        var expected = new Tree("x");

        Assert.Equal(expected, Pov.FromPov(tree, from));
    }
Esempio n. 4
0
    public void Can_reroot_a_complex_tree_with_cousins()
    {
        var tree     = new Tree("grandparent", new Tree("parent", new Tree("x", new Tree("kid-0"), new Tree("kid-1")), new Tree("sibling-0"), new Tree("sibling-1")), new Tree("uncle", new Tree("cousin-0"), new Tree("cousin-1")));
        var from     = "x";
        var expected = new Tree("x", new Tree("kid-1"), new Tree("kid-0"), new Tree("parent", new Tree("sibling-0"), new Tree("sibling-1"), new Tree("grandparent", new Tree("uncle", new Tree("cousin-0"), new Tree("cousin-1")))));

        Assert.Equal(expected, Pov.FromPov(tree, from));
    }
Esempio n. 5
0
    public void Moves_children_of_the_new_root_to_same_level_as_former_parent()
    {
        var tree     = new Tree("parent", new Tree("x", new Tree("kid-0"), new Tree("kid-1")));
        var from     = "x";
        var expected = new Tree("x", new Tree("kid-0"), new Tree("kid-1"), new Tree("parent"));

        Assert.Equal(expected, Pov.FromPov(tree, from));
    }
Esempio n. 6
0
    public void Can_reroot_a_tree_with_new_root_deeply_nested_in_tree()
    {
        var tree     = new Tree("level-0", new Tree("level-1", new Tree("level-2", new Tree("level-3", new Tree("x")))));
        var from     = "x";
        var expected = new Tree("x", new Tree("level-3", new Tree("level-2", new Tree("level-1", new Tree("level-0")))));

        Assert.Equal(expected, Pov.FromPov(tree, from));
    }
Esempio n. 7
0
    public void Can_reroot_a_tree_with_a_parent_and_many_siblings()
    {
        var tree     = new Tree("parent", new Tree("a"), new Tree("x"), new Tree("b"), new Tree("c"));
        var from     = "x";
        var expected = new Tree("x", new Tree("parent", new Tree("a"), new Tree("b"), new Tree("c")));

        Assert.Equal(expected, Pov.FromPov(tree, from));
    }