annotate src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/BruteForceTraverserTest.java @ 107:5b7e45464bb8

move
author one
date Fri, 12 Sep 2014 21:20:04 +0900
parents 3d88bad21bc4
children 5df5505e1c1e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
107
one
parents: 102
diff changeset
1 /*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverse;
98
95000ff9064d Create Query
one
parents:
diff changeset
2
95000ff9064d Create Query
one
parents:
diff changeset
3 import java.nio.ByteBuffer;
95000ff9064d Create Query
one
parents:
diff changeset
4 import java.util.Iterator;
95000ff9064d Create Query
one
parents:
diff changeset
5
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
98
95000ff9064d Create Query
one
parents:
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
95000ff9064d Create Query
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
95000ff9064d Create Query
one
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
95000ff9064d Create Query
one
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 98
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
98
95000ff9064d Create Query
one
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
95000ff9064d Create Query
one
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
95000ff9064d Create Query
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
95000ff9064d Create Query
one
parents:
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.SearchQuery;
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.UpdateQuery;
98
95000ff9064d Create Query
one
parents:
diff changeset
17 import junit.framework.TestCase;
95000ff9064d Create Query
one
parents:
diff changeset
18
95000ff9064d Create Query
one
parents:
diff changeset
19 import org.junit.Assert;
95000ff9064d Create Query
one
parents:
diff changeset
20 import org.junit.Test;
95000ff9064d Create Query
one
parents:
diff changeset
21
95000ff9064d Create Query
one
parents:
diff changeset
22 public abstract class BruteForceTraverserTest extends TestCase{
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 98
diff changeset
23 public abstract InterfaceTraverser instance(TreeNode node);
98
95000ff9064d Create Query
one
parents:
diff changeset
24
95000ff9064d Create Query
one
parents:
diff changeset
25 @Test
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
26 public void testSearch() {
98
95000ff9064d Create Query
one
parents:
diff changeset
27 int maxHeight = 3;
95000ff9064d Create Query
one
parents:
diff changeset
28 Pair<TreeNode, NodePath> test = null;
95000ff9064d Create Query
one
parents:
diff changeset
29 TreeNode root = createTree(0,0,maxHeight,new DefaultNodePath());
100
9a7b7af838e0 add index TreeNodeEditor
one
parents: 98
diff changeset
30 InterfaceTraverser traverser = instance(root);
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
31 Iterator<Pair<TreeNode, NodePath>> itNode = traverser.find(new SearchQuery("KEY","<-1,0,0>"));
98
95000ff9064d Create Query
one
parents:
diff changeset
32 for(;itNode.hasNext(); ){
95000ff9064d Create Query
one
parents:
diff changeset
33 test = itNode.next();
95000ff9064d Create Query
one
parents:
diff changeset
34 }
95000ff9064d Create Query
one
parents:
diff changeset
35 String str = new String(test.left().getAttributes().get("KEY").array());
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
36 Assert.assertEquals(str,"<-1,0,0>");
c297f0015d9e create Update query
one
parents: 100
diff changeset
37 }
c297f0015d9e create Update query
one
parents: 100
diff changeset
38
c297f0015d9e create Update query
one
parents: 100
diff changeset
39 @Test
c297f0015d9e create Update query
one
parents: 100
diff changeset
40 public void testUpdate() {
c297f0015d9e create Update query
one
parents: 100
diff changeset
41 int maxHeight = 3;
c297f0015d9e create Update query
one
parents: 100
diff changeset
42 Pair<TreeNode, NodePath> test = null;
c297f0015d9e create Update query
one
parents: 100
diff changeset
43 TreeNode root = createTree(0,0,maxHeight,new DefaultNodePath());
c297f0015d9e create Update query
one
parents: 100
diff changeset
44 InterfaceTraverser traverser = instance(root);
c297f0015d9e create Update query
one
parents: 100
diff changeset
45 JungleTreeEditor editor = traverser.update(new UpdateQuery("KEY", "<-1,0,0>", "tatsuki"));
c297f0015d9e create Update query
one
parents: 100
diff changeset
46 traverser.set(editor.getRoot());
c297f0015d9e create Update query
one
parents: 100
diff changeset
47 Iterator<Pair<TreeNode, NodePath>> checkNode = traverser.find(new SearchQuery("KEY","tatsuki"));
c297f0015d9e create Update query
one
parents: 100
diff changeset
48 for(;checkNode.hasNext(); ){
c297f0015d9e create Update query
one
parents: 100
diff changeset
49 test = checkNode.next();
c297f0015d9e create Update query
one
parents: 100
diff changeset
50 }
c297f0015d9e create Update query
one
parents: 100
diff changeset
51 String str = new String(test.left().getAttributes().get("KEY").array());
c297f0015d9e create Update query
one
parents: 100
diff changeset
52 Assert.assertEquals(str,"tatsuki");
98
95000ff9064d Create Query
one
parents:
diff changeset
53 }
95000ff9064d Create Query
one
parents:
diff changeset
54
95000ff9064d Create Query
one
parents:
diff changeset
55 public static String key = "KEY";
95000ff9064d Create Query
one
parents:
diff changeset
56 public static ByteBuffer value = ByteBuffer.wrap(key.getBytes());
95000ff9064d Create Query
one
parents:
diff changeset
57 public static DefaultTreeNode factory = new DefaultTreeNode();
95000ff9064d Create Query
one
parents:
diff changeset
58
95000ff9064d Create Query
one
parents:
diff changeset
59 public static TreeNode createTree(int _curX,int _curY,int _maxHeight,NodePath _address)
95000ff9064d Create Query
one
parents:
diff changeset
60 {
101
c297f0015d9e create Update query
one
parents: 100
diff changeset
61 System.out.println(_address.toString());
98
95000ff9064d Create Query
one
parents:
diff changeset
62 TreeNode parent = factory.createNewNode();
95000ff9064d Create Query
one
parents:
diff changeset
63 Either<Error,TreeNode> either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes()));
95000ff9064d Create Query
one
parents:
diff changeset
64 if(either.isA()){
95000ff9064d Create Query
one
parents:
diff changeset
65 Assert.fail();
95000ff9064d Create Query
one
parents:
diff changeset
66 }
95000ff9064d Create Query
one
parents:
diff changeset
67 parent = either.b();
95000ff9064d Create Query
one
parents:
diff changeset
68
95000ff9064d Create Query
one
parents:
diff changeset
69 if(_curY == _maxHeight){
95000ff9064d Create Query
one
parents:
diff changeset
70 return parent;
95000ff9064d Create Query
one
parents:
diff changeset
71 }
95000ff9064d Create Query
one
parents:
diff changeset
72
95000ff9064d Create Query
one
parents:
diff changeset
73 for(int i = 0;i < _curY + 1;i ++){
95000ff9064d Create Query
one
parents:
diff changeset
74 TreeNode ch = createTree(i,_curY + 1,_maxHeight,_address.add(i));
95000ff9064d Create Query
one
parents:
diff changeset
75 either = parent.getChildren().addNewChildAt(i,ch);
95000ff9064d Create Query
one
parents:
diff changeset
76 if(either.isA()){
95000ff9064d Create Query
one
parents:
diff changeset
77 Assert.fail();
95000ff9064d Create Query
one
parents:
diff changeset
78 }
95000ff9064d Create Query
one
parents:
diff changeset
79
95000ff9064d Create Query
one
parents:
diff changeset
80 parent = either.b();
95000ff9064d Create Query
one
parents:
diff changeset
81 }
95000ff9064d Create Query
one
parents:
diff changeset
82
95000ff9064d Create Query
one
parents:
diff changeset
83 return parent;
95000ff9064d Create Query
one
parents:
diff changeset
84 }
95000ff9064d Create Query
one
parents:
diff changeset
85
107
one
parents: 102
diff changeset
86 }*/