# HG changeset patch # User matac42 # Date 1635397354 -32400 # Node ID d855932884b78cb5c58c22c0f48a88b0b386c510 # Parent dd71859780b9274ce6cc37f741de0b84505aaaf9 add put remove for test diff -r dd71859780b9 -r d855932884b7 src/parallel_execution/test/rb_tree_test1.cbc --- a/src/parallel_execution/test/rb_tree_test1.cbc Thu Oct 21 22:50:03 2021 +0900 +++ b/src/parallel_execution/test/rb_tree_test1.cbc Thu Oct 28 14:02:34 2021 +0900 @@ -3,44 +3,89 @@ #interface "Tree.h" __code createRBTreeTest(struct Tree* tree) { - printf("create\n"); + printf("---create\n"); Gearef(context, Tree)->tree = tree; - goto putDataTest(); + goto putDataTest1(); } // 手書きstub __code createRBTreeTest_stub(struct Context* context) { - printf("create stub\n"); + printf("---create stub\n"); Tree* tree = createRedBlackTree(context); goto createRBTreeTest(context, tree); } -__code putDataTest(struct Tree* tree) { - printf("put\n"); +__code putDataTest1(struct Tree* tree) { + printf("---put1\n"); Node* node = new Node(); node->key = 0; Queue* queue = createSynchronizedQueue(context); node->value = queue; // tree->putの場所がわかれば良い... - goto tree->put(node, printResult); + goto tree->put(node, putDataTest2); +} + +// 手書きstub +__code putDataTest1_stub(struct Context* context) { + printf("---put1 stub\n"); + Tree* tree = (struct Tree*)Gearef(context, Tree)->tree; + goto putDataTest1(context, tree); +} + +__code putDataTest2(struct Tree* tree) { + printf("---put2\n"); + Node* node = new Node(); + node->key = 1; + Queue* queue = createSynchronizedQueue(context); + node->value = queue; + goto tree->put(node, removeDataTest); } // 手書きstub -__code putDataTest_stub(struct Context* context) { - printf("put stub\n"); +__code putDataTest2_stub(struct Context* context) { + printf("---put2 stub\n"); Tree* tree = (struct Tree*)Gearef(context, Tree)->tree; - goto putDataTest(context, tree); + goto putDataTest2(context, tree); +} + +__code removeDataTest(struct Tree* tree) { + printf("---remove\n"); + Node* node = new Node(); + node->key = 1; + Queue* queue = createSynchronizedQueue(context); + node->value = queue; + goto tree->remove(node, printResult); } -__code printResult() { - printf("Finish!\n"); +// 手書きstub +__code removeDataTest_stub(struct Context* context) { + printf("---remove stub\n"); + Tree* tree = (struct Tree*)Gearef(context, Tree)->tree; + goto removeDataTest(context, tree); +} + +// 動作未確認 +__code printResult(struct Tree* tree) { + printf("---result\n"); + struct Node* node = &(tree->tree)->Node; + if (node == NULL) { + printf("NULL"); + } else { + printf("key = %d (", node->key); + printTree1((union Data*)(node->right)); + printf("), ("); + printTree1((union Data*)(node->left)); + printf(")"); + } + printf("\n"); goto exit_code(context); } // 手書きstub __code printResult_stub(struct Context* context) { - printf("result stub\n"); - goto printResult(context); + printf("---result stub\n"); + Tree* tree = (struct Tree*)Gearef(context, Tree)->tree; + goto printResult(context, tree); } int main(int argc, char const* argv[]) {