view src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/GetOldTreeTest.java @ 143:afbe19c98f53

change Index form TreeMap<String,TreeMap<String<List<Pair<TreeNode,NodePath>>>> → TreeMap<String,TreeMap<String<List<NodePath>>> bag
author one
date Sat, 15 Nov 2014 17:48:07 +0900
parents ef183969bf31
children 0854f9a9e81d
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;

import java.nio.ByteBuffer;

import org.junit.Test;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
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.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
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 GetOldTreeTest {

  @Test
  public void getOldTreeTest() {
    Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTreeEditor(new DefaultTraverser()));
    jungle.createNewTree("tree");
    JungleTree tree = jungle.getTreeByName("tree");
    JungleTreeEditor editor = tree.getTreeEditor();
    DefaultNodePath path = new DefaultNodePath();

    for (int num = 0; num < 10; num++) {
      JungleTreeEditor addChildEditor = editor.addNewChildAt(path, num).b();
      JungleTreeEditor putAttributeEditor = addChildEditor.putAttribute(path.add(num), "test",
          ByteBuffer.wrap("tatsuki".getBytes())).b();
      Either<Error, JungleTreeEditor> successEither = putAttributeEditor.success();
      Assert.assertFalse(successEither.isA());
      editor = successEither.b();
    }

    JungleTreeEditor newEditor = tree.getTreeEditor();
    JungleTreeEditor newPutEditor = newEditor.putAttribute(path.add(9), "test", ByteBuffer.wrap("kanagawa".getBytes())).b();
    newPutEditor.success();
    
    TreeNode root = tree.getRootNode();
    Either<Error, TreeNode> childNodeEither = root.getChildren().at(9);
    Assert.assertTrue(childNodeEither.isB());
    TreeNode child = childNodeEither.b();
    Assert.assertEquals(child.getAttributes().getString("test"),"kanagawa");
    long t1 = System.currentTimeMillis();
    JungleTree oldTree1 = tree.getOldTree(10).b();
    long t2 = System.currentTimeMillis();
    System.out.println("time = " + (t2 - t1));
    TreeNode oldRoot1 = oldTree1.getRootNode();
    Either<Error, TreeNode> oldChildNodeEither = oldRoot1.getChildren().at(9);
    Assert.assertTrue(oldChildNodeEither.isB());
    TreeNode oldChildNode = oldChildNodeEither.b();
    Assert.assertEquals(oldChildNode.getAttributes().getString("test"),"tatsuki");
    
    
    JungleTree oldTree2 = tree.getOldTree(9).b();
    TreeNode oldRoot2 = oldTree2.getRootNode();
    Assert.assertTrue(oldRoot2.getChildren().at(9).isA());
    
    
  }
}