Mercurial > hg > Members > tatsuki > jungle-bench
diff src/main/java/example/ReadThread.java @ 6:6954add9eea9
make Read test trial
author | one |
---|---|
date | Mon, 31 Mar 2014 07:00:11 +0900 |
parents | |
children | 4e1f8f434648 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/example/ReadThread.java Mon Mar 31 07:00:11 2014 +0900 @@ -0,0 +1,65 @@ +package example; + +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TraversableNodeWrapper; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import junit.framework.Assert; + +public class ReadThread extends Thread { + public static final String key = "name"; + int roopCount; + Jungle j; + + ReadThread(Jungle j, int roopCount) { + this.roopCount = roopCount; + this.j = j; + } + + public void run() { + JungleTree tree = j.getTreeByName("tree"); + for (int count = 0; count < roopCount; count++) { + for (int x = 0; x < 2; x++) { + DefaultNodePath path = new DefaultNodePath(); + path = path.add(x); + DefaultEvaluator evaluator = new DefaultEvaluator(path); + DefaultTraverser traverser = new DefaultTraverser(); + TraversableNodeWrapper<Node> traversable = new TraversableNodeWrapper<Node>( + tree.getRootNode()); + Either<Error, Traversal<TraversableNodeWrapper<Node>>> result = traverser + .traverse(traversable, evaluator); + if (result.isA()) { + Assert.fail(); + } + Traversal<TraversableNodeWrapper<Node>> traversal = result.b(); + TraversableNodeWrapper<Node> target = traversal.destination(); + ByteBuffer value = target.getWrapped().getAttributes().get(key); + String actual = new String(value.array()); + //System.out.println("値=" + actual); + for (int y = 0; y < 2; y++) { + path = new DefaultNodePath(); + path = path.add(x).add(y); + evaluator = new DefaultEvaluator(path); + + result = traverser.traverse(traversable, evaluator); + if (result.isA()) { + Assert.fail(); + } + traversal = result.b(); + target = traversal.destination(); + value = target.getWrapped().getAttributes().get(key); + actual = new String(value.array()); + } + } + } + // ここまで処理 + } +}