changeset 983:d855932884b7

add put remove for test
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Thu, 28 Oct 2021 14:02:34 +0900
parents dd71859780b9
children f86f3496f5fd 65066d677a13
files src/parallel_execution/test/rb_tree_test1.cbc
diffstat 1 files changed, 58 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- 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[]) {