view src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverse/BruteForceTraverserTest.java @ 107:5b7e45464bb8

move
author one
date Fri, 12 Sep 2014 21:20:04 +0900
parents 3d88bad21bc4
children 5df5505e1c1e
line wrap: on
line source

/*package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverse;

import java.nio.ByteBuffer;
import java.util.Iterator;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.SearchQuery;
import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.query.UpdateQuery;
import junit.framework.TestCase;

import org.junit.Assert;
import org.junit.Test;

public abstract class BruteForceTraverserTest extends TestCase{
	public abstract InterfaceTraverser instance(TreeNode node);

	@Test
	public void testSearch()	{
		int maxHeight = 3;
		Pair<TreeNode, NodePath> test = null;
		TreeNode root = createTree(0,0,maxHeight,new DefaultNodePath());
		InterfaceTraverser traverser = instance(root);
		Iterator<Pair<TreeNode, NodePath>> itNode = traverser.find(new SearchQuery("KEY","<-1,0,0>"));
		for(;itNode.hasNext(); ){
			test = itNode.next();
		}
		String str = new String(test.left().getAttributes().get("KEY").array());
		Assert.assertEquals(str,"<-1,0,0>");
	}
	
	@Test
	public void testUpdate()	{
		int maxHeight = 3;
		Pair<TreeNode, NodePath> test = null;
		TreeNode root = createTree(0,0,maxHeight,new DefaultNodePath());
		InterfaceTraverser traverser = instance(root);
		JungleTreeEditor editor = traverser.update(new UpdateQuery("KEY", "<-1,0,0>", "tatsuki"));
		traverser.set(editor.getRoot());
		Iterator<Pair<TreeNode, NodePath>> checkNode = traverser.find(new SearchQuery("KEY","tatsuki"));
		for(;checkNode.hasNext(); ){
			test = checkNode.next();
		}
		String str = new String(test.left().getAttributes().get("KEY").array());
		Assert.assertEquals(str,"tatsuki");
	}
	
	public static String key = "KEY";
	public static ByteBuffer value = ByteBuffer.wrap(key.getBytes());
	public static DefaultTreeNode factory = new DefaultTreeNode();
	
	public static TreeNode createTree(int _curX,int _curY,int _maxHeight,NodePath _address)
	{
		System.out.println(_address.toString());
		TreeNode parent = factory.createNewNode();
		Either<Error,TreeNode> either = parent.getAttributes().put(key,ByteBuffer.wrap(_address.toString().getBytes()));
		if(either.isA()){
			Assert.fail();
		}
		parent = either.b();
		
		if(_curY == _maxHeight){
			return parent;
		}
		
		for(int i = 0;i < _curY + 1;i ++){
			TreeNode ch = createTree(i,_curY + 1,_maxHeight,_address.add(i));
			either = parent.getChildren().addNewChildAt(i,ch);
			if(either.isA()){
				Assert.fail();
			}
			
			parent = either.b();
		}
		
		return parent;
	}

}*/