/* Written by Sui Huang, McMaster University at Mar 3, 2007 */ #include "VectorAdtPlus.h" #include #include #include void display_vector(Vector vec, char* name) { printf("%s=(%f,%f)\n",name,get_x(vec),get_y(vec)); } void test_orth(Vector vec1, char* name1, Vector vec2, char* name2){ printf("is_orthogonal(%s,%s)=%s\n", name1, name2, (is_orthogonal(vec1,vec2)==true)?"true":"false"); } int main(void) { Vector u, v, z; //used to hold (1,0),(0,1),(0,0) Vector p, q, s, t; //used to hold other vectors printf("test i_vector(), j_vector(), get_x(), get_y()\n"); u = i_vector(); display_vector(u,"u"); v = j_vector(); display_vector(v,"v"); z = zero_vector(); display_vector(z,"z"); printf("\n"); printf("test mul, add()\n"); p = mul(1.6,u); display_vector(p,"p"); q = mul(-1.2,v); display_vector(q,"q"); s = add(p,q); display_vector(s,"s"); z = mul(0,s); display_vector(z,"z"); t = mul(pow(10,12),s); display_vector(t,"t"); printf("\n"); printf("test get_magnitude()\n"); printf("|u|=%f\n",get_magnitude(u)); printf("|v|=%f\n",get_magnitude(v)); printf("|z|=%f\n",get_magnitude(z)); printf("|p|=%f\n",get_magnitude(p)); printf("|q|=%f\n",get_magnitude(q)); printf("|s|=%f\n",get_magnitude(s)); printf("|t|=%f\n",get_magnitude(t)); printf("\n"); printf("test get_angle()\n"); printf("angle of u is: %f\n",get_angle(u)); printf("angle of v is: %f\n",get_angle(v)); printf("angle of z is: %f\n",get_angle(z)); printf("angle of p is: %f\n",get_angle(p)); printf("angle of q is: %f\n",get_angle(q)); printf("angle of s is: %f\n",get_angle(s)); printf("angle of t is: %f\n",get_angle(t)); printf("\n"); printf("test is_orthogonal()\n"); test_orth(u,"u",v,"v"); test_orth(z,"z",v,"v"); test_orth(u,"u",z,"z"); test_orth(p,"p",q,"q"); test_orth(s,"s",p,"p"); test_orth(s,"s",q,"q"); test_orth(t,"t",t,"t"); test_orth(t,"t",z,"z"); test_orth(add(mul(-3.4,i_vector()),mul(8,j_vector())),"(-3.4,8)", add(mul(8,i_vector()),mul(3.4,j_vector())),"(8,3.4)"); printf("\n"); return 0; }