Esempio n. 1
0
void assembleTree(Assembler a, ETTree t) {
  int i;
  int bc = getBranchCount(t);
  if( bc > 0 ) {
    for(i = 0; i < bc; i++ ) {
      assembleTree(a, getBranch(t, i));
    }
  }
  assembleElement(a, getElement(t));
}
Esempio n. 2
0
void test_container::TC_01_01() {
#define NODENUM 6
	HQTreeNode* pnodes = createNodes(NODENUM, 0);
	CPPUNIT_ASSERT(NULL != pnodes);

	assembleTree(pnodes);
	checkSubtree(pnodes, __FUNCTION__);
	deassembleTree(pnodes, __FUNCTION__);

	destroyNodes(pnodes, NODENUM);
#undef NODENUM
}
Esempio n. 3
0
void test_container::TC_01_03() {
#define NODENUM 12
	HQTreeNode* pnodes = createNodes(NODENUM, 0);
	CPPUNIT_ASSERT(NULL != pnodes);
	HQTreeNode* ptree1 = pnodes;
	HQTreeNode* ptree2 = pnodes + 6;

	assembleTree(ptree1);
	checkSubtree(ptree1, __FUNCTION__);
	assembleTree(ptree2);
	checkSubtree(ptree2, __FUNCTION__);

	ptree2->Attach(ptree1 + 3);
	test_nodes nodes[] = {
			{	ptree1 + 0, NULL, ptree1 + 1, NULL, NULL, NULL, ptree1 + 1, ptree1 + 3	},
			{	ptree1 + 1, ptree1 + 0, ptree1 + 2, ptree1 + 0, ptree1 + 2, NULL, NULL, NULL	},
			{	ptree1 + 2, ptree1 + 0, ptree1 + 4, ptree1 + 1, ptree1 + 3, ptree1 + 1, ptree1 + 4, ptree1 + 5	},
			{	ptree1 + 3, ptree1 + 0, ptree2 + 0, ptree1 + 5, NULL, ptree1 + 2, ptree2 + 0, ptree2 + 0	},
			{	ptree1 + 4, ptree1 + 2, ptree1 + 5, ptree1 + 2, ptree1 + 5, NULL, NULL, NULL	},
			{	ptree1 + 5, ptree1 + 2, ptree1 + 3, ptree1 + 4, NULL, ptree1 + 4, NULL, NULL	},

			{	ptree2 + 0, ptree1 + 3, ptree2 + 1, ptree1 + 3, NULL, NULL, ptree2 + 1, ptree2 + 3	},
			{	ptree2 + 1, ptree2 + 0, ptree2 + 2, ptree2 + 0, ptree2 + 2, NULL, NULL, NULL	},
			{	ptree2 + 2, ptree2 + 0, ptree2 + 4, ptree2 + 1, ptree2 + 3, ptree2 + 1, ptree2 + 4, ptree2 + 5	},
			{	ptree2 + 3, ptree2 + 0, NULL, ptree2 + 5, NULL, ptree2 + 2, NULL, NULL	},
			{	ptree2 + 4, ptree2 + 2, ptree2 + 5, ptree2 + 2, ptree2 + 5, NULL, NULL, NULL	},
			{	ptree2 + 5, ptree2 + 2, ptree2 + 3, ptree2 + 4, NULL, ptree2 + 4, NULL, NULL	},
		};
	check_nodelist(&(nodes[0]), sizeof(nodes) / sizeof(test_nodes), __FUNCTION__);

	deassembleTree(ptree2, __FUNCTION__);
	deassembleTree(ptree1, __FUNCTION__);

	destroyNodes(pnodes, NODENUM);
#undef NODENUM
}
Esempio n. 4
0
//for now it's just random topology but may become random labels as well later that why this is such a simple function now...
void Tree::assembleRandomTree() {
	randomTopology();
	assembleTree();
}
Esempio n. 5
0
void Tree::assembleRandomUnifracTree(string groupA, string groupB) {
	vector<string> temp; temp.push_back(groupA); temp.push_back(groupB);
	randomLabels(temp);
	assembleTree();
}
Esempio n. 6
0
void Tree::assembleRandomUnifracTree(vector<string> g) {
	randomLabels(g);
	assembleTree();
}