Mercurial > hg > Members > tatsuki > bench > jungle-core
view src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/ParentIndexTest.java @ 146:371b6ddb78f2
repair putAttributeIndex and deleteAttributeIndex
author | one |
---|---|
date | Fri, 21 Nov 2014 12:46:06 +0900 |
parents | 72f454eb04ec |
children | feb2346ace19 |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.index; import java.nio.ByteBuffer; import java.util.Iterator; 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.TreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; import junit.framework.Assert; import org.junit.Test; import fj.data.List; import fj.data.Option; import fj.data.TreeMap; public class ParentIndexTest { @Test public void testParentIndex() { Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTraverser()); jungle.createNewTree("tree"); JungleTree tree = jungle.getTreeByName("tree"); JungleTreeEditor editor = tree.getIndexTreeEditor(); DefaultNodePath path = new DefaultNodePath(); editor = editor.addNewChildAt(path, 0).b(); for (int num = 0; num < 5; num++) { editor = editor.addNewChildAt(path.add(0), num).b().success().b(); editor = editor.putAttribute(path.add(0).add(num), "test",ByteBuffer.wrap("test".getBytes())).b().success().b(); } TreeMap<TreeNode, TreeNode> parentIndex = tree.getParentIndex(); TreeNode node = tree.getRootNode(); for (int num = 0; node.getChildren().size() != 0; num++) { Iterator<TreeNode> children = node.getChildren().iterator(); for (; children.hasNext();) { TreeNode child = children.next(); TreeNode parent = parentIndex.get(child).some(); Assert.assertEquals(parent, node); } node = node.getChildren().at(num).b(); } JungleTree oldTree = tree.getOldTree(tree.revision() - 1).b(); TreeNode oldRoot = oldTree.getRootNode(); TreeNode oldNode = oldRoot.getChildren().at(0).b(); Option<TreeNode> oldParentOp = parentIndex.get(oldNode); Assert.assertTrue(oldParentOp.isNone()); TreeMap<TreeNode, TreeNode> oldTreeParentIndex = oldTree.getParentIndex(); oldParentOp = oldTreeParentIndex.get(oldNode); Assert.assertTrue(oldParentOp.isSome()); } }