Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/core/treeeditor/Difference/MultiDifferencialJngleTreeEditorTest.java @ 280:9f38fcb07d36
add DifferenceJungleTree BenchMark
author | tatsuki |
---|---|
date | Tue, 20 Dec 2016 18:17:18 +0900 |
parents | 86d44dd80b1c |
children | 201cc75a9984 |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.core.treeeditor.Difference; 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.store.nodepath.DefaultNodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; 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.Error.Error; import org.junit.Assert; import org.junit.Test; /** * デバッガで確かめる * 手順 * Thread 1 を JungleTreeEditorの TransactionManager newTxManager = either.b();の部分で止める * そしてThread 2で TreeContextのAppendedNode */ public class MultiDifferencialJngleTreeEditorTest { @Test public void MultiDifferencialJngleTreeEditorTests() throws InterruptedException { Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTraverser()); JungleTree tree = jungle.createNewDifferenceTree("df"); Thread t1 = new EditorThread(tree); Thread t2 = new EditorThread(tree); t1.start(); t2.start(); System.out.println("start"); t1.join(); t2.join(); } private class EditorThread extends Thread { JungleTree tree; EditorThread(JungleTree tree) { this.tree = tree; } @Override public void run(){ Either<Error, JungleTreeEditor> either2; System.out.println(getName() + "thread"); do { JungleTreeEditor editor = tree.getJungleTreeEditor(); NodePath path = new DefaultNodePath(); Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path, 0); Assert.assertFalse(either.isA()); JungleTreeEditor editor2 = either.b(); either2 = editor2.success(); System.out.println(getName() + "success"); } while(either2.isA()); } } }