Преглед на файлове

Fix color comparison in ctkVTKTextPropertyWidgetTest1

QColor::fromRGBF can loose a lot of precision so qFuzzyCompare doesn't
work here. Btw it was wrongly used. qFuzzyCompare returns true when the
numbers are equal
Julien Finet преди 15 години
родител
ревизия
3c442cfab9
променени са 1 файла, в които са добавени 7 реда и са изтрити 4 реда
  1. 7 4
      Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKTextPropertyWidgetTest1.cpp

+ 7 - 4
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKTextPropertyWidgetTest1.cpp

@@ -20,6 +20,7 @@
 
 // Qt includes
 #include <QApplication>
+#include <QDebug>
 #include <QTimer>
 
 // CTK includes
@@ -109,14 +110,16 @@ int ctkVTKTextPropertyWidgetTest1(int argc, char * argv [] )
     return EXIT_FAILURE;
     }
 
+  // QColor handles floating points on 16bit integers
   textPropertyWidget.setColor(QColor::fromRgbF(0.333, 0.666, 0.999));
   textProperty->GetColor(color);
 
-  if (qFuzzyCompare(color[0], 0.333) ||
-      qFuzzyCompare(color[1], 0.666) ||
-      qFuzzyCompare(color[2], 0.999))
+  if (color[0] < 0.3329 || color[0] > 0.3331 ||
+      color[1] < 0.6659 || color[1] > 0.6661 ||
+      color[2] < 0.9989 || color[2] > 0.9991)
     {
-    std::cerr << "ctkVTKTextPropertyWidget::setColor() failed" << std::endl;
+    std::cerr << "ctkVTKTextPropertyWidget::setColor() failed: "
+              << color[0]<< " " << color[1] << " " << color[2] << std::endl;
     return EXIT_FAILURE;
     }