ctkVTKHistogramTest2.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // Qt includes
  2. #include <QCoreApplication>
  3. // CTKVTK includes
  4. #include "ctkVTKHistogram.h"
  5. // VTK includes
  6. #include <vtkSmartPointer.h>
  7. #include <vtkDataArray.h>
  8. // STD includes
  9. #include <cstdlib>
  10. #include <iostream>
  11. int ctkVTKHistogramTest2( int argc, char * argv [])
  12. {
  13. Q_UNUSED(argc);
  14. Q_UNUSED(argv);
  15. //---------------------------------------------------
  16. // test 2 :
  17. //---------------------------------------------------
  18. //------Test build--------------------------------
  19. ctkVTKHistogram rgbHistogram;
  20. vtkSmartPointer<vtkDataArray> rgbDataArray;
  21. rgbDataArray.TakeReference(vtkDataArray::CreateDataArray(VTK_INT));
  22. rgbDataArray->SetNumberOfComponents(3);
  23. rgbDataArray->InsertNextTuple3( 0, 50, 0);
  24. rgbDataArray->InsertNextTuple3(1000, 143, -1412);
  25. rgbDataArray->InsertNextTuple3(-543, 210, 151);
  26. rgbDataArray->InsertNextTuple3( -1, 210, 10);
  27. // Generate histogram on the Green values
  28. rgbHistogram.setComponent(1);
  29. rgbHistogram.setDataArray(rgbDataArray);
  30. if (rgbHistogram.dataArray() != rgbDataArray)
  31. {
  32. std::cerr << "Line : " << __LINE__
  33. << " - Problem with ctkVTKHistogram::setDataArray "
  34. << std::endl;
  35. return EXIT_FAILURE;
  36. }
  37. double range[2], expectedRange[2] = {50.0, 211.0};
  38. rgbHistogram.range(range[0], range[1]);
  39. if (range[0] != expectedRange[0] && range[1] != expectedRange[1])
  40. {
  41. std::cerr << "Bad range: " << range[0] << " " << range[1] << std::endl
  42. << " expected: " << expectedRange[0] << " " << expectedRange[1]
  43. << std::endl;
  44. return EXIT_FAILURE;
  45. }
  46. //------Test build---------------------------------
  47. rgbHistogram.build();
  48. if (rgbHistogram.count() != (210 - 50 + 1))
  49. {
  50. std::cerr << "Failed to build histogram" << rgbHistogram.count()
  51. << std::endl;
  52. return EXIT_FAILURE;
  53. }
  54. if (rgbHistogram.value(210).toInt() != 2)
  55. {
  56. std::cerr << "Failed to build histogram" << rgbHistogram.value(210).toInt()
  57. << std::endl;
  58. return EXIT_FAILURE;
  59. }
  60. return EXIT_SUCCESS;
  61. }