Mercurial > hg > Members > tatsuki > bench > jungle-core
diff src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/AddChildrenIndexTest.java @ 143:afbe19c98f53
change Index form TreeMap<String,TreeMap<String<List<Pair<TreeNode,NodePath>>>> → TreeMap<String,TreeMap<String<List<NodePath>>>
bag
author | one |
---|---|
date | Sat, 15 Nov 2014 17:48:07 +0900 |
parents | 3071b1a471fd |
children | 0854f9a9e81d |
line wrap: on
line diff
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/AddChildrenIndexTest.java Thu Nov 13 22:04:14 2014 +0900 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/AddChildrenIndexTest.java Sat Nov 15 17:48:07 2014 +0900 @@ -29,7 +29,7 @@ public class AddChildrenIndexTest { @Test - public void DeleteChildrenTest(){ + public void AddChildrenTest(){ Jungle jungle = new DefaultJungle(null, "hogehoge",new DefaultTreeEditor(new DefaultTraverser())); jungle.createNewTree("tree"); JungleTree tree = jungle.getTreeByName("tree"); @@ -58,8 +58,10 @@ either.b().success(); InterfaceTraverser newIfTraverser = tree.getTraverser(); - TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> newIndex = newIfTraverser.getIndex(); - Assert.assertEquals(newIndex.get(key).some().get("<-1,0,1>").some().head().right().toString(),"<-1,0,2>"); + TreeMap<String, TreeMap<String, List<NodePath>>> newIndex = newIfTraverser.getIndex(); + NodePath targetPath = newIndex.get(key).some().get("<-1,0,2>").some().head(); + TreeNode targetNode = getTarget(tree.getRootNode(), targetPath); + Assert.assertEquals(targetNode.getAttributes().getString(key) ,"<-1,0,1>"); } public static String key = "KEY"; @@ -101,4 +103,21 @@ editor = either.b(); either = editor.success(); } + public TreeNode getTarget(TreeNode node, NodePath path) { + Pair<Integer, NodePath> removeHeadPath = path.pop(); + + if (removeHeadPath.left() == -1) + return getTarget(node, removeHeadPath.right()); + + Either<Error, TreeNode> either = node.getChildren().at(removeHeadPath.left()); + if (either.isA()) + return node; + + TreeNode child = either.b(); + if (removeHeadPath.right().size() == 0) + return child; + + TreeNode target = getTarget(child, removeHeadPath.right()); + return target; + } }