annotate src/test/java/alice/jungle/log/example/FindMatrixTest.java @ 181:4493dd7692ce

add FindMatrixTest
author tatsuki
date Mon, 15 Sep 2014 14:04:22 +0900
parents
children bf08205d5c5f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
181
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
1 package alice.jungle.log.example;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
2
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
3 import java.io.File;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
4 import java.io.IOException;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
5 import java.nio.ByteBuffer;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
6 import java.util.Iterator;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
7
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
8 import fj.Ord;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
9 import fj.data.List;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
10 import fj.data.TreeMap;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
25 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
26 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
27 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.Query;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
28 import junit.framework.TestCase;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
29 import alice.jungle.operations.NetworkNodePath;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
30 import alice.jungle.persistent.PersistentJournal;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
31 import alice.jungle.persistent.PersistentJungle;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
32 import alice.jungle.transaction.JungleUpdater;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
33 import app.bbs.NetworkBulletinBoard;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
34 import app.bbs.NetworkJungleBulletinBoard;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
35
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
36 public class FindMatrixTest extends TestCase {
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
37
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
38 public class SearchQuery implements Query{
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
39
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
40 private String key;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
41 private String searchAttribute;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
42
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
43 public SearchQuery (String key, String searchAttribute){
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
44 this.key = key;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
45 this.searchAttribute = searchAttribute;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
46 }
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
47
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
48 @Override
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
49 public boolean condition(TreeNode _node) {
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
50 ByteBuffer attribute = _node.getAttributes().get(key);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
51 if(attribute != null){
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
52 byte[] byteAttribute = attribute.array();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
53 String str = new String(byteAttribute);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
54 System.out.println(str);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
55 return str.equals(searchAttribute);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
56 }
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
57 return false;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
58 }
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
59
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
60 @Override
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
61 public List<Pair<String, String>> indexCondition() {
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
62 // TODO Auto-generated method stub
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
63 return null;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
64 }
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
65
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
66 };
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
67
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
68 public static void main(String[] args) throws IOException {
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
69 PersistentJournal journal1 = new PersistentJournal();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
70 journal1.setInputFile(new File("./log/1410589309338.log"));
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
71 journal1.setOutputFile(new File("./log/test.log"));
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
72 Jungle jungle2 = new PersistentJungle(journal1, "uuid2", new DefaultTreeEditor(new DefaultTraverser()));
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
73 ChangeListReader reader = journal1.getReader();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
74 int roopCount = 0;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
75 String treeName = null;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
76 for (ChangeList chList : reader) {
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
77 roopCount++;
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
78 treeName = chList.getTreeName();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
79 JungleTree tree2 = jungle2.getTreeByName(treeName);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
80 if(tree2 == null) {
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
81 tree2 = jungle2.createNewTree(treeName);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
82 }
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
83 JungleTreeEditor editor2 = tree2.getTreeEditor();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
84 Either<Error, JungleTreeEditor> either2 = JungleUpdater.edit(editor2, chList);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
85 assertFalse(either2.isA());
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
86 editor2 = either2.b();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
87 editor2.success();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
88 }
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
89
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
90
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
91 JungleTree tree2 = jungle2.getTreeByName(treeName);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
92 TreeNode root = tree2.getRootNode();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
93 TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> index = TreeMap.empty(Ord.stringOrd);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
94 DefaultTraverser traverser = new DefaultTraverser();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
95 DefaultTreeEditor treeEditor = new DefaultTreeEditor(traverser);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
96 JungleTreeEditor editor = new DefaultJungleTreeEditor(root,null,treeEditor,null);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
97 InterfaceTraverser ifTraverser = new InterfaceTraverser(root,index,editor);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
98 String key = "mes";
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
99 String attribute = "株式会社フタコ放送";
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
100
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
101 Query query = new FindMatrixTest().new SearchQuery(key, attribute);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
102 Iterator<Pair<TreeNode, NodePath>> searchNode = ifTraverser.find(query);
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
103 TreeNode node = searchNode.next().left();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
104 byte[] nodeAttibute = node.getAttributes().get(key).array();
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
105 System.out.println(new String(nodeAttibute));
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
106 }
4493dd7692ce add FindMatrixTest
tatsuki
parents:
diff changeset
107 }