src/test/xy_test.cc
author alpar
Mon, 13 Sep 2004 17:20:03 +0000
changeset 842 a4bb28813570
parent 727 aada518af30f
child 906 17f31d280385
permissions -rw-r--r--
Fix a DANGEROUS bug.
     1 #include <hugo/xy.h>
     2 #include <iostream>
     3 #include "test_tools.h"
     4 
     5 using namespace std;
     6 using namespace hugo;
     7 int main()
     8 {
     9 
    10   cout << "Testing classes `xy' and `boundingbox'." << endl;
    11 
    12 	typedef xy<int> XY;
    13 	
    14 	XY seged;
    15 	XY a(1,2);
    16 	XY b(3,4);
    17 
    18 	seged = a+b;
    19 	check(seged.x==4 && seged.y==6, "Wrong vector addition");
    20 
    21 	seged = a-b;
    22 	check(seged.x==-2 && seged.y==-2, "a-b");
    23 
    24 	check(a.normSquare()==5,"Wrong norm calculation");
    25 	check(a*b==11, "a*b");
    26 
    27 	int l=2;
    28 	seged = a*l;
    29 	check(seged.x==2 && seged.y==4, "a*l");
    30 
    31 	seged = b/l;
    32 	check(seged.x==1 && seged.y==2, "b/l");
    33 
    34 	typedef BoundingBox<int> BB;
    35 	BB doboz1;
    36 	check(doboz1.empty(), "It should be empty.");
    37 	
    38 	doboz1 += a;
    39 	check(!doboz1.empty(), "It should not be empty.");
    40 	doboz1 += b;
    41 
    42 	check(doboz1.bottomLeft().x==1 && 
    43 	      doboz1.bottomLeft().y==2 &&
    44 	      doboz1.topRight().x==3 && 
    45 	      doboz1.topRight().y==4,  
    46 	      "added points to box");
    47 
    48 	seged.x=2;seged.y=3;
    49 	check(doboz1.inside(seged),"It should be inside.");
    50 
    51 	seged.x=1;seged.y=3;
    52 	check(doboz1.inside(seged),"It should be inside.");
    53 
    54 	seged.x=0;seged.y=3;
    55 	check(!doboz1.inside(seged),"It should not be inside.");
    56 
    57 	BB doboz2(seged);
    58 	check(!doboz2.empty(),
    59 	      "It should not be empty. Constructed from 1 point.");
    60 
    61 	doboz2 += doboz1;
    62 	check(doboz2.inside(seged),
    63 	      "It should be inside. Incremented a box with an other.");
    64 }