Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/impl/redblacktreenode/GetKeysTest.java @ 329:2a0cb1f0ba4e
rename Error package
author | kono |
---|---|
date | Sat, 08 Jul 2017 21:05:55 +0900 |
parents | abd8e3cf9bfc |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.impl.redblacktreenode; 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.core.Attributes; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.RedBlackTreeNodePath; 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 jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; import org.junit.Assert; import org.junit.Test; import java.nio.ByteBuffer; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class GetKeysTest { @Test public void GetKeys() { String balanceKey = "balanceKey"; String[] keys = new String[]{ "kanagawa","atton","parusu","Dpop" }; List<String> keyList = new LinkedList<String>(); for (String key : keys) {//keyのListの作成 keyList.add(key); } Jungle jungle = new DefaultJungle(null, "hogehoge"); JungleTree tree = jungle.createNewRedBlackTree("TreeName", "balanceKey"); JungleTreeEditor editor = tree.getJungleTreeEditor(); ByteBuffer value = ByteBuffer.wrap(("value").getBytes()); NodePath path = new RedBlackTreeNodePath(balanceKey,value); Either<Error, JungleTreeEditor> either = editor.addNewChildAndPutAttribute(path, 0, balanceKey, value); //ノードの追加 Assert.assertFalse(either.isA()); editor = either.b(); either = editor.success(); Assert.assertFalse(either.isA()); editor = tree.getJungleTreeEditor(); for (String key : keys) { value = ByteBuffer.wrap(path.toString().getBytes()); either = editor.putAttribute(path, key, value); Assert.assertFalse(either.isA()); //AttributeのPutが成功したかどうか調べる editor = either.b(); } either = editor.success(); Assert.assertFalse(either.isA()); keyList.add(balanceKey);//balanceKeyはputAttributeできないのでここで追加する TreeNode root = tree.getRootNode(); Attributes attribute = root.getAttributes(); Iterator<String> nodeKeys = attribute.getKeys(); while (nodeKeys.hasNext()) { //全てのKeyをちゃんと返すか調べる String nodeKey = nodeKeys.next(); System.out.println(nodeKey); int index = keyList.indexOf(nodeKey); keyList.remove(index); } Assert.assertEquals(keyList.size(),0); //全部のKeyをAttributeが返すなら Listのサイズは0になるはず } }