view src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/index/parentIndexTest.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.index;

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.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.traverser.DefaultTraverser;
import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
import jp.ac.u_ryukyu.ie.cr.jungle.store.index.ParentIndex;
import junit.framework.Assert;
import org.junit.Test;

import java.nio.ByteBuffer;

/**
 * Created by e115731 on 15/05/06.
 */
public class parentIndexTest {
    @Test
    public void parentIndex() {
        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 count = 0; count < 100; count++) {
            editor = editor.addNewChildAt(path, 0).b();
            path = path.add(0);
            editor = editor.putAttribute(path, "KEY", ByteBuffer.wrap(("data" + count).getBytes())).b();
        }

        Either<Error, JungleTreeEditor> either = editor.success();
        Assert.assertTrue(either.isB());
        TreeNode node = tree.getNodeOfPath(path).b();
        ParentIndex parentIndex = tree.getParentIndex();
        for (int count = 99; count >= 0; count--) {
            String attribute = node.getAttributes().getString("KEY");
            Assert.assertEquals(attribute, "data" + count);
            node = parentIndex.get(node);
        }
    }
}