view src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/traverse/DefaultInterfaceTraverserTest.java @ 308:201cc75a9984

change Red Black Tree Edit Path Extends
author tatsuki
date Thu, 26 Jan 2017 15:23:25 +0900
parents 0767620e6f5f
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.persistent.NullJournal;
import jp.ac.u_ryukyu.ie.cr.jungle.query.traverser.InterfaceTraverser;
import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath;
import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode;
import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree;
import junit.framework.Assert;
import org.junit.Test;

import java.util.Iterator;

import static jp.ac.u_ryukyu.ie.cr.jungle.CreateTreeMethod.createTree;


public class DefaultInterfaceTraverserTest {
    public static String key = "KEY";
    public static String indexKey = "INDEXKEY";
    @Test
    public void InterfaseTraverserTest() {
        Jungle jungle = new DefaultJungle(new NullJournal(), "hoge");
        jungle.createNewTree("TestTree");
        JungleTree tree = jungle.getTreeByName("TestTree");
        JungleTreeEditor editor = tree.getJungleTreeEditor();
        editor = createTree(editor,key,indexKey, 3, new DefaultNodePath());
        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
                return true;
            }, indexKey, "<-1,1,1>");

            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
                return true;
            }, indexKey, "no exist index value");

            Assert.assertFalse(iterator.hasNext());
        }
    }
}