예제 #1
0
파일: treeTest.c 프로젝트: aniketsr/DSA
void test_must_insert_root_node(){
	Tree tree = createTree(compareInts);
	int data = 2;
	int result = insertIntoTree(&tree, NULL, &data);
	ASSERT(SUCCESS == result);
	disposeTree(&tree);
}
예제 #2
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_searching_root_node(){
	Tree tree = createTree(cmpInt);
	int element1 =10;
	ASSERT(1 == insertTreeNode(&tree,NULL,&element1));
	ASSERT(1 == search(&tree,&element1));
	disposeTree(&tree);
};
예제 #3
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_removing_node_that_has_childs_should_fail(){
	Tree tree = createTree(cmpInt);
	int element1 = 10,element2 = 20,element3 = 30,element4 = 40;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	ASSERT(0 == removeTreeNode(&tree,&element1));
	disposeTree(&tree);
};
예제 #4
0
파일: treeTest.c 프로젝트: aniketsr/DSA
void test_must_not_delete_any_Parent_node(){
	Tree tree = createTree(compareInts);
	Iterator result;
	int data[2] = {10,23};
	ASSERT(insertIntoTree(&tree, NULL, &data));
	ASSERT(insertIntoTree(&tree, &data, &data[1]));
	ASSERT(0 == deleteFromTree(&tree,&data[0]));
	disposeTree(&tree);
}
예제 #5
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_removing_node_that_is_absent(){
	Tree tree = createTree(cmpInt);
	int element1 = 10,element2 = 20,element3 = 30;
	Iterator it;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	ASSERT(0 == removeTreeNode(&tree,&element3));
	disposeTree(&tree);
};
예제 #6
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_searching_nodes_depth_one(){
	Tree tree = createTree(cmpInt);
	int element1 = 10,element2 = 20,element3 = 30;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	insertTreeNode(&tree,&element1,&element3);
	ASSERT(1 == search(&tree,&element2));
	ASSERT(1 == search(&tree,&element3));
	disposeTree(&tree);
};
예제 #7
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_inserting_two_nodes_one_root_and_its_child(){
	Tree tree = createTree(cmpInt);
	Iterator it;
	int element1 = 10,element2 = 20;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	it = getChildren(&tree,&element1);
	ASSERT(element2 == *(int*)it.next(&it));
	ASSERT(NULL == it.next(&it));
	disposeTree(&tree);
};
예제 #8
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_inserting_first_node_in_linked_list(){
	Tree tree = createTree(cmpInt);
	Iterator it;
	void *element;
	int element1 =10;
	ASSERT(1 == insertTreeNode(&tree,NULL,&element1));
	it = getChildren(&tree,NULL);
	element = it.next(&it);
	ASSERT(*(int*)element == element1);
	disposeTree(&tree);
};
예제 #9
0
파일: treeTest.c 프로젝트: aniketsr/DSA
void test_must_delete_node_at_second_level(){
	Tree tree = createTree(compareInts);
	Iterator result;
	int data[2] = {10,23};
	ASSERT(insertIntoTree(&tree, NULL, &data));
	ASSERT(insertIntoTree(&tree, &data, &data[1]));
	ASSERT(deleteFromTree(&tree,&data[1]));
	result = getChildren(&tree, &data);
	ASSERT(0 == result.hasNext(&result));
	disposeTree(&tree);
}
예제 #10
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_removing_leaf_node(){
	Tree tree = createTree(cmpInt);
	int element1 = 10,element2 = 20;
	Iterator it;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	ASSERT(1 == removeTreeNode(&tree,&element2));
	it = getChildren(&tree,&element1);
	ASSERT(NULL == it.next(&it));
	disposeTree(&tree);
};
예제 #11
0
파일: treeTest.c 프로젝트: aniketsr/DSA
void test_must_insert_nodes_at_different_levels(){
	Tree tree = createTree(compareInts);
	Iterator it;
	int data[7] = {10,12,30,4,45,5,50};
	ASSERT(insertIntoTree(&tree, NULL, &data[0]));
	ASSERT(insertIntoTree(&tree, &data[0], &data[1]));
	ASSERT(insertIntoTree(&tree, &data[1], &data[2]));
	ASSERT(insertIntoTree(&tree, &data[2], &data[3]));
	ASSERT(insertIntoTree(&tree, &data[3], &data[4]));
	ASSERT(insertIntoTree(&tree, &data[4], &data[5]));
	disposeTree(&tree);
}
예제 #12
0
파일: treeTest.c 프로젝트: aniketsr/DSA
void test_must_insert_node_at_second_level(){
	Tree tree = createTree(compareInts);
	int data[] = {5,10,15};
	Iterator result;
	insertIntoTree(&tree, NULL, &data[0]);
	insertIntoTree(&tree, &data[0], &data[1]);
	insertIntoTree(&tree, &data[0], &data[2]);
	result = getChildren(&tree, &data);
	ASSERT(15 == *(int*)result.next(&result));
	ASSERT(10 == *(int*)result.next(&result));
	disposeTree(&tree);
}
예제 #13
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_inserting_three_nodes_one_after_the_other(){
	Tree tree = createTree(cmpInt);
	Iterator it;
	int element1 = 10,element2 = 20,element3 = 30,element4 = 40;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	insertTreeNode(&tree,&element1,&element3);
	insertTreeNode(&tree,&element1,&element4);
	it = getChildren(&tree,&element1);
	ASSERT(element4 == *(int*)it.next(&it));
	ASSERT(element3 == *(int*)it.next(&it));
	ASSERT(element2 == *(int*)it.next(&it));
	disposeTree(&tree);
};
예제 #14
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_inserting_node_at_depth_two(){
	Tree tree = createTree(cmpInt);
	void * element;
	Iterator it;
	int element1 = 10,element2 = 20,element3 = 30,element4 = 40;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	insertTreeNode(&tree,&element2,&element3);
	insertTreeNode(&tree,&element2,&element4);
	it = getChildren(&tree,&element2);
	ASSERT(element4 == *(int*)it.next(&it));
	ASSERT(element3 == *(int*)it.next(&it));
	disposeTree(&tree);
};
예제 #15
0
파일: treeTest.c 프로젝트: pallavig/dsa
void test_removing_node_from_depth_two(){
	Iterator it;
	Tree tree = createTree(cmpInt);
	int element1 = 10,element2 = 20,element3 = 30,element4 = 40;
	insertTreeNode(&tree,NULL,&element1);
	insertTreeNode(&tree,&element1,&element2);
	insertTreeNode(&tree,&element2,&element3);
	insertTreeNode(&tree,&element2,&element4);
	ASSERT(1 == removeTreeNode(&tree,&element3));
	it = getChildren(&tree,&element2);
	ASSERT(element4 == *(int*)it.next(&it));
	ASSERT(NULL == it.next(&it));
	disposeTree(&tree);
};
예제 #16
0
파일: treeTest.c 프로젝트: aniketsr/DSA
void test_must_search_element_in_the_tree(){
	Tree tree = createTree(compareInts);
	Iterator result;
	int data[7] = {10,12,30,4,45,5,50};
	ASSERT(insertIntoTree(&tree, NULL, &data[0]));
	ASSERT(insertIntoTree(&tree, &data[0], &data[1]));
	ASSERT(insertIntoTree(&tree, &data[1], &data[2]));
	ASSERT(insertIntoTree(&tree, &data[2], &data[3]));
	ASSERT(insertIntoTree(&tree, &data[3], &data[4]));
	ASSERT(insertIntoTree(&tree, &data[4], &data[5]));
	ASSERT(searchInTree(&tree,&data[4]));
	ASSERT(searchInTree(&tree,&data[2]));
	ASSERT(searchInTree(&tree,&data[0]));
	disposeTree(&tree);
}
예제 #17
0
파일: treeTest.c 프로젝트: aniketsr/DSA
void test_must_delete_nodes_from_different_levels(){
	Tree tree = createTree(compareInts);
	Iterator result;
	int data[7] = {10,12,30,4,45,5,50};
	ASSERT(insertIntoTree(&tree, NULL, &data[0]));
	ASSERT(insertIntoTree(&tree, &data[0], &data[1]));
	ASSERT(insertIntoTree(&tree, &data[1], &data[2]));
	ASSERT(insertIntoTree(&tree, &data[2], &data[3]));
	ASSERT(insertIntoTree(&tree, &data[3], &data[4]));
	ASSERT(insertIntoTree(&tree, &data[4], &data[5]));
	ASSERT(deleteFromTree(&tree, &data[5]));
	result = getChildren(&tree, &data[4]);
	ASSERT(0 == result.hasNext(&result));
	disposeTree(&tree);
}