Mercurial > hg > Members > tatsuki > bench > jungle-core
annotate src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/DeleteChildrenIndexTest.java @ 148:a2c374a2686b
Merge with 0854f9a9e81db5db639f02a126ebabf1d004b98e
author | one |
---|---|
date | Fri, 21 Nov 2014 12:49:28 +0900 |
parents | 72f454eb04ec 0854f9a9e81d |
children | 809f813d1083 |
rev | line source |
---|---|
134 | 1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.index; |
2 | |
3 import java.nio.ByteBuffer; | |
4 import java.util.Iterator; | |
5 | |
6 import org.junit.Test; | |
7 import org.junit.experimental.theories.suppliers.TestedOn; | |
8 | |
9 import fj.data.List; | |
10 import fj.data.Option; | |
11 import fj.data.TreeMap; | |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; | |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; | |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; | |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | |
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | |
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; | |
145 | 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.IndexTreeEditor; |
134 | 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; | |
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.IndexJungleTreeEditor; | |
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; | |
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; | |
25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | |
26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | |
27 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | |
28 import junit.framework.Assert; | |
29 | |
135 | 30 public class DeleteChildrenIndexTest { |
134 | 31 |
32 @Test | |
33 public void DeleteChildrenTest(){ | |
145 | 34 Jungle jungle = new DefaultJungle(null, "hogehoge",new DefaultTraverser()); |
134 | 35 jungle.createNewTree("tree"); |
36 JungleTree tree = jungle.getTreeByName("tree"); | |
37 createTree(tree); | |
38 tree.getRootNode(); | |
39 InterfaceTraverser ifTraverser = tree.getTraverser(); | |
143
afbe19c98f53
change Index form TreeMap<String,TreeMap<String<List<Pair<TreeNode,NodePath>>>> → TreeMap<String,TreeMap<String<List<NodePath>>>
one
parents:
135
diff
changeset
|
40 |
134 | 41 Iterator<Pair<TreeNode, NodePath>> pairIterator = ifTraverser.find((TreeNode node) -> { |
42 ByteBuffer attribute = node.getAttributes().get(key); | |
43 if (attribute != null) { | |
44 byte[] byteAttribute = attribute.array(); | |
45 String str = new String(byteAttribute); | |
46 System.out.println("attribute = " + str); | |
47 return str.equals("<-1,0,1>"); | |
48 } | |
49 return false; | |
50 }, key, "<-1,0,1>"); | |
143
afbe19c98f53
change Index form TreeMap<String,TreeMap<String<List<Pair<TreeNode,NodePath>>>> → TreeMap<String,TreeMap<String<List<NodePath>>>
one
parents:
135
diff
changeset
|
51 |
134 | 52 for (;pairIterator.hasNext();pairIterator.next()) { |
53 | |
54 } | |
55 //check index | |
56 ifTraverser.commitIndex(); | |
57 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index = ifTraverser.getIndex(); | |
58 Assert.assertTrue(index.get(key).some().get("<-1,0,0>").isSome()); | |
59 | |
60 IndexJungleTreeEditor editor = tree.getIndexTreeEditor(); | |
61 Either<Error, JungleTreeEditor> either = editor.deleteChildAt(new DefaultNodePath().add(0), 0); | |
62 either.b().success(); | |
63 | |
64 InterfaceTraverser newIfTraverser = tree.getTraverser(); | |
65 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> newIndex = newIfTraverser.getIndex(); | |
66 Assert.assertEquals(newIndex.get(key).some().get("<-1,0,1>").some().head().right().toString(),"<-1,0,0>"); | |
67 | |
68 } | |
69 public static String key = "KEY"; | |
70 public static DefaultTreeNode factory = new DefaultTreeNode(); | |
71 | |
72 public void createTree(JungleTree tree) { | |
73 NodePath root = new DefaultNodePath(); | |
74 createChildren(tree, root, 0); | |
75 | |
135 | 76 for (int x = 0; x < 3; x++) { |
134 | 77 createChildren(tree, root.add(0), x); |
135 | 78 for (int y = 0; y < 3; y++) { |
134 | 79 createChildren(tree, root.add(0).add(x), y); |
80 } | |
81 } | |
82 | |
83 } | |
84 | |
85 public void createChildren(JungleTree tree, NodePath root, int num) { | |
86 JungleTreeEditor editor = tree.getTreeEditor();// Treeのeditorを作成 | |
87 Either<Error, JungleTreeEditor> either = editor | |
88 .addNewChildAt(root, num); // 新しく入れるところへのパス | |
89 if (either.isA()) { | |
90 Assert.fail(); | |
91 } | |
92 editor = either.b(); | |
93 either = editor.success(); | |
94 if (either.isA()) { | |
95 Assert.fail(); | |
96 } | |
97 NodePath childPath = root.add(num); | |
98 editor = tree.getTreeEditor(); | |
99 NodePath attribute = root.add(num); | |
100 System.out.println(attribute.toString()); | |
101 either = editor.putAttribute(childPath, key, | |
102 ByteBuffer.wrap(attribute.toString().getBytes())); | |
103 if (either.isA()) { | |
104 Assert.fail(); | |
105 } | |
106 editor = either.b(); | |
107 either = editor.success(); | |
108 } | |
109 } |