Example #1
0
    public void BranchWithChildBrush_Clear_BranchIsEmpty()
    {
        const int brushUserID  = 10;
        const int branchUserID = 11;
        var       brush        = CSGTreeBrush.Create(userID: brushUserID);
        var       branch       = CSGTreeBranch.Create(branchUserID, new CSGTreeNode[] { brush });

        CSGManager.ClearDirty(brush);
        CSGManager.ClearDirty(branch);

        branch.Clear();

        TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
        Assert.AreEqual(true, branch.Dirty);
        Assert.AreEqual(true, brush.Dirty);
        Assert.AreEqual(0, brush.Parent.NodeID);
        Assert.AreEqual(0, brush.Tree.NodeID);
        Assert.AreEqual(0, branch.Parent.NodeID);
        Assert.AreEqual(0, branch.Tree.NodeID);
        Assert.AreEqual(0, branch.Count);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(1, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(2, CSGManager.TreeNodeCount);
    }
Example #2
0
        public void BranchWithBranch_DestroyBranch_BranchIsEmpty()
        {
            const int branchUserID1 = 10;
            const int branchUserID2 = 11;
            var       branch1       = CSGTreeBranch.Create(branchUserID1);
            var       branch2       = CSGTreeBranch.Create(branchUserID2, new CSGTreeNode[] { branch1 });

            CSGManager.ClearDirty(branch1);
            CSGManager.ClearDirty(branch2);

            var result = branch1.Destroy();

            Assert.AreEqual(true, result);
            TestUtility.ExpectInvalidBranch(ref branch1);
            Assert.AreEqual(true, branch2.Dirty);
            Assert.AreEqual(0, branch1.Parent.NodeID);
            Assert.AreEqual(0, branch1.Tree.NodeID);
            Assert.AreEqual(0, branch2.Parent.NodeID);
            Assert.AreEqual(0, branch2.Tree.NodeID);
            Assert.AreEqual(0, branch2.Count);
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
        }
    public void TreeWith3Children_RemoveRangeWithCount0AndInvalidIndex_ReturnsFalse()
    {
        const int brushUserID1 = 10;
        const int brushUserID2 = 11;
        const int brushUserID3 = 12;
        const int treeUserID   = 13;
        var       brush1       = CSGTreeBrush.Create(userID: brushUserID1);
        var       brush2       = CSGTreeBrush.Create(userID: brushUserID2);
        var       brush3       = CSGTreeBrush.Create(userID: brushUserID3);
        var       tree         = CSGTree.Create(treeUserID, new CSGTreeNode[] { brush1, brush2, brush3 });

        CSGManager.ClearDirty(brush1);
        CSGManager.ClearDirty(brush2);
        CSGManager.ClearDirty(brush3);
        CSGManager.ClearDirty(tree);

        var result = tree.RemoveRange(3, 0);

        Assert.AreEqual(false, result);
        TestUtility.ExpectValidBrushWithUserID(ref brush1, brushUserID1);
        TestUtility.ExpectValidBrushWithUserID(ref brush2, brushUserID2);
        TestUtility.ExpectValidBrushWithUserID(ref brush3, brushUserID3);
        TestUtility.ExpectValidTreeWithUserID(ref tree, treeUserID);
        Assert.AreEqual(0, brush1.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush1.Tree.NodeID);
        Assert.AreEqual(0, brush2.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush2.Tree.NodeID);
        Assert.AreEqual(0, brush3.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush3.Tree.NodeID);
        Assert.AreEqual(3, tree.Count);
        Assert.AreEqual(0, CSGManager.TreeBranchCount);
        Assert.AreEqual(3, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeCount);
        Assert.AreEqual(4, CSGManager.TreeNodeCount);
    }
Example #4
0
        public void BranchWithChildBranch_RemoveBranch_IsEmpty()
        {
            const int branchUserID1 = 10;
            const int branchUserID2 = 11;
            var       branch1       = CSGTreeBranch.Create(branchUserID1);
            var       branch2       = CSGTreeBranch.Create(branchUserID2, new CSGTreeNode[] { branch1 });

            CSGManager.ClearDirty(branch1);
            CSGManager.ClearDirty(branch2);

            var result = branch2.Remove(branch1);

            Assert.AreEqual(true, result);
            TestUtility.ExpectValidBranchWithUserID(ref branch1, branchUserID1);
            Assert.AreEqual(true, branch1.Dirty);
            Assert.AreEqual(true, branch2.Dirty);
            Assert.AreEqual(0, branch1.Parent.NodeID);
            Assert.AreEqual(0, branch1.Tree.NodeID);
            Assert.AreEqual(0, branch1.Count);
            Assert.AreEqual(0, branch2.Parent.NodeID);
            Assert.AreEqual(0, branch2.Tree.NodeID);
            Assert.AreEqual(0, branch2.Count);
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(2, CSGManager.TreeBranchCount, "Expected 2 TreeBranches to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
        }
Example #5
0
    public void BranchWithChildBranch_Clear_BranchIsEmpty()
    {
        const int branchUserID1 = 10;
        const int branchUserID2 = 11;
        var       branch1       = CSGTreeBranch.Create(branchUserID1);
        var       branch2       = CSGTreeBranch.Create(branchUserID2, new CSGTreeNode[] { branch1 });

        CSGManager.ClearDirty(branch1);
        CSGManager.ClearDirty(branch2);

        branch2.Clear();

        TestUtility.ExpectValidBranchWithUserID(ref branch1, branchUserID1);
        Assert.AreEqual(true, branch1.Dirty);
        Assert.AreEqual(true, branch2.Dirty);
        Assert.AreEqual(0, branch1.Parent.NodeID);
        Assert.AreEqual(0, branch1.Tree.NodeID);
        Assert.AreEqual(0, branch1.Count);
        Assert.AreEqual(0, branch2.Parent.NodeID);
        Assert.AreEqual(0, branch2.Tree.NodeID);
        Assert.AreEqual(0, branch2.Count);
        Assert.AreEqual(0, CSGManager.TreeBrushCount);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(2, CSGManager.TreeBranchCount);
        Assert.AreEqual(2, CSGManager.TreeNodeCount);
    }
Example #6
0
        public void Tree_AddSameBranchTwice_ReturnsFalse()
        {
            const int branchUserID = 10;
            const int treeUserID   = 11;
            var       branch       = CSGTreeBranch.Create(branchUserID);
            var       tree         = CSGTree.Create(treeUserID);

            CSGManager.ClearDirty(branch);
            CSGManager.ClearDirty(tree);

            var result1 = tree.Add(branch);
            var result2 = tree.Add(branch);

            Assert.AreEqual(true, result1);
            Assert.AreEqual(false, result2);
            TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
            TestUtility.ExpectValidTreeWithUserID(ref tree, treeUserID);
            Assert.AreEqual(true, branch.Dirty);
            Assert.AreEqual(true, tree.Dirty);
            Assert.AreEqual(0, tree.CountOfBrushesInTree);
            Assert.AreEqual(0, branch.Parent.NodeID);
            Assert.AreEqual(tree.NodeID, branch.Tree.NodeID);
            Assert.AreEqual(0, branch.Count);
            Assert.AreEqual(1, tree.Count);
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
        }
Example #7
0
    public void Tree_SetChildrenWithBranchWithBrushReversed_ContainsBranchThatContainsBrush()
    {
        const int brushUserID  = 10;
        const int branchUserID = 11;
        const int treeUserID   = 12;
        var       brush        = CSGTreeBrush.Create(userID: brushUserID);
        var       branch       = CSGTreeBranch.Create(branchUserID);
        var       tree         = CSGTree.Create(treeUserID);

        CSGManager.ClearDirty(brush);
        CSGManager.ClearDirty(branch);
        CSGManager.ClearDirty(tree);

        tree.InsertRange(0, new CSGTreeNode[] { branch });
        branch.InsertRange(0, new CSGTreeNode[] { brush });

        TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
        TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
        TestUtility.ExpectValidTreeWithUserID(ref tree, treeUserID);
        Assert.AreEqual(true, brush.Dirty);
        Assert.AreEqual(true, branch.Dirty);
        Assert.AreEqual(true, tree.Dirty);
        Assert.AreEqual(true, tree.IsInTree(brush));
        Assert.AreEqual(1, tree.CountOfBrushesInTree);
        Assert.AreEqual(branch.NodeID, brush.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush.Tree.NodeID);
        Assert.AreEqual(0, branch.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, branch.Tree.NodeID);
        Assert.AreEqual(1, branch.Count);
        Assert.AreEqual(1, tree.Count);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(1, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeCount);
        Assert.AreEqual(3, CSGManager.TreeNodeCount);
    }
Example #8
0
    public void Branch_SetChildrenWithBranch_ContainsBranch()
    {
        const int branchUserID1 = 10;
        const int branchUserID2 = 11;
        var       branch1       = CSGTreeBranch.Create(branchUserID1);
        var       branch2       = CSGTreeBranch.Create(branchUserID2);

        CSGManager.ClearDirty(branch1);
        CSGManager.ClearDirty(branch2);

        branch2.InsertRange(0, new CSGTreeNode[] { branch1 });

        TestUtility.ExpectValidBranchWithUserID(ref branch1, branchUserID1);
        TestUtility.ExpectValidBranchWithUserID(ref branch2, branchUserID2);
        Assert.AreEqual(true, branch1.Dirty);
        Assert.AreEqual(true, branch2.Dirty);
        Assert.AreEqual(branch2.NodeID, branch1.Parent.NodeID);
        Assert.AreEqual(0, branch1.Tree.NodeID);
        Assert.AreEqual(0, branch1.Count);
        Assert.AreEqual(0, branch2.Parent.NodeID);
        Assert.AreEqual(0, branch2.Tree.NodeID);
        Assert.AreEqual(1, branch2.Count);
        Assert.AreEqual(0, CSGManager.TreeBrushCount);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(2, CSGManager.TreeBranchCount);
        Assert.AreEqual(2, CSGManager.TreeNodeCount);
    }
    public void Branch_RemoveUnknownBrush_ReturnsFalse()
    {
        const int brushUserID  = 10;
        const int branchUserID = 11;
        var       brush        = CSGTreeBrush.Create(userID: brushUserID);
        var       branch       = CSGTreeBranch.Create(branchUserID);

        CSGManager.ClearDirty(brush);
        CSGManager.ClearDirty(branch);

        var result = branch.Remove(brush);

        Assert.AreEqual(false, result);
        TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
        Assert.AreEqual(false, brush.Dirty);
        Assert.AreEqual(false, branch.Dirty);
        Assert.AreEqual(0, brush.Parent.NodeID);
        Assert.AreEqual(0, brush.Tree.NodeID);
        Assert.AreEqual(0, branch.Parent.NodeID);
        Assert.AreEqual(0, branch.Tree.NodeID);
        Assert.AreEqual(0, branch.Count);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(1, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(2, CSGManager.TreeNodeCount);
    }
    public void BranchWithChildBrush_RemoveSameBrushTwice_ReturnsFalse()
    {
        const int brushUserID  = 10;
        const int branchUserID = 11;
        var       brush        = CSGTreeBrush.Create(userID: brushUserID);
        var       branch       = CSGTreeBranch.Create(branchUserID, new CSGTreeNode[] { brush });

        CSGManager.ClearDirty(brush);
        CSGManager.ClearDirty(branch);

        var result1 = branch.Remove(brush);
        var result2 = branch.Remove(brush);

        Assert.AreEqual(true, result1);
        Assert.AreEqual(false, result2);
        TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
        Assert.AreEqual(true, brush.Dirty);
        Assert.AreEqual(true, branch.Dirty);
        Assert.AreEqual(0, brush.Parent.NodeID);
        Assert.AreEqual(0, brush.Tree.NodeID);
        Assert.AreEqual(0, branch.Parent.NodeID);
        Assert.AreEqual(0, branch.Tree.NodeID);
        Assert.AreEqual(0, branch.Count);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(1, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(2, CSGManager.TreeNodeCount);
    }
Example #11
0
        public void Branch_InsertBrush_ContainsBrush()
        {
            const int brushUserID  = 10;
            const int branchUserID = 11;
            var       brush        = CSGTreeBrush.Create(userID: brushUserID);
            var       branch       = CSGTreeBranch.Create(branchUserID);

            CSGManager.ClearDirty(brush);
            CSGManager.ClearDirty(branch);

            var result = branch.Insert(0, brush);

            Assert.AreEqual(true, result);
            TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
            TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
            Assert.AreEqual(true, brush.Dirty);
            Assert.AreEqual(true, branch.Dirty);
            Assert.AreEqual(branch.NodeID, brush.Parent.NodeID);
            Assert.AreEqual(0, brush.Tree.NodeID);
            Assert.AreEqual(1, branch.Count);
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
        }
Example #12
0
        public void TreeWithChildBrush_RemoveSameBrushTwice_ReturnsFalse()
        {
            const int brushUserID = 10;
            const int treeUserID  = 11;
            var       brush       = CSGTreeBrush.Create(userID: brushUserID);
            var       tree        = CSGTree.Create(treeUserID, new CSGTreeNode[] { brush });

            CSGManager.ClearDirty(brush);
            CSGManager.ClearDirty(tree);

            var result1 = tree.Remove(brush);
            var result2 = tree.Remove(brush);

            Assert.AreEqual(true, result1);
            Assert.AreEqual(false, result2);
            TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
            Assert.AreEqual(true, brush.Dirty);
            Assert.AreEqual(true, tree.Dirty);
            Assert.AreEqual(false, tree.IsInTree(brush));
            Assert.AreEqual(0, tree.CountOfBrushesInTree);
            Assert.AreEqual(0, brush.Parent.NodeID);
            Assert.AreEqual(0, brush.Tree.NodeID);
            Assert.AreEqual(0, tree.Count);
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
        }
Example #13
0
        public void CreateBranchWithChildren()
        {
            const int     brushUserID   = 10;
            const int     branchUserID1 = 11;
            const int     branchUserID2 = 12;
            CSGTreeBrush  brush         = CSGTreeBrush.Create(userID: brushUserID);
            CSGTreeBranch branch1       = CSGTreeBranch.Create(branchUserID1);

            CSGManager.ClearDirty(brush);
            CSGManager.ClearDirty(branch1);


            CSGTreeBranch branch2 = CSGTreeBranch.Create(branchUserID2, new CSGTreeNode[] { brush, branch1 });


            TestUtility.ExpectValidBranchWithUserID(ref branch2, branchUserID2);
            Assert.AreEqual(true, branch1.Dirty);
            Assert.AreEqual(true, branch2.Dirty);
            Assert.AreEqual(true, brush.Dirty);
            Assert.AreEqual(branch2.NodeID, brush.Parent.NodeID);
            Assert.AreEqual(0, brush.Tree.NodeID);
            Assert.AreEqual(branch2.NodeID, branch1.Parent.NodeID);
            Assert.AreEqual(0, branch1.Tree.NodeID);
            Assert.AreEqual(0, branch1.Count);
            Assert.AreEqual(0, branch2.Parent.NodeID);
            Assert.AreEqual(0, branch2.Tree.NodeID);
            Assert.AreEqual(2, branch2.Count);
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeBranchCount, "Expected 2 TreeBranches to Exist");
            Assert.AreEqual(3, CSGManager.TreeNodeCount, "Expected 3 TreeNodes to Exist");
        }
Example #14
0
        public void Branch_AddSameBranchTwice_ReturnsFalse()
        {
            const int branchUserID1 = 10;
            const int branchUserID2 = 11;
            var       branch1       = CSGTreeBranch.Create(branchUserID1);
            var       branch2       = CSGTreeBranch.Create(branchUserID2);

            CSGManager.ClearDirty(branch1);
            CSGManager.ClearDirty(branch2);

            var result1 = branch2.Add(branch1);
            var result2 = branch2.Add(branch1);

            Assert.AreEqual(true, result1);
            Assert.AreEqual(false, result2);
            TestUtility.ExpectValidBranchWithUserID(ref branch1, branchUserID1);
            TestUtility.ExpectValidBranchWithUserID(ref branch2, branchUserID2);
            Assert.AreEqual(true, branch1.Dirty);
            Assert.AreEqual(true, branch2.Dirty);
            Assert.AreEqual(branch2.NodeID, branch1.Parent.NodeID);
            Assert.AreEqual(0, branch1.Tree.NodeID);
            Assert.AreEqual(0, branch1.Count);
            Assert.AreEqual(0, branch2.Parent.NodeID);
            Assert.AreEqual(0, branch2.Tree.NodeID);
            Assert.AreEqual(1, branch2.Count);
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(2, CSGManager.TreeBranchCount, "Expected 2 TreeBranches to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
        }
Example #15
0
        public void Tree_AddChildBrushOfOtherTree_MovesBrushToTree()
        {
            const int brushUserID = 10;
            const int treeUserID1 = 11;
            const int treeUserID2 = 12;
            var       brush       = CSGTreeBrush.Create(userID: brushUserID);
            var       tree2       = CSGTree.Create(treeUserID2);
            var       tree1       = CSGTree.Create(treeUserID1, new CSGTreeNode[] { brush });

            CSGManager.ClearDirty(brush);
            CSGManager.ClearDirty(tree1);
            CSGManager.ClearDirty(tree2);
            var result = tree2.Add(brush);

            Assert.AreEqual(true, result);
            TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
            TestUtility.ExpectValidTreeWithUserID(ref tree1, treeUserID1);
            TestUtility.ExpectValidTreeWithUserID(ref tree2, treeUserID2);
            Assert.AreEqual(true, tree1.Dirty);
            Assert.AreEqual(true, tree2.Dirty);
            Assert.AreEqual(true, brush.Dirty);
            Assert.AreEqual(false, tree1.IsInTree(brush));
            Assert.AreEqual(true, tree2.IsInTree(brush));
            Assert.AreEqual(0, tree1.CountOfBrushesInTree);
            Assert.AreEqual(1, tree2.CountOfBrushesInTree);
            Assert.AreEqual(tree2.NodeID, brush.Tree.NodeID);
            Assert.AreEqual(0, brush.Parent.NodeID);
            Assert.AreEqual(0, tree1.Count);
            Assert.AreEqual(1, tree2.Count);
            Assert.AreEqual(2, CSGManager.TreeCount, "Expected 2 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(3, CSGManager.TreeNodeCount, "Expected 3 TreeNodes to Exist");
        }
Example #16
0
        public void Branch_AddSameBrushTwice_ReturnsFalse()
        {
            const int brushUserID  = 10;
            const int branchUserID = 11;
            var       brush        = CSGTreeBrush.Create(userID: brushUserID);
            var       branch       = CSGTreeBranch.Create(branchUserID);

            CSGManager.ClearDirty(brush);
            CSGManager.ClearDirty(branch);

            var result1 = branch.Add(brush);
            var result2 = branch.Add(brush);

            Assert.AreEqual(true, result1);
            Assert.AreEqual(false, result2);
            TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
            TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
            Assert.AreEqual(true, branch.Dirty);
            Assert.AreEqual(true, brush.Dirty);
            Assert.AreEqual(0, brush.Tree.NodeID);
            Assert.AreEqual(branch.NodeID, brush.Parent.NodeID);
            Assert.AreEqual(0, brush.Tree.NodeID);
            Assert.AreEqual(1, branch.Count);
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
        }
Example #17
0
    public void BranchWithTwoChildren_RemoveLastNode_StillHasFirstNode()
    {
        const int branchUserID = 10;
        const int brushUserID1 = 11;
        const int brushUserID2 = 12;
        var       brush1       = CSGTreeBrush.Create(userID: brushUserID1);
        var       brush2       = CSGTreeBrush.Create(userID: brushUserID2);
        var       branch       = CSGTreeBranch.Create(branchUserID, new CSGTreeNode[] { brush1, brush2 });

        CSGManager.ClearDirty(brush1);
        CSGManager.ClearDirty(brush2);
        CSGManager.ClearDirty(branch);

        var result = branch.RemoveAt(1);

        Assert.AreEqual(true, result);
        TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
        TestUtility.ExpectValidBrushWithUserID(ref brush1, brushUserID1);
        TestUtility.ExpectValidBrushWithUserID(ref brush2, brushUserID2);
        Assert.AreEqual(false, brush1.Dirty);
        Assert.AreEqual(true, brush2.Dirty);
        Assert.AreEqual(true, branch.Dirty);
        Assert.AreEqual(branch.NodeID, brush1.Parent.NodeID);
        Assert.AreEqual(0, brush1.Tree.NodeID);
        Assert.AreEqual(0, brush2.Parent.NodeID);
        Assert.AreEqual(0, brush2.Tree.NodeID);
        Assert.AreEqual(1, branch.Count);
        Assert.AreEqual(brush1.NodeID, branch[0].NodeID);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(2, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(3, CSGManager.TreeNodeCount);
    }
Example #18
0
        public void Tree_AddBrush_ContainsBrush()
        {
            const int brushUserID = 10;
            const int treeUserID  = 11;
            var       brush       = CSGTreeBrush.Create(userID: brushUserID);
            var       tree        = CSGTree.Create(treeUserID);

            CSGManager.ClearDirty(brush);
            CSGManager.ClearDirty(tree);

            var result = tree.Add(brush);

            Assert.AreEqual(true, result);
            TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
            TestUtility.ExpectValidTreeWithUserID(ref tree, treeUserID);
            Assert.AreEqual(true, tree.Dirty);
            Assert.AreEqual(true, brush.Dirty);
            Assert.AreEqual(true, tree.IsInTree(brush));
            Assert.AreEqual(1, tree.CountOfBrushesInTree);
            Assert.AreEqual(0, brush.Parent.NodeID);
            Assert.AreEqual(tree.NodeID, brush.Tree.NodeID);
            Assert.AreEqual(1, tree.Count);
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
        }
Example #19
0
    public void BranchWithSingleChild_RemoveLastNode_IsEmptyBranch()
    {
        const int branchUserID = 10;
        const int brushUserID  = 11;
        var       brush        = CSGTreeBrush.Create(userID: brushUserID);
        var       branch       = CSGTreeBranch.Create(branchUserID, new CSGTreeNode[] { brush });

        CSGManager.ClearDirty(brush);
        CSGManager.ClearDirty(branch);

        var result = branch.RemoveAt(0);

        Assert.AreEqual(true, result);
        TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
        TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
        Assert.AreEqual(true, brush.Dirty);
        Assert.AreEqual(true, branch.Dirty);
        Assert.AreEqual(0, brush.Parent.NodeID);
        Assert.AreEqual(0, brush.Tree.NodeID);
        Assert.AreEqual(0, branch.Count);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(1, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(2, CSGManager.TreeNodeCount);
    }
    public void TreeWithChildBranch_RemoveBranch_IsEmpty()
    {
        const int branchUserID = 10;
        const int treeUserID   = 11;
        var       branch       = CSGTreeBranch.Create(branchUserID);
        var       tree         = CSGTree.Create(treeUserID, new CSGTreeNode[] { branch });

        CSGManager.ClearDirty(branch);
        CSGManager.ClearDirty(tree);

        var result = tree.Remove(branch);

        Assert.AreEqual(true, result);
        TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
        Assert.AreEqual(true, tree.Dirty);
        Assert.AreEqual(true, branch.Dirty);
        Assert.AreEqual(0, branch.Parent.NodeID);
        Assert.AreEqual(0, branch.Tree.NodeID);
        Assert.AreEqual(0, branch.Count);
        Assert.AreEqual(0, tree.Count);
        Assert.AreEqual(0, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(1, CSGManager.TreeCount);
        Assert.AreEqual(2, CSGManager.TreeNodeCount);
    }
Example #21
0
        public void TreeWithBranch_DestroyBranch_TreeIsEmpty()
        {
            const int branchUserID = 10;
            const int treeUserID   = 11;
            var       branch       = CSGTreeBranch.Create(branchUserID);
            var       tree         = CSGTree.Create(treeUserID);

            tree.InsertRange(0, new CSGTreeNode[] { branch });
            CSGManager.ClearDirty(branch);
            CSGManager.ClearDirty(tree);

            var result = branch.Destroy();

            Assert.AreEqual(true, result);
            TestUtility.ExpectInvalidBranch(ref branch);
            Assert.AreEqual(true, tree.Dirty);
            Assert.AreEqual(0, branch.Parent.NodeID);
            Assert.AreEqual(0, branch.Tree.NodeID);
            Assert.AreEqual(0, branch.Count);
            Assert.AreEqual(0, tree.Count);
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
        }
Example #22
0
    public void CreateTreeWithChildren()
    {
        const int     brushUserID  = 10;
        const int     branchUserID = 11;
        const int     treeUserID   = 12;
        CSGTreeBrush  brush        = CSGTreeBrush.Create(userID: brushUserID);
        CSGTreeBranch branch       = CSGTreeBranch.Create(branchUserID);

        CSGManager.ClearDirty(brush);
        CSGManager.ClearDirty(branch);


        CSGTree tree = CSGTree.Create(treeUserID, new CSGTreeNode[] { brush, branch });


        TestUtility.ExpectValidTreeWithUserID(ref tree, treeUserID);
        Assert.AreEqual(true, branch.Dirty);
        Assert.AreEqual(true, tree.Dirty);
        Assert.AreEqual(true, brush.Dirty);
        Assert.AreEqual(0, brush.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush.Tree.NodeID);
        Assert.AreEqual(0, branch.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, branch.Tree.NodeID);
        Assert.AreEqual(0, branch.Count);
        Assert.AreEqual(2, tree.Count);
        Assert.AreEqual(1, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeBranchCount);
        Assert.AreEqual(1, CSGManager.TreeCount);
        Assert.AreEqual(3, CSGManager.TreeNodeCount);
    }
Example #23
0
    public void Brush_SetInfiniteToFalseAndTrue_GetInfiniteIsTrue()
    {
        var brush = CSGTreeBrush.Create();

        CSGManager.ClearDirty(brush);

        brush.Flags = CSGTreeBrushFlags.Default;
        brush.Flags = CSGTreeBrushFlags.Infinite;

        Assert.AreEqual(CSGTreeBrushFlags.Infinite, brush.Flags);
    }
    public void Brush_SetLocalToTreeToMultipleValues_GetLocalToTreeIsLastSetValue()
    {
        var brush = CSGTreeBrush.Create();

        CSGManager.ClearDirty(brush);

        brush.LocalTransformation = testMatrix1;
        brush.LocalTransformation = testMatrix2;

        Assert.AreEqual(testMatrix2, brush.LocalTransformation);
        Assert.AreEqual(true, brush.Dirty);
    }
    public void TreeWithTwoChildren_InsertRangeWithBrushesInMiddle_TreeContainsBrushesInOrder()
    {
        const int brushUserID1 = 10;
        const int brushUserID2 = 11;
        const int brushUserID3 = 12;
        const int brushUserID4 = 13;
        const int treeUserID   = 14;
        var       brush1       = CSGTreeBrush.Create(userID: brushUserID1);
        var       brush2       = CSGTreeBrush.Create(userID: brushUserID2);
        var       brush3       = CSGTreeBrush.Create(userID: brushUserID3);
        var       brush4       = CSGTreeBrush.Create(userID: brushUserID4);
        var       tree         = CSGTree.Create(treeUserID, new CSGTreeNode[] { brush3, brush4 });

        CSGManager.ClearDirty(brush1);
        CSGManager.ClearDirty(brush2);
        CSGManager.ClearDirty(brush3);
        CSGManager.ClearDirty(brush4);
        CSGManager.ClearDirty(tree);

        var result = tree.InsertRange(1, new CSGTreeNode[] { brush1, brush2 });

        Assert.AreEqual(true, result);
        TestUtility.ExpectValidBrushWithUserID(ref brush1, brushUserID1);
        TestUtility.ExpectValidBrushWithUserID(ref brush2, brushUserID2);
        TestUtility.ExpectValidBrushWithUserID(ref brush3, brushUserID3);
        TestUtility.ExpectValidBrushWithUserID(ref brush4, brushUserID4);
        TestUtility.ExpectValidTreeWithUserID(ref tree, treeUserID);
        Assert.AreEqual(true, tree.Dirty);
        Assert.AreEqual(true, brush1.Dirty);
        Assert.AreEqual(true, brush2.Dirty);
        Assert.AreEqual(false, brush3.Dirty);
        Assert.AreEqual(false, brush4.Dirty);
        Assert.AreEqual(0, brush1.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush1.Tree.NodeID);
        Assert.AreEqual(0, brush2.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush2.Tree.NodeID);
        Assert.AreEqual(0, brush3.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush3.Tree.NodeID);
        Assert.AreEqual(0, brush4.Parent.NodeID);
        Assert.AreEqual(tree.NodeID, brush4.Tree.NodeID);

        Assert.AreEqual(brush3.NodeID, tree[0].NodeID);
        Assert.AreEqual(brush1.NodeID, tree[1].NodeID);
        Assert.AreEqual(brush2.NodeID, tree[2].NodeID);
        Assert.AreEqual(brush4.NodeID, tree[3].NodeID);

        Assert.AreEqual(4, tree.Count);
        Assert.AreEqual(0, CSGManager.TreeBranchCount);
        Assert.AreEqual(4, CSGManager.TreeBrushCount);
        Assert.AreEqual(1, CSGManager.TreeCount);
        Assert.AreEqual(5, CSGManager.TreeNodeCount);
    }
Example #26
0
        public void Branch_InsertBrushAtEnd_HasBrushInBack()
        {
            const int brushUserID1 = 10;
            const int brushUserID2 = 11;
            const int brushUserID3 = 12;
            const int branchUserID = 13;
            const int treeUserID   = 14;
            var       brush1       = CSGTreeBrush.Create(userID: brushUserID1);
            var       brush2       = CSGTreeBrush.Create(userID: brushUserID2);
            var       brush3       = CSGTreeBrush.Create(userID: brushUserID3);
            var       branch       = CSGTreeBranch.Create(branchUserID, new CSGTreeNode[] { brush1, brush2 });
            var       tree         = CSGTree.Create(treeUserID, new CSGTreeNode[] { branch });

            CSGManager.ClearDirty(brush1);
            CSGManager.ClearDirty(brush2);
            CSGManager.ClearDirty(brush3);
            CSGManager.ClearDirty(branch);
            CSGManager.ClearDirty(tree);

            var result = branch.Insert(2, brush3);

            Assert.AreEqual(true, result);
            TestUtility.ExpectValidBrushWithUserID(ref brush1, brushUserID1);
            TestUtility.ExpectValidBrushWithUserID(ref brush2, brushUserID2);
            TestUtility.ExpectValidBrushWithUserID(ref brush3, brushUserID3);
            TestUtility.ExpectValidBranchWithUserID(ref branch, branchUserID);
            Assert.AreEqual(true, tree.Dirty);
            Assert.AreEqual(true, branch.Dirty);
            Assert.AreEqual(false, brush1.Dirty);
            Assert.AreEqual(false, brush2.Dirty);
            Assert.AreEqual(true, brush3.Dirty);
            Assert.AreEqual(true, tree.IsInTree(brush1));
            Assert.AreEqual(true, tree.IsInTree(brush2));
            Assert.AreEqual(true, tree.IsInTree(brush3));
            Assert.AreEqual(3, tree.CountOfBrushesInTree);
            Assert.AreEqual(branch.NodeID, brush1.Parent.NodeID);
            Assert.AreEqual(tree.NodeID, brush1.Tree.NodeID);
            Assert.AreEqual(branch.NodeID, brush2.Parent.NodeID);
            Assert.AreEqual(tree.NodeID, brush2.Tree.NodeID);
            Assert.AreEqual(branch.NodeID, brush3.Parent.NodeID);
            Assert.AreEqual(tree.NodeID, brush3.Tree.NodeID);
            Assert.AreEqual(3, branch.Count);
            Assert.AreEqual(brush1.NodeID, branch[0].NodeID);
            Assert.AreEqual(brush2.NodeID, branch[1].NodeID);
            Assert.AreEqual(brush3.NodeID, branch[2].NodeID);
            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(3, CSGManager.TreeBrushCount, "Expected 3 TreeBrushes to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(5, CSGManager.TreeNodeCount);
        }
    public void DestroyTree()
    {
        const int treeUserID = 10;
        CSGTree   tree       = CSGTree.Create(treeUserID);

        CSGManager.ClearDirty(tree);

        var result = tree.Destroy();

        Assert.AreEqual(true, result);
        TestUtility.ExpectInvalidTree(ref tree);
        Assert.AreEqual(0, CSGManager.TreeCount);
        Assert.AreEqual(0, CSGManager.TreeNodeCount);
    }
    public void DestroyBranch()
    {
        const int     branchUserID = 10;
        CSGTreeBranch branch       = CSGTreeBranch.Create(branchUserID);

        CSGManager.ClearDirty(branch);

        var result = branch.Destroy();

        Assert.AreEqual(true, result);
        TestUtility.ExpectInvalidBranch(ref branch);
        Assert.AreEqual(0, CSGManager.TreeBranchCount);
        Assert.AreEqual(0, CSGManager.TreeNodeCount);
    }
Example #29
0
        public void DestroyBrush()
        {
            const int    brushUserID = 10;
            CSGTreeBrush brush       = CSGTreeBrush.Create(userID: brushUserID);

            CSGManager.ClearDirty(brush);

            var result = brush.Destroy();

            Assert.AreEqual(true, result);
            TestUtility.ExpectInvalidBrush(ref brush);
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
        }
    public void Branch_AddChildBrushOfOtherBranch_MovesBrushToBranch()
    {
        const int brushUserID   = 10;
        const int treeUserID1   = 11;
        const int treeUserID2   = 12;
        const int branchUserID1 = 13;
        const int branchUserID2 = 14;
        var       brush         = CSGTreeBrush.Create(userID: brushUserID);
        var       branch2       = CSGTreeBranch.Create(branchUserID2);
        var       tree2         = CSGTree.Create(treeUserID2, new CSGTreeNode[] { branch2 });
        var       branch1       = CSGTreeBranch.Create(branchUserID1, new CSGTreeNode[] { brush });
        var       tree1         = CSGTree.Create(treeUserID1, new CSGTreeNode[] { branch1 });

        CSGManager.ClearDirty(brush);
        CSGManager.ClearDirty(branch1);
        CSGManager.ClearDirty(branch2);
        CSGManager.ClearDirty(tree1);
        CSGManager.ClearDirty(tree2);

        var result = branch2.Add(brush);

        Assert.AreEqual(true, result);
        TestUtility.ExpectValidBrushWithUserID(ref brush, brushUserID);
        TestUtility.ExpectValidBranchWithUserID(ref branch1, branchUserID1);
        TestUtility.ExpectValidBranchWithUserID(ref branch2, branchUserID2);
        TestUtility.ExpectValidTreeWithUserID(ref tree1, treeUserID1);
        TestUtility.ExpectValidTreeWithUserID(ref tree2, treeUserID2);
        Assert.AreEqual(true, branch1.Dirty);
        Assert.AreEqual(true, tree1.Dirty);
        Assert.AreEqual(true, branch2.Dirty);
        Assert.AreEqual(true, tree2.Dirty);
        Assert.AreEqual(true, brush.Dirty);
        Assert.AreEqual(false, tree1.IsInTree(brush));
        Assert.AreEqual(true, tree2.IsInTree(brush));
        Assert.AreEqual(0, tree1.CountOfBrushesInTree);
        Assert.AreEqual(1, tree2.CountOfBrushesInTree);
        Assert.AreEqual(tree2.NodeID, brush.Tree.NodeID);
        Assert.AreEqual(branch2.NodeID, brush.Parent.NodeID);
        Assert.AreEqual(tree1.NodeID, branch1.Tree.NodeID);
        Assert.AreEqual(0, branch1.Parent.NodeID);
        Assert.AreEqual(0, branch1.Count);
        Assert.AreEqual(tree2.NodeID, branch2.Tree.NodeID);
        Assert.AreEqual(0, branch2.Parent.NodeID);
        Assert.AreEqual(1, branch2.Count);
        Assert.AreEqual(2, CSGManager.TreeCount);
        Assert.AreEqual(1, CSGManager.TreeBrushCount);
        Assert.AreEqual(2, CSGManager.TreeBranchCount);
        Assert.AreEqual(5, CSGManager.TreeNodeCount);
    }