Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/TraverserTest.java @ 54:650fe2a0dccc
modified tests
author | Shoshi TAMAKI |
---|---|
date | Fri, 08 Feb 2013 17:08:42 +0900 |
parents | 449d67be0886 |
children | 053c9b52a5b2 |
comparison
equal
deleted
inserted
replaced
53:ed890dcb673e | 54:650fe2a0dccc |
---|---|
7 | 7 |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; | 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNode; |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | 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.TraversableNodeWrapper; | 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TraversableNodeWrapper; |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.ClonableDefaultNode; | 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Direction; | 14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Direction; |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; | 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser; | 16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser; |
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | |
20 import junit.framework.TestCase; | 19 import junit.framework.TestCase; |
21 | 20 |
22 public abstract class TraverserTest extends TestCase | 21 public abstract class TraverserTest extends TestCase |
23 { | 22 { |
24 public abstract Traverser instance(); | 23 public abstract Traverser instance(); |
25 | 24 |
26 public void testTraverse() | 25 public void testTraverse() |
27 { | 26 { |
28 int maxHeight = 3; | 27 int maxHeight = 3; |
29 ClonableDefaultNode root = createTree(0,0,maxHeight,new DefaultNodePath()); | 28 DefaultTreeNode root = createTree(0,0,maxHeight,new DefaultNodePath()); |
30 | 29 |
31 TraversableNodeWrapper<ClonableDefaultNode> traversable = new TraversableNodeWrapper<ClonableDefaultNode>(root); | 30 TraversableNodeWrapper<DefaultTreeNode> traversable = new TraversableNodeWrapper<DefaultTreeNode>(root); |
32 Traverser traverser = instance(); | 31 Traverser traverser = instance(); |
33 | 32 |
34 // generate all pattern. | 33 // generate all pattern. |
35 List<DefaultNodePath> paths = generatePathPattern(new DefaultNodePath(),0,maxHeight); | 34 List<DefaultNodePath> paths = generatePathPattern(new DefaultNodePath(),0,maxHeight); |
36 paths = paths.cons(new DefaultNodePath()); | 35 paths = paths.cons(new DefaultNodePath()); |
37 | 36 |
38 for(DefaultNodePath path : paths){ | 37 for(DefaultNodePath path : paths){ |
39 DefaultEvaluator evaluator = new DefaultEvaluator(path); | 38 DefaultEvaluator evaluator = new DefaultEvaluator(path); |
40 Either<Error,Traversal<TraversableNodeWrapper<ClonableDefaultNode>>> ret = traverser.traverse(traversable,evaluator); | 39 Either<Error,Traversal<TraversableNodeWrapper<DefaultTreeNode>>> ret = traverser.traverse(traversable,evaluator); |
41 if(ret.isA()){ | 40 if(ret.isA()){ |
42 Assert.fail(); | 41 Assert.fail(); |
43 } | 42 } |
44 | 43 |
45 Traversal<TraversableNodeWrapper<ClonableDefaultNode>> traversal = ret.b(); | 44 Traversal<TraversableNodeWrapper<DefaultTreeNode>> traversal = ret.b(); |
46 TraversableNodeWrapper<ClonableDefaultNode> target = traversal.destination(); | 45 TraversableNodeWrapper<DefaultTreeNode> target = traversal.destination(); |
47 String expect = path.toString(); | 46 String expect = path.toString(); |
48 ByteBuffer value = target.getWrapped().getAttributes().get(key); | 47 ByteBuffer value = target.getWrapped().getAttributes().get(key); |
49 String actual = new String(value.array()); | 48 String actual = new String(value.array()); |
50 Assert.assertEquals(expect,actual); | 49 Assert.assertEquals(expect,actual); |
51 | 50 |
52 List<DefaultNodePath> parts = path.inits(); | 51 List<DefaultNodePath> parts = path.inits(); |
53 | 52 |
54 for(Direction<TraversableNodeWrapper<ClonableDefaultNode>> d : traversal){ | 53 for(Direction<TraversableNodeWrapper<DefaultTreeNode>> d : traversal){ |
55 DefaultNodePath part = parts.head(); | 54 DefaultNodePath part = parts.head(); |
56 parts = parts.tail(); | 55 parts = parts.tail(); |
57 value = d.getTarget().getWrapped().getAttributes().get(key); | 56 value = d.getTarget().getWrapped().getAttributes().get(key); |
58 String actualCurrentPathStr = new String(value.array()); | 57 String actualCurrentPathStr = new String(value.array()); |
59 String expectCurrentPathStr = part.toString(); | 58 String expectCurrentPathStr = part.toString(); |
77 return paths; | 76 return paths; |
78 } | 77 } |
79 | 78 |
80 public static String key = "KEY"; | 79 public static String key = "KEY"; |
81 public static ByteBuffer value = ByteBuffer.wrap(key.getBytes()); | 80 public static ByteBuffer value = ByteBuffer.wrap(key.getBytes()); |
82 public static ClonableDefaultNode factory = new ClonableDefaultNode(new DefaultNode()); | 81 public static DefaultTreeNode factory = new DefaultTreeNode(new DefaultNode()); |
83 | 82 |
84 public ClonableDefaultNode createTree(int _curX,int _curY,int _maxHeight,NodePath _address) | 83 public DefaultTreeNode createTree(int _curX,int _curY,int _maxHeight,NodePath _address) |
85 { | 84 { |
86 ClonableDefaultNode parent = factory.createNewNode(); | 85 DefaultTreeNode parent = factory.createNewNode(); |
87 Either<Error,ClonableDefaultNode> either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes())); | 86 Either<Error,DefaultTreeNode> either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes())); |
88 if(either.isA()){ | 87 if(either.isA()){ |
89 Assert.fail(); | 88 Assert.fail(); |
90 } | 89 } |
91 parent = either.b(); | 90 parent = either.b(); |
92 | 91 |
93 if(_curY == _maxHeight){ | 92 if(_curY == _maxHeight){ |
94 return parent; | 93 return parent; |
95 } | 94 } |
96 | 95 |
97 for(int i = 0;i < _curY + 1;i ++){ | 96 for(int i = 0;i < _curY + 1;i ++){ |
98 ClonableDefaultNode ch = createTree(i,_curY + 1,_maxHeight,_address.add(i)); | 97 DefaultTreeNode ch = createTree(i,_curY + 1,_maxHeight,_address.add(i)); |
99 either = parent.getChildren().addNewChildAt(i,ch); | 98 either = parent.getChildren().addNewChildAt(i,ch); |
100 if(either.isA()){ | 99 if(either.isA()){ |
101 Assert.fail(); | 100 Assert.fail(); |
102 } | 101 } |
103 | 102 |