view src/parallel_execution/test/rbTreeCopy_test.cbc @ 1057:71d4c7326f26

add test
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Fri, 26 Jan 2024 17:03:23 +0900
parents 24390402f72d
children 37667b9d02f1
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(node, 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 = 1;
  node->key = 1;
  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 = 3;
  node->key = 3;
  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 = 4;
  node->key = 4;
  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);
}

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

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

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

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

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