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;
+  }
 }