Mercurial > hg > Members > kazuma > jungle-ormapper
view 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 source
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; } }