view src/parallel_execution/test/rbTreeCopy_test.cbc @ 1060:5d8dce4e13df

fix: rbtree copy assert2 test passed
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Sat, 27 Jan 2024 21:41:32 +0900
parents 37667b9d02f1
children
line wrap: on
line source

#include <stdio.h>
#interface "Tree.h"


/* #include <assert.h> */

__code rbTreeTest1(struct Tree* tree) {
  printf("Test1\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 1;
  node->key = 1;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest2);
}

__code rbTreeTest1_stub(struct Context* context) {
  printf("test1_stub\n");
  Tree* tree = createRedBlackTree(context);
  goto rbTreeTest1(context,tree);
}

__code rbTreeTest2(struct Tree* tree) {
  printf("Test2\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 2;
  node->key = 2;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest3);
}

__code rbTreeTest2_stub(struct Context* context) {
  printf("test2_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest2(context,tree);
}

__code rbTreeTest3(struct Tree* tree) {
  printf("Test3\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 3;
  node->key = 3;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest4);
}

__code rbTreeTest3_stub(struct Context* context) {
  printf("test3_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest3(context,tree);
}

//
//   2(B)
//   / \
// 1(R) 3(R)
//

__code rbTreeTest4(struct Tree* tree) {
  printf("test4\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  goto tree->copy(assert1);
}

__code rbTreeTest4_stub(struct Context* context) {
  printf("test4_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest4(context,tree);
}

__code assert1(struct Tree* tree) {
  printf("assert1\n");
  goto rbTreeTest5(context,tree);
}

__code rbTreeTest5(struct Tree* tree) {
  printf("Test5\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 4;
  node->key = 4;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest6);
}

__code rbTreeTest5_stub(struct Context* context) {
  printf("test5_stub\n");
  Tree* tree = createRedBlackTree(context);
  goto rbTreeTest5(context,tree);
}

__code rbTreeTest6(struct Tree* tree) {
  printf("Test6\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 2;
  node->key = 2;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest7);
}

__code rbTreeTest6_stub(struct Context* context) {
  printf("test6_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest6(context,tree);
}

__code rbTreeTest7(struct Tree* tree) {
  printf("Test7\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 6;
  node->key = 6;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest8);
}

__code rbTreeTest7_stub(struct Context* context) {
  printf("test7_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest7(context,tree);
}

__code rbTreeTest8(struct Tree* tree) {
  printf("Test8\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 1;
  node->key = 1;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest9);
}

__code rbTreeTest8_stub(struct Context* context) {
  printf("test8_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest8(context,tree);
}

__code rbTreeTest9(struct Tree* tree) {
  printf("Test9\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 3;
  node->key = 3;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest10);
}

__code rbTreeTest9_stub(struct Context* context) {
  printf("test9_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest9(context,tree);
}

__code rbTreeTest10(struct Tree* tree) {
  printf("Test10\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 5;
  node->key = 5;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest11);
}

__code rbTreeTest10_stub(struct Context* context) {
  printf("test10_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest10(context,tree);
}

__code rbTreeTest11(struct Tree* tree) {
  printf("Test11\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  ((Integer*)node->value)->value = 7;
  node->key = 7;
  printf("value->%d,key->%d\n",((Integer*)node->value)->value,node->key);
  goto tree->put(node, rbTreeTest12);
}

__code rbTreeTest11_stub(struct Context* context) {
  printf("test11_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest11(context,tree);
}

//
//      4(B)
//     /    \
//   2(B)   6(B)
//   / \     / \
// 1(R)3(R) 5(R)7(R)

__code rbTreeTest12(struct Tree* tree) {
  printf("test12\n");
  Node* node = new Node();
  node->value = (union Data*)new Integer();
  goto tree->copy(assert2);
}

__code rbTreeTest12_stub(struct Context* context) {
  printf("test12_stub\n");
  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
  goto rbTreeTest12(context,tree);
}

__code assert2(struct Tree* tree) {
  printf("assert2\n");
}

int main(int argc, char const* argv[]) {
  printf("test_main\n");
  // goto rbTreeTest1();
  goto rbTreeTest5();
}