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