Mercurial > hg > Members > kazuma > jungle-ormapper
diff src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/traverse/InterfaceTraverserTest.java @ 0:44465893e8b8
first Commit
author | Kazuma |
---|---|
date | Wed, 30 Nov 2016 01:47:55 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/traverse/InterfaceTraverserTest.java Wed Nov 30 01:47:55 2016 +0900 @@ -0,0 +1,143 @@ +package jp.ac.u_ryukyu.ie.cr.jungle.traverse; + +import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; +import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.jungle.persistent.NullJournal; +import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath; +import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor; +import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode; +import jp.ac.u_ryukyu.ie.cr.jungle.transaction.DefaultTreeNode; +import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; +import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser; +import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.jungle.util.Error; +import junit.framework.Assert; +import org.junit.Test; + +import java.nio.ByteBuffer; +import java.util.Iterator; + +/** + * Created by e115731 on 15/08/11. + */ +public class InterfaceTraverserTest { + public static int encount = 101; + public static double sum = 0d; + @Test + public void InterfaseTraverserTest() { + for (int i = 0; i < encount; i++) { + int start = (int) System.nanoTime(); + Jungle jungle = new DefaultJungle(new NullJournal(), "hoge", new DefaultTreeEditor(new DefaultTraverser())); + jungle.createNewTree("TestTree"); + JungleTree tree = jungle.getTreeByName("TestTree"); + JungleTreeEditor editor = tree.getTreeEditor(); + editor = createTree(editor, 0, 3, new DefaultNodePath()); + Either<Error, JungleTreeEditor> either = editor.success(); + if (either.isA()) + Assert.fail(); + int end = (int) System.nanoTime(); + if(i != 0) { + sum += (end - start) / 1000000f; + + System.out.println("Time sum : " + ((end - start) / 1000000f) + "ms"); + } + // System.out.println("Time : " + (end - start) / 1000000f + "ms"); + } + System.out.println("Sum Time : " + sum / (encount -1) + "ms"); +// InterfaceTraverser traverser = tree.getTraverser(true); +// +// { +// Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { // no index find +// String value = node.getAttributes().getString(key); +// if (value == null) +// return false; +// if (value.equals("<1,1,-1>")) +// return true; +// return false; +// }, null, null); +// +// Assert.assertTrue(iterator.hasNext()); +// TreeNode node = iterator.next(); +// String value = node.getAttributes().getString("KEY"); +// Assert.assertEquals("<1,1,-1>", value); +// } +// +// { +// Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { // no index find +// String value = node.getAttributes().getString(key); +// if (value == null) +// return false; +// if (value.equals("no exist value")) +// return true; +// return false; +// }, null, null); +// +// Assert.assertFalse(iterator.hasNext()); +// } +// +// { +// Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { // use index find +// String value = node.getAttributes().getString(key); +// if (value == null) +// return false; +// if (value.equals("<1,1,-1>")) +// return true; +// return false; +// }, indexKey, "<1,1,-1>+ index"); +// +// Assert.assertTrue(iterator.hasNext()); +// TreeNode node = iterator.next(); +// String value = node.getAttributes().getString("KEY"); +// Assert.assertEquals("<1,1,-1>", value); +// } +// +// { +// Iterator<TreeNode> iterator = traverser.find((TreeNode node) -> { // use index find +// String value = node.getAttributes().getString(key); +// if (value == null) +// return false; +// if (value.equals("<1,1,-1>")) +// return true; +// return false; +// }, indexKey, "no exist index value"); +// +// Assert.assertFalse(iterator.hasNext()); +// } + + } + + public static String key = "KEY"; + public static String indexKey = "INDEXKEY"; + public static DefaultTreeNode factory = new DefaultTreeNode(); + public static ByteBuffer value = ByteBuffer.wrap(key.getBytes()); + + public JungleTreeEditor createTree(JungleTreeEditor editor, int _curY, int _maxHeight, NodePath path) { + + if (_curY == _maxHeight) { + return editor; + } + for (int i = 0; i < 3; i++) { + + Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path, i); + if (either.isA()) + Assert.fail(); + editor = either.b(); + // String value = path.add(i).toString(); + either = editor.putAttribute(path.add(i), key, value); + if (either.isA()) + Assert.fail(); + editor = either.b(); + // String value2 = value + "+ index"; + either = editor.putAttribute(path.add(i), indexKey, value); + if (either.isA()) + Assert.fail(); + editor = either.b(); + editor = createTree(editor, _curY + 1, _maxHeight, path.add(i)); + } + return editor; + } + +}