Mercurial > hg > Members > tatsuki > bench > jungle-core
annotate src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/IndexCommitTest.java @ 153:20af7f25ef32
miner change
author | one |
---|---|
date | Tue, 25 Nov 2014 17:52:41 +0900 |
parents | a2c374a2686b |
children | f98f2704b154 809f813d1083 |
rev | line source |
---|---|
134 | 1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.index; |
2 | |
3 import java.util.Iterator; | |
4 | |
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; | |
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; | |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; | |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; | |
145 | 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.IndexTreeEditor; |
134 | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; | |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; | |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; | |
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | |
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | |
19 import junit.framework.Assert; | |
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | |
153 | 21 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Index; |
134 | 22 |
23 import java.nio.ByteBuffer; | |
24 | |
25 import org.junit.Test; | |
26 | |
27 import fj.data.List; | |
28 import fj.data.Option; | |
29 import fj.data.TreeMap; | |
30 | |
31 public class IndexCommitTest { | |
32 | |
33 @Test | |
34 public void IndexCommitTest() throws InterruptedException { | |
35 | |
153 | 36 Jungle jungle = new DefaultJungle(null, "hogehoge",new DefaultTreeEditor(new DefaultTraverser())); |
134 | 37 jungle.createNewTree("tree"); |
38 JungleTree tree = jungle.getTreeByName("tree"); | |
39 createTree(tree); | |
40 tree.getRootNode(); | |
41 InterfaceTraverser ifTraverser = tree.getTraverser(); | |
42 | |
43 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>"); | |
53 | |
54 //check index | |
153 | 55 Index index = ifTraverser.getIndex(); |
56 index.get(key,"<-1,0,1>"); | |
57 ifTraverser.commit(); | |
144
0854f9a9e81d
change attrs form TreeMap<String , ByteBuffer> → TreeMap<String,List<ByteBuffer>>
one
parents:
143
diff
changeset
|
58 |
153 | 59 JungleTree newTree = jungle.getTreeByName("tree"); |
60 InterfaceTraverser newIfTraverser = newTree.getTraverser(); | |
61 Index newIndex = newIfTraverser.getIndex(); | |
62 newIndex.get(key,"<-1,0,1>"); | |
134 | 63 JungleTreeEditor editor = tree.getTreeEditor(); |
64 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(new DefaultNodePath(), 0); | |
65 editor = either.b(); | |
66 editor.success(); | |
67 | |
153 | 68 ifTraverser.commit(); |
69 // Assert.assertTrue(newIndex.isEmpty()); | |
70 // | |
71 // InterfaceTraverser ifTraverser1= tree.getTraverser(); | |
72 // | |
73 // ifTraverser1.find((TreeNode node) -> { | |
74 // ByteBuffer attribute = node.getAttributes().get(key); | |
75 // if (attribute != null) { | |
76 // byte[] byteAttribute = attribute.array(); | |
77 // String str = new String(byteAttribute); | |
78 // System.out.println("attribute = " + str); | |
79 // return str.equals("<-1,0,1>"); | |
80 // } | |
81 // return false; | |
82 // }, key, "<-1,0,1>"); | |
83 // | |
84 // ifTraverser1.commit(); | |
85 // JungleTree newTree2 = jungle.getTreeByName("tree"); | |
86 // InterfaceTraverser newIfTraverser2 = newTree2.getTraverser(); | |
87 // TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> newIndex1 = newIfTraverser2.getIndex(); | |
88 // Assert.assertFalse(newIndex1.isEmpty()); | |
134 | 89 |
90 } | |
91 | |
92 public boolean compare(TreeNode compareNode, String compareAttribute) { | |
93 String labName = compareNode.getAttributes().getString(key); | |
94 if (labName.equals(compareAttribute)) | |
95 return true; | |
96 return false; | |
97 } | |
98 | |
99 public static String key = "KEY"; | |
100 public static DefaultTreeNode factory = new DefaultTreeNode(); | |
101 | |
102 public void createTree(JungleTree tree) { | |
103 NodePath root = new DefaultNodePath(); | |
104 createChildren(tree, root, 0); | |
105 | |
106 for (int x = 0; x < 2; x++) { | |
107 createChildren(tree, root.add(0), x); | |
108 for (int y = 0; y < 2; y++) { | |
109 createChildren(tree, root.add(0).add(x), y); | |
110 } | |
111 } | |
112 | |
113 } | |
114 | |
115 public void createChildren(JungleTree tree, NodePath root, int num) { | |
116 JungleTreeEditor editor = tree.getTreeEditor();// Treeのeditorを作成 | |
117 Either<Error, JungleTreeEditor> either = editor | |
118 .addNewChildAt(root, num); // 新しく入れるところへのパス | |
119 if (either.isA()) { | |
120 Assert.fail(); | |
121 } | |
122 editor = either.b(); | |
123 either = editor.success(); | |
124 if (either.isA()) { | |
125 Assert.fail(); | |
126 } | |
127 NodePath childPath = root.add(num); | |
128 editor = tree.getTreeEditor(); | |
129 NodePath attribute = root.add(num); | |
130 System.out.println(attribute.toString()); | |
131 either = editor.putAttribute(childPath, key, | |
132 ByteBuffer.wrap(attribute.toString().getBytes())); | |
133 if (either.isA()) { | |
134 Assert.fail(); | |
135 } | |
136 editor = either.b(); | |
137 either = editor.success(); | |
138 } | |
139 } |