Example #1
0
void test_sphere_intersection_point(void){

   struct ray r = create_ray(create_point(0,0,0),create_vector(1.3,0,0));
   struct sphere s = create_sphere(create_point(2.5,0,0),1.2);
   struct maybe_point test = sphere_intersection_point(r,s);
   checkit_double(test.p.x,1.3);
   checkit_double(test.p.y,0);
   checkit_double(test.p.z,0);
   checkit_int(test.isPoint,1);
   
   struct ray r2 = create_ray(create_point(-2.4,-2.9,-4.4),create_vector(-1,0,0));
   struct sphere s2 = create_sphere(create_point(2.3,5.7,8.2),1);
   struct maybe_point test2 = sphere_intersection_point(r2,s2);
   checkit_int(test2.isPoint,0);
   
   
   struct ray r3 = create_ray(create_point(-4.3,0,4.7),create_vector(3.5,0,0));
   struct sphere s3 = create_sphere(create_point(2.1,0,0),4.7);
   struct maybe_point test3 = sphere_intersection_point(r3,s3);
   checkit_int(test3.isPoint,1); 
   

   struct ray r4 = create_ray(create_point(1.2,-5.4,4.2),create_vector(1.1,1.2,1.3));
   struct sphere s4 = create_sphere(create_point(4.7,6.4,2.2),13.5);
   struct maybe_point test4 = sphere_intersection_point(r4,s4);
   checkit_double(test4.p.x,9.871860);
   checkit_double(test4.p.y,4.060210);
   checkit_double(test4.p.z,14.448561);
   checkit_int(test4.isPoint,1);
}
Example #2
0
void test_cases(void)
{
   struct monster l= create_monster(2,3,4.5,6);
   
   checkit_int(l.numEyes, 2);
   checkit_int(l.numArms,3);
   checkit_double(l.height, 4.5);
   checkit_int(l.numTails, 6);
}
Example #3
0
void test_cast_ray(void){
   struct sphere s[2];
   struct color c1 = create_color(1,0,.3);
   s[0] = create_sphere(create_point(1.4,2.6,0), 2, c1);
   s[1] = create_sphere(create_point(4.5, 5, 0), 1,c1);

   struct ray r = create_ray(create_point(0,0,0), 
                             create_vector(1.4,2.6,0));

   struct ray r2 = create_ray(create_point(-123.2,-4,-.3),
                             create_vector(1.3,-2.9,-.3));

   struct ray r3 = create_ray(create_point(-4.5,-4.3,0),
                             create_vector(-23,-100,-100));

   checkit_int(cast_ray(r,s,2).r, 1);
   checkit_int(cast_ray(r,s,2).g, 0);
   checkit_int(cast_ray(r,s,2).b, .3);

   checkit_int(cast_ray(r2,s,2).r, 1);
   checkit_int(cast_ray(r2,s,2).g, 1);
   checkit_int(cast_ray(r2,s,2).b, 1);

   checkit_int(cast_ray(r3,s,2).r, 1);
   checkit_int(cast_ray(r3,s,2).g, 1);
   checkit_int(cast_ray(r3,s,2).b, 1);

}
void test_cases(void)
{
   checkit_int(0 + 1, 1);
   checkit_int(2 * 2, 4);
   checkit_int(19 / 3, 6);
   checkit_double(19.0 / 3, 6.333333);
   checkit_double(19 / 3.0, 6.333333);
   checkit_double(19.0 / 3.0, 6.333333);
   checkit_int(4 * 2 +27 / 3 + 4, 21);
   checkit_int(4 * (2 + 27) / 3 + 4, 42);
}
Example #5
0
void test_find_intersection_points(void){
   struct sphere s1 = create_sphere(create_point(4.2,0,0),1.3);
   struct sphere s2 = create_sphere(create_point(2.6,0,0),5.4);
   struct ray r = create_ray(create_point(-23.2,0,0),create_vector(.2,0,0));
   struct sphere spheres[2] = {s1,s2};
   struct sphere hit[2];
   struct point pts[2];
   checkit_int(find_intersection_points(spheres,2,r,hit,pts),2);
   checkit_double(pts[0].x, 2.9);
   checkit_double(pts[0].y, 0);
   checkit_double(pts[0].z, 0);
   checkit_double(pts[1].x, -2.8);
   checkit_double(pts[1].y, 0);
   checkit_double(pts[1].z, 0);
   checkit_double(hit[0].center.x, 4.2);
   checkit_double(hit[0].center.y, 0);
   checkit_double(hit[0].center.z, 0);
   checkit_double(hit[0].radius, 1.3);
   checkit_double(hit[1].center.x, 2.6);
   checkit_double(hit[1].center.y, 0);
   checkit_double(hit[1].center.z, 0);
   checkit_double(hit[1].radius, 5.4);

   struct sphere s3 = create_sphere(create_point(4.5,1.4,3.2),1.8);
   struct sphere s4 = create_sphere(create_point(2,4.3,5.4),3.2);
   struct sphere s5 = create_sphere(create_point(2.9,3.4,2.1),2.3);
   struct ray r2 = create_ray(create_point(1,1.3,.5),create_vector(1.3,1.4,1.8));
   struct sphere spheres2[3] = {s3,s4,s5};
   struct sphere hit2[3];
   struct point pts2[3];
   checkit_int(find_intersection_points(spheres2,3,r2,hit2,pts2),2);

   checkit_double(pts2[0].x, 2.489528);
   checkit_double(pts2[0].y, 2.904107);
   checkit_double(pts2[0].z, 2.562423);  
   checkit_double(pts2[1].x, 1.492227);
   checkit_double(pts2[1].y, 1.830091);
   checkit_double(pts2[1].z, 1.181545);

   checkit_double(hit2[0].center.x, 2);
   checkit_double(hit2[0].center.y, 4.3);
   checkit_double(hit2[0].center.z, 5.4);
   checkit_double(hit2[0].radius, 3.2);
   checkit_double(hit2[1].center.x, 2.9);
   checkit_double(hit2[1].center.y, 3.4);
   checkit_double(hit2[1].center.z, 2.1);
   checkit_double(hit2[1].radius, 2.3);

}
Example #6
0
int main(int argc, char * argv[]) {
FILE * fp = fopen(argv[1], "r");
if(fp!=NULL) {
char currLine[17];
fgets(currLine, 17, fp);
BST * progTree = NULL;
unsigned short currNum;
while(!feof(fp)){
	currNum = convertToShort(currLine);
	progTree = bst_insert(progTree,currNum);
	fgets(currLine,17,fp);
}
bst_traverseInOrder(progTree);
}
fclose(fp);
/*string to short assignments */
char zero[] = 			"0000000000000000";
char one[] = 			"0000000000000001";
char sixfivefivethreefive[] = 	"1111111111111111";
char onethreeseven[] = "0000000010001001";
/*BST assignment */
BST * myTree = NULL;
/*string to short tests */
checkit_int(convertToShort(zero),0);
checkit_int(convertToShort(one),1);
checkit_int(convertToShort(sixfivefivethreefive),65535);
checkit_int(convertToShort(onethreeseven), 137);
/*bst tests */
checkit_int(bst_isValueInTree(myTree, 8),0);
myTree = bst_insert(myTree, 8);
checkit_int(bst_isValueInTree(myTree, 8),1);
checkit_int(bst_isValueInTree(myTree, 5),0);
checkit_int(bst_isValueInTree(myTree, 6),0);
/*bst_traverseInOrder(myTree);*/
myTree = bst_insert(myTree, 1);
myTree = bst_insert(myTree, 3);
myTree = bst_insert(myTree,6);
myTree = bst_insert(myTree,4);
myTree = bst_insert(myTree,7);
myTree = bst_insert(myTree,10);
myTree = bst_insert(myTree,14);
myTree = bst_insert(myTree,13);
bst_traverseInOrder(myTree);
checkit_int(bst_isValueInTree(myTree, 6),1);
checkit_int(bst_isValueInTree(myTree, 13),1);
return 0;
}
Example #7
0
/* SLLcheck checks that each node in a string-linked-list against an
array of string */
void SLLcheck(SLL *list, char* strArray[]) {
	int i;
	SLL *p;
	for (	p=list, i=0;
		p!=NULL; 
		p=p->next, i++){
		printf("SLL check : ");
		checkit_string(p->s, strArray[i]);
		}
	/* if expected value is NULL, checks that argument evaluates
	to NULL */
	if (strArray==NULL) {
		printf("SLL check : ");
		checkit_int(1, (list==NULL)); 
	}
	return;	
}
Example #8
0
void test_is_positive(void){
   checkit_int(is_positive(-3),0);
   checkit_int(is_positive(2),1);
}
Example #9
0
void test(void){

   struct point p1 = create_point(1,3);
   struct point p2 = create_point(3,6);
   struct point p3 = create_point(5,0);
   struct point p4 = create_point(7,1);

   checkit_int(p1.x,1);
   checkit_int(p2.y,6);

   struct rect r1 = create_rect(p1, 3,2);
   struct rect r2 = create_rect(p2, 4,1);
   struct rect r3 = create_rect(p3,1,1);
   struct rect r4 = create_rect(p4,1,1);
      
   checkit_int(r1.w, 3);
   checkit_int(r2.h, 1);

   checkit_double(distance(p1,p3),5);
   
   struct rect r[3] = {r1,r2,r3};
   checkit_int(largest_rect(r,3),0);
   
   struct point p[2];
   closest_corners(r1,r2,p);
   checkit_int(p[0].x,4);
   checkit_int(p[0].y,5);   
   checkit_int(p[1].x,3);
   checkit_int(p[1].y,6);

   struct point pt[2];
   closest_corners(r2,r3,pt);
   checkit_int(pt[0].x,3);
   checkit_int(pt[0].y,6);
   checkit_int(pt[1].x,5);
   checkit_int(pt[1].y,1);

   struct point pts[2];
   closest_corners(r3,r4,pts);
   checkit_int(pts[0].x,6);
   checkit_int(pts[0].y,1);
   checkit_int(pts[1].x,7);
   checkit_int(pts[1].y,1);


}
void rental_late_fee_test_cases(void)
{
 checkit_int(rental_late_fee(9), 5)
 checkit_int(rental_late_fee(15), 7);
}
void is_even_test_cases(void)
{
  checkit_int(is_even(1), 0);
  checkit_int(is_even(2), 1);
}
void in_an_interval_test_cases(void)
{
 checkit_int(in_an_interval(5), 0);
 checkit_int(in_an_interval(48), 1);
}
void is_between_test_cases(void)
{
 checkit_int(is_between(4, 3, 6), 1);
 checkit_int(is_between(5, 1, 6), 1);
}