comparison 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
comparison
equal deleted inserted replaced
142:ef183969bf31 143:afbe19c98f53
27 import junit.framework.Assert; 27 import junit.framework.Assert;
28 28
29 public class AddChildrenIndexTest { 29 public class AddChildrenIndexTest {
30 30
31 @Test 31 @Test
32 public void DeleteChildrenTest(){ 32 public void AddChildrenTest(){
33 Jungle jungle = new DefaultJungle(null, "hogehoge",new DefaultTreeEditor(new DefaultTraverser())); 33 Jungle jungle = new DefaultJungle(null, "hogehoge",new DefaultTreeEditor(new DefaultTraverser()));
34 jungle.createNewTree("tree"); 34 jungle.createNewTree("tree");
35 JungleTree tree = jungle.getTreeByName("tree"); 35 JungleTree tree = jungle.getTreeByName("tree");
36 createTree(tree); 36 createTree(tree);
37 tree.getRootNode(); 37 tree.getRootNode();
56 IndexJungleTreeEditor editor = tree.getIndexTreeEditor(); 56 IndexJungleTreeEditor editor = tree.getIndexTreeEditor();
57 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(new DefaultNodePath().add(0), 0); 57 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(new DefaultNodePath().add(0), 0);
58 either.b().success(); 58 either.b().success();
59 59
60 InterfaceTraverser newIfTraverser = tree.getTraverser(); 60 InterfaceTraverser newIfTraverser = tree.getTraverser();
61 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> newIndex = newIfTraverser.getIndex(); 61 TreeMap<String, TreeMap<String, List<NodePath>>> newIndex = newIfTraverser.getIndex();
62 Assert.assertEquals(newIndex.get(key).some().get("<-1,0,1>").some().head().right().toString(),"<-1,0,2>"); 62 NodePath targetPath = newIndex.get(key).some().get("<-1,0,2>").some().head();
63 TreeNode targetNode = getTarget(tree.getRootNode(), targetPath);
64 Assert.assertEquals(targetNode.getAttributes().getString(key) ,"<-1,0,1>");
63 65
64 } 66 }
65 public static String key = "KEY"; 67 public static String key = "KEY";
66 public static DefaultTreeNode factory = new DefaultTreeNode(); 68 public static DefaultTreeNode factory = new DefaultTreeNode();
67 69
99 Assert.fail(); 101 Assert.fail();
100 } 102 }
101 editor = either.b(); 103 editor = either.b();
102 either = editor.success(); 104 either = editor.success();
103 } 105 }
106 public TreeNode getTarget(TreeNode node, NodePath path) {
107 Pair<Integer, NodePath> removeHeadPath = path.pop();
108
109 if (removeHeadPath.left() == -1)
110 return getTarget(node, removeHeadPath.right());
111
112 Either<Error, TreeNode> either = node.getChildren().at(removeHeadPath.left());
113 if (either.isA())
114 return node;
115
116 TreeNode child = either.b();
117 if (removeHeadPath.right().size() == 0)
118 return child;
119
120 TreeNode target = getTarget(child, removeHeadPath.right());
121 return target;
122 }
104 } 123 }