TestDrawable.cpp 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. /*
  2. * NICE-Core - efficient algebra and computer vision methods
  3. * - libimage - An image/template for new NICE libraries
  4. * See file License for license information.
  5. */
  6. #ifdef NICE_USELIB_CPPUNIT
  7. #include "TestDrawable.h"
  8. #include <string>
  9. #include <vector>
  10. #include <exception>
  11. #include "core/image/PointT.h"
  12. #include "core/image/LineT.h"
  13. #include "core/image/EllipseT.h"
  14. #include "core/image/CircleT.h"
  15. #include "core/image/CrossT.h"
  16. using namespace std;
  17. using namespace NICE;
  18. CPPUNIT_TEST_SUITE_REGISTRATION( TestDrawable );
  19. void TestDrawable::setUp() {
  20. }
  21. void TestDrawable::tearDown() {
  22. }
  23. void TestDrawable::testConstructor() {
  24. }
  25. void TestDrawable::testOperators() {
  26. // Test Assignment Operator
  27. }
  28. void TestDrawable::testSomething() {
  29. // define some colors
  30. Color black(0,0,0);
  31. Color blue(0,0,255);
  32. Color red(255,0,0);
  33. Color white(255,255,255);
  34. ColorImage x(40,40);
  35. x=black;
  36. Coord midpoint(10,10);
  37. Point y(5,5,red);
  38. Coord b(0,0);
  39. Coord c(19,19);
  40. Coord d(2,19);
  41. Coord e(19,2);
  42. std::vector<Line> l(5);
  43. l[0]= Line(b,c,white);
  44. l[1]= Line(c,b,white);
  45. l[2]= Line(c,d,white);
  46. l[3]= Line(d,e,white);
  47. l[4]= Line(e,c,white);
  48. Circle circle(midpoint,7,blue);
  49. Coord axis(4,9);
  50. Ellipse ellipse(midpoint,axis,M_PI/4,red);
  51. Cross cross(Coord(24, 30), 7, true);
  52. x.draw(ellipse);
  53. x.draw(circle);
  54. x.draw(y);
  55. x.draw(cross);
  56. x.drawIter(l.begin(),l.end());
  57. x.draw(ellipse, red);
  58. x.draw(circle, blue);
  59. x.draw(y, black);
  60. x.draw(cross, white);
  61. x.drawIter(l.begin(),l.end(), white);
  62. }
  63. void TestDrawable::testCrossT() {
  64. Image tgImg(300,300);
  65. ColorImage tcImg(300,300);
  66. CrossT<Ipp8u> cross1(Coord(100,100),5);
  67. CrossT<Ipp8u> cross2 = cross1;
  68. CrossT<Ipp8u> cross3(Coord(200,200),5);
  69. CrossT<Ipp8u> cross4(Coord(100,100), 10, false,
  70. ColorT<Ipp8u>(static_cast<Ipp8u>(255)));
  71. CPPUNIT_ASSERT_EQUAL(true, cross1==cross2);
  72. CPPUNIT_ASSERT_EQUAL(false, cross1==cross3);
  73. CPPUNIT_ASSERT_EQUAL(false, cross1==cross4);
  74. CPPUNIT_ASSERT_EQUAL(false, cross1!=cross2);
  75. CPPUNIT_ASSERT_EQUAL(true, cross1!=cross3);
  76. CPPUNIT_ASSERT_EQUAL(true, cross1!=cross4);
  77. CPPUNIT_ASSERT_NO_THROW(cross1=cross3);
  78. CPPUNIT_ASSERT_EQUAL(false, cross1==cross2);
  79. CPPUNIT_ASSERT_EQUAL(true, cross1!=cross2);
  80. tgImg.draw(cross1);
  81. tcImg.draw(cross1);
  82. tgImg.draw(cross4);
  83. tcImg.draw(cross4);
  84. }
  85. void TestDrawable::testCircleT() {
  86. Image tgImg(300,300);
  87. ColorImage tcImg(300,300);
  88. CircleT<Ipp8u> circ1(Coord(100,100),5);
  89. CircleT<Ipp8u> circ2 = circ1;
  90. CircleT<Ipp8u> circ3(Coord(200,200),5);
  91. CircleT<Ipp8u> circ4(Coord(100,100),10, ColorT<Ipp8u>(static_cast<Ipp8u>(255)));
  92. CPPUNIT_ASSERT_EQUAL(true, circ1==circ2);
  93. CPPUNIT_ASSERT_EQUAL(false, circ1==circ3);
  94. CPPUNIT_ASSERT_EQUAL(false, circ1==circ4);
  95. CPPUNIT_ASSERT_EQUAL(false, circ1!=circ2);
  96. CPPUNIT_ASSERT_EQUAL(true, circ1!=circ3);
  97. CPPUNIT_ASSERT_EQUAL(true, circ1!=circ4);
  98. CPPUNIT_ASSERT_NO_THROW(circ1=circ3);
  99. CPPUNIT_ASSERT_EQUAL(false, circ1==circ2);
  100. CPPUNIT_ASSERT_EQUAL(true, circ1!=circ2);
  101. tgImg.draw(circ1);
  102. tcImg.draw(circ1);
  103. tgImg.draw(circ4);
  104. tcImg.draw(circ4);
  105. }
  106. void TestDrawable::testEllipseT() {
  107. Image tgImg(300,300);
  108. ColorImage tcImg(300,300);
  109. EllipseT<Ipp8u> ell1(Coord(100,100), Coord(10,10), 45.0);
  110. EllipseT<Ipp8u> ell2 = ell1;
  111. EllipseT<Ipp8u> ell3(Coord(200,200), Coord(45,45), 0.0);
  112. EllipseT<Ipp8u> ell4(Coord(100,100), Coord(10,10), 90.0, ColorT<Ipp8u>(static_cast<Ipp8u>(255)));
  113. CPPUNIT_ASSERT_EQUAL(true, ell1==ell2);
  114. CPPUNIT_ASSERT_EQUAL(false, ell1==ell3);
  115. CPPUNIT_ASSERT_EQUAL(false, ell1==ell4);
  116. CPPUNIT_ASSERT_EQUAL(false, ell1!=ell2);
  117. CPPUNIT_ASSERT_EQUAL(true, ell1!=ell3);
  118. CPPUNIT_ASSERT_EQUAL(true, ell1!=ell4);
  119. CPPUNIT_ASSERT_NO_THROW(ell1=ell3);
  120. CPPUNIT_ASSERT_EQUAL(false, ell1==ell2);
  121. CPPUNIT_ASSERT_EQUAL(true, ell1!=ell2);
  122. tgImg.draw(ell1);
  123. tcImg.draw(ell1);
  124. tgImg.draw(ell4);
  125. tcImg.draw(ell4);
  126. }
  127. void TestDrawable::testLineT() {
  128. Image tgImg(300,300);
  129. ColorImage tcImg(300,300);
  130. LineT<Ipp8u> line1(Coord(100,100), Coord(200,200));
  131. LineT<Ipp8u> line2 = line1;
  132. LineT<Ipp8u> line3(Coord(101,101), Coord(200,200));
  133. LineT<Ipp8u> line4(Coord(1,1), Coord(2,2), ColorT<Ipp8u>(static_cast<Ipp8u>(255)));
  134. CPPUNIT_ASSERT_EQUAL(true, line1==line2);
  135. CPPUNIT_ASSERT_EQUAL(false, line1==line3);
  136. CPPUNIT_ASSERT_EQUAL(false, line1==line4);
  137. CPPUNIT_ASSERT_EQUAL(false, line1!=line2);
  138. CPPUNIT_ASSERT_EQUAL(true, line1!=line3);
  139. CPPUNIT_ASSERT_EQUAL(true, line1!=line4);
  140. CPPUNIT_ASSERT_NO_THROW(line1=line3);
  141. CPPUNIT_ASSERT_EQUAL(false, line1==line2);
  142. CPPUNIT_ASSERT_EQUAL(true, line1!=line2);
  143. tgImg.draw(line1);
  144. tcImg.draw(line1);
  145. tgImg.draw(line4);
  146. tcImg.draw(line4);
  147. }
  148. void TestDrawable::testPointT() {
  149. Image tgImg(300,300);
  150. ColorImage tcImg(300,300);
  151. PointT<Ipp8u> point1(100,100);
  152. PointT<Ipp8u> point2 = point1;
  153. PointT<Ipp8u> point3(200,200), point4(1,1,ColorT<Ipp8u>(static_cast<Ipp8u>(255)));
  154. CPPUNIT_ASSERT_EQUAL(true, point1==point2);
  155. CPPUNIT_ASSERT_EQUAL(false, point1==point3);
  156. CPPUNIT_ASSERT_EQUAL(false, point1==point4);
  157. CPPUNIT_ASSERT_EQUAL(false, point1!=point2);
  158. CPPUNIT_ASSERT_EQUAL(true, point1!=point3);
  159. CPPUNIT_ASSERT_EQUAL(true, point1!=point4);
  160. CPPUNIT_ASSERT_NO_THROW(point1=point3);
  161. CPPUNIT_ASSERT_EQUAL(false, point1==point2);
  162. CPPUNIT_ASSERT_EQUAL(true, point1!=point2);
  163. tgImg.draw(point1);
  164. tcImg.draw(point1);
  165. tgImg.draw(point4);
  166. tcImg.draw(point4);
  167. }
  168. #endif