comparison src/test/java/jp/ac/u_ryukyu/ie/cr/JungleTest.java @ 7:cd5f2ba0f894 default tip

modify jungleTest
author tatsuki
date Thu, 01 Dec 2016 16:23:13 +0900
parents 44465893e8b8
children
comparison
equal deleted inserted replaced
6:233bb94ec43a 7:cd5f2ba0f894
2 2
3 import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; 3 import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle;
4 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; 4 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle;
5 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree; 5 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
6 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; 6 import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor;
7 import jp.ac.u_ryukyu.ie.cr.jungle.data.list.DefaultNode;
8 import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.Node;
9 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.NullJournal; 7 import jp.ac.u_ryukyu.ie.cr.jungle.persistent.NullJournal;
8 import jp.ac.u_ryukyu.ie.cr.jungle.query.AllNodeIterator;
10 import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath; 9 import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath;
11 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath; 10 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath;
12 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor; 11 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor;
13 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; 12 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
14 import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNodeAttributes;
15 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTreeNode;
16 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; 13 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser;
17 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser; 14 import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser;
18 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; 15 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
19 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; 16 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
20 import junit.framework.Assert; 17 import junit.framework.Assert;
21 import org.junit.Test; 18 import org.junit.Test;
22 19
23 import java.nio.ByteBuffer; 20 import java.nio.ByteBuffer;
24 import java.security.Key;
25 import java.util.Iterator; 21 import java.util.Iterator;
26 22
27 /** 23 /**
28 * Created by e135768K on 2016/11/29. 24 * Created by e135768K on 2016/11/29.
29 */ 25 */
30 public class JungleTest { 26 public class JungleTest {
31 27
32 public static Jungle jungle; 28 public static Jungle jungle;
33 public static DefaultNodePath root = new DefaultNodePath(); 29 public static DefaultNodePath root = new DefaultNodePath();
30
34 @Test 31 @Test
35 public void GetTest () { 32 public void GetTest() {
36 jungle = new DefaultJungle(new NullJournal(), "Labo", new DefaultTreeEditor(new DefaultTraverser())); 33 jungle = new DefaultJungle(new NullJournal(), "Labo", new DefaultTreeEditor(new DefaultTraverser()));
37 jungle.createNewTree("User"); 34 jungle.createNewTree("User");
38 JungleTree tree = jungle.getTreeByName("User"); 35 JungleTree tree = jungle.getTreeByName("User");
39 // Insert 36 // Insert
40 JungleTreeEditor editor = tree.getTreeEditor(); 37 JungleTreeEditor editor = tree.getTreeEditor();
41 38
42 editor = put(editor, root, "Name", "Kono"); 39 editor = put(editor, root, "Name", "Kono");
43 editor = put(editor, root, "Age", "40"); 40 editor = put(editor, root, "Age", "40");
44 editor = put(editor, root, "Type", "Teacher"); 41 editor = put(editor, root, "Type", "Teacher");
45 42
46 editor = put(editor, root, 0, "Name", "Takeda"); 43 editor = addNewChild(editor, root, 0);
47 editor = put(editor, root, 0, "Age", "20"); 44 NodePath path = root.add(0);
48 editor = put(editor, root, 0, "Type", "Student"); 45 editor = put(editor, path, "Name", "kanagwa");
46 editor = put(editor, path, "Age", "24");
47 editor = put(editor, path, "Type", "Teacher");
49 48
50 editor = put(editor, root, 1, "Name", "Miyagi"); 49 editor = addNewChild(editor,path,0);
51 editor = put(editor, root, 1, "Age", "22"); 50 editor = put(editor, path.add(0), "Name", "Takeda");
52 editor = put(editor, root, 1, "Type", "Student"); 51 editor = put(editor, path.add(0), "Age", "20");
52 editor = put(editor, path.add(0), "Type", "Student");
53 53
54 editor = put(editor, root, 2, "Name", "Higashionna"); 54 editor = addNewChild(editor,path,1);
55 editor = put(editor, root, 2, "Age", "20"); 55 editor = put(editor, path.add(1), "Name", "Miyagi");
56 editor = put(editor, root, 2, "Type", "Student"); 56 editor = put(editor, path.add(1), "Age", "22");
57 editor = put(editor, path.add(1), "Type", "Student");
58
59 editor = addNewChild(editor,path,2);
60 editor = put(editor, path.add(2), "Name", "Higashi");
61 editor = put(editor, path.add(2), "Age", "20");
62 editor = put(editor, path.add(2), "Type", "Student");
63
64 editor = addNewChild(editor,root,1);
65 path = root.add(1);
66 editor = put(editor, path, "Name", "atton");
67 editor = put(editor, path, "Age", "24");
68 editor = put(editor, path, "Type", "Teacher");
69
70
71 editor = addNewChild(editor,path ,0);
72 path = path.add(0);
73 editor = put(editor, path, "Name", "parusu");
74 editor = put(editor, path, "Age", "23");
75 editor = put(editor, path, "Type", "Student");
76
77 path = new DefaultNodePath().add(0);
57 78
58 Either<Error, JungleTreeEditor> either = editor.success(); 79 Either<Error, JungleTreeEditor> either = editor.success();
59 if (either.isA()) 80 if (either.isA())
60 Assert.fail(); 81 Assert.fail();
61 82
62 tree = jungle.getTreeByName("User"); 83 tree = jungle.getTreeByName("User");
63
64 // Find
65 InterfaceTraverser traverser = tree.getTraverser(false); 84 InterfaceTraverser traverser = tree.getTraverser(false);
66 Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { 85 Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> {
67 String value = node.getAttributes().getString("Name"); 86 String value = node.getAttributes().getString("Name");
68 if (value == null) 87 if (value == null)
69 return false; 88 return false;
70 if (value.equals("Takeda")) 89 if (value.equals("Kono"))
71 return true; 90 return true;
72 return false; 91 return false;
73 }, "Type", "Student"); 92 }, "Type", "Teacher");
74 93
75 while (iterator.hasNext()){ 94 while (iterator.hasNext()) {
76 System.out.println(iterator.next().getAttributes().getString("Name")); 95 TreeNode node = iterator.next();
96 AllNodeIterator nodeIterator = new AllNodeIterator(node);
97 while (nodeIterator.hasNext()) {
98 System.out.println(nodeIterator.next().getAttributes().getString("Name"));
99 }
77 } 100 }
78 // Get
79 // ByteBuffer kono_age = get("User", root, "Shinji");
80 // ByteBuffer kazuma_age = get("User", root.add(0), "Kazuma");
81 // ByteBuffer mitsuki_age = get("User", root.add(1), "Mitsuki");
82 // ByteBuffer takui_age = get("User", root.add(2), "Takui");
83 } 101 }
84 102
85 public JungleTreeEditor put(JungleTreeEditor editor, NodePath path, int n, String key, String value) { 103 private JungleTreeEditor addNewChild(JungleTreeEditor editor, NodePath path, int i) {
86 104 return editor.addNewChildAt(path,i).b();
87 Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path, n);
88 if (either.isA())
89 Assert.fail();
90 editor = either.b();
91
92 either = editor.putAttribute(path.add(n), key, ByteBuffer.wrap(value.getBytes()));
93 if (either.isA())
94 Assert.fail();
95 editor = either.b();
96 return editor;
97 } 105 }
98 106
99 public JungleTreeEditor put(JungleTreeEditor editor, NodePath path, String key, String value) { 107 public JungleTreeEditor put(JungleTreeEditor editor, NodePath path, String key, String value) {
100 108 return editor.putAttribute(path, key, ByteBuffer.wrap(value.getBytes())).b();
101 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, key, ByteBuffer.wrap(value.getBytes()));
102 if (either.isA())
103 Assert.fail();
104 editor = either.b();
105 return editor;
106 } 109 }
107 110
108 public ByteBuffer get (String treeName, NodePath path, String key) { 111 public ByteBuffer get(String treeName, NodePath path, String key) {
109 JungleTree tree = jungle.getTreeByName(treeName); 112 JungleTree tree = jungle.getTreeByName(treeName);
110 Either<Error, TreeNode> e = tree.getNodeOfPath(path); 113 Either<Error, TreeNode> e = tree.getNodeOfPath(path);
111 if (e.isA()) 114 if (e.isA())
112 Assert.fail(); 115 Assert.fail();
113 TreeNode node = e.b(); 116 TreeNode node = e.b();